generator-jhipster 8.0.0-rc.1 → 8.1.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 (369) hide show
  1. package/README.md +71 -58
  2. package/dist/cli/environment-builder.mjs +14 -7
  3. package/dist/cli/jhipster-command.mjs +7 -3
  4. package/dist/cli/program.mjs +2 -2
  5. package/dist/generators/angular/cleanup.mjs +7 -0
  6. package/dist/generators/angular/files-angular.mjs +3 -4
  7. package/dist/generators/angular/generator.mjs +10 -22
  8. package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
  9. package/dist/generators/angular/resources/package.json +25 -24
  10. package/dist/generators/angular/support/translate-angular.mjs +2 -2
  11. package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
  12. package/dist/generators/angular/templates/angular.json.ejs +3 -7
  13. package/dist/generators/angular/templates/package.json.ejs +4 -8
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +6 -4
  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 +39 -33
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +44 -36
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +24 -23
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +74 -62
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +12 -4
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +54 -48
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/admin.routes.ts.ejs +74 -0
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +15 -5
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +1 -1
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +20 -7
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +10 -7
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +9 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +12 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +13 -7
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +6 -2
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +3 -1
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +13 -9
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +13 -5
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +21 -7
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +6 -2
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +3 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +16 -7
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +3 -1
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +3 -1
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +11 -4
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +20 -11
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +48 -34
  43. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +73 -0
  44. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +67 -0
  45. package/dist/generators/angular/templates/src/main/webapp/app/app.routes.ts.ejs +85 -0
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/microfrontend/index.ts.ejs +5 -4
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +1 -1
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/util/event-manager.service.spec.ts.ejs +12 -12
  50. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +4 -4
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +3 -1
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +26 -14
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +44 -35
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.ts.ejs +1 -1
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.spec.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +5 -12
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +55 -21
  59. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -2
  60. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +10 -10
  61. package/dist/generators/angular/templates/src/main/webapp/app/entities/entity.routes.ts.ejs +25 -0
  62. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +21 -17
  63. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +1 -1
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +3 -3
  65. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +5 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +5 -1
  67. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +97 -78
  68. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +1 -1
  69. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
  70. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +1 -1
  71. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +6 -4
  72. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +3 -3
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.html.ejs +6 -2
  74. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.html.ejs +6 -2
  75. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +11 -7
  76. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +3 -3
  78. package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +5 -5
  79. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +1 -1
  80. package/dist/generators/angular/templates/webpack/webpack.microfrontend.js.ejs +48 -126
  81. package/dist/generators/app/README.md +108 -0
  82. package/dist/generators/app/USAGE +3 -0
  83. package/dist/generators/app/command.mjs +3 -3
  84. package/dist/generators/app/generator.mjs +11 -0
  85. package/dist/generators/app/support/config.mjs +3 -3
  86. package/dist/generators/base/command.mjs +0 -11
  87. package/dist/generators/base/generator.mjs +0 -3
  88. package/dist/generators/base/support/config.mjs +6 -6
  89. package/dist/generators/base/support/jhipster7-context.mjs +3 -3
  90. package/dist/generators/base-application/generator.mjs +7 -8
  91. package/dist/generators/base-application/support/entities.mjs +2 -2
  92. package/dist/generators/base-application/support/enum.mjs +1 -1
  93. package/dist/generators/base-application/support/index.mjs +1 -0
  94. package/dist/generators/base-application/support/prepare-entity.mjs +14 -11
  95. package/dist/generators/base-application/support/prepare-field.mjs +11 -7
  96. package/dist/generators/base-application/support/prepare-relationship.mjs +16 -14
  97. package/dist/generators/base-application/support/update-application-entities-transform.mjs +52 -0
  98. package/dist/generators/base-core/generator.mjs +17 -4
  99. package/dist/generators/base-entity-changes/generator.mjs +1 -1
  100. package/dist/generators/base-workspaces/internal/docker-prompts.mjs +13 -12
  101. package/dist/generators/bootstrap/command.mjs +6 -0
  102. package/dist/generators/bootstrap/generator.mjs +84 -45
  103. package/dist/generators/bootstrap/support/auto-crlf-transform.mjs +34 -21
  104. package/dist/generators/bootstrap/support/eslint-transform.mjs +2 -5
  105. package/dist/generators/bootstrap/support/java-unused-imports-transform.mjs +2 -2
  106. package/dist/generators/bootstrap/support/multi-step-transform/index.mjs +17 -28
  107. package/dist/generators/bootstrap/support/multi-step-transform/template-file-fs.mjs +12 -6
  108. package/dist/generators/bootstrap/support/multi-step-transform/template-file.mjs +1 -0
  109. package/dist/generators/bootstrap/support/prettier-support.mjs +2 -2
  110. package/dist/generators/bootstrap-application/generator.mjs +10 -21
  111. package/dist/generators/bootstrap-application-base/command.mjs +30 -0
  112. package/dist/generators/bootstrap-application-base/generator.mjs +36 -11
  113. package/dist/generators/bootstrap-application-base/index.mjs +1 -0
  114. package/dist/generators/bootstrap-application-base/support/export-jdl-transform.mjs +61 -0
  115. package/dist/generators/bootstrap-application-base/support/import-jdl-transform.mjs +64 -0
  116. package/dist/generators/bootstrap-application-base/support/index.mjs +2 -0
  117. package/dist/generators/bootstrap-application-server/generator.mjs +2 -2
  118. package/dist/generators/client/command.mjs +2 -0
  119. package/dist/generators/client/resources/package.json +4 -4
  120. package/dist/generators/client/support/entity-definition.mjs +3 -3
  121. package/dist/generators/client/templates/README.md.jhi.client.ejs +2 -2
  122. package/dist/generators/client/templates/src/main/webapp/content/css/loading.css.ejs +1 -1
  123. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
  124. package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +14 -1
  125. package/dist/generators/common/command.mjs +2 -0
  126. package/dist/generators/common/files.mjs +1 -1
  127. package/dist/generators/common/generator.mjs +29 -7
  128. package/dist/generators/common/resources/package.json +4 -4
  129. package/dist/generators/common/templates/.lintstagedrc.cjs.ejs +21 -0
  130. package/dist/generators/common/templates/.prettierrc.ejs +1 -1
  131. package/dist/generators/common/templates/README.md.jhi.ejs +2 -0
  132. package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
  133. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/settings-page.cy.ts.ejs +3 -0
  134. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +0 -1
  135. package/dist/generators/docker/generator.mjs +1 -1
  136. package/dist/generators/docker/templates/docker/cassandra.yml.ejs +2 -2
  137. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +1 -1
  138. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +4 -1
  139. package/dist/generators/docker-compose/generator.mjs +4 -11
  140. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
  141. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +4 -1
  142. package/dist/generators/entity/prompts.mjs +123 -306
  143. package/dist/generators/export-jdl/generator.mjs +1 -1
  144. package/dist/generators/feign-client/cleanup.mjs +12 -0
  145. package/dist/generators/feign-client/files.mjs +35 -0
  146. package/dist/generators/feign-client/generator.mjs +65 -0
  147. package/dist/generators/feign-client/index.mjs +19 -0
  148. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +174 -0
  149. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizedFeignClient.java.ejs +72 -0
  150. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuth2InterceptedFeignConfiguration.java.ejs +35 -0
  151. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuthIdpTokenResponseDTO.java.ejs +161 -0
  152. package/dist/generators/feign-client/templates/src/main/java/_package_/client/TokenRelayRequestInterceptor.java.ejs +42 -0
  153. package/dist/generators/feign-client/templates/src/main/java/_package_/client/UserFeignClientInterceptor_jwt.java.ejs +36 -0
  154. package/dist/generators/feign-client/templates/src/main/java/_package_/config/FeignConfiguration.java.ejs +45 -0
  155. package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +263 -0
  156. package/dist/generators/generate-blueprint/command.mjs +1 -1
  157. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  158. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -1
  159. package/dist/generators/generator-constants.mjs +11 -7
  160. package/dist/generators/generator-list.mjs +1 -0
  161. package/dist/generators/git/generator.mjs +3 -5
  162. package/dist/generators/gradle/constants.mjs +1 -1
  163. package/dist/generators/heroku/generator.mjs +318 -595
  164. package/dist/generators/heroku/templates/Procfile.ejs +1 -1
  165. package/dist/generators/heroku/templates/application-heroku.yml.ejs +0 -12
  166. package/dist/generators/info/generator.mjs +6 -4
  167. package/dist/generators/init/generator.mjs +2 -2
  168. package/dist/generators/java/command.mjs +6 -0
  169. package/dist/generators/java/entity-files.mjs +5 -1
  170. package/dist/generators/java/generator.mjs +15 -15
  171. package/dist/generators/java/support/package-info-transform.mjs +20 -6
  172. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +24 -28
  173. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
  174. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +3 -3
  175. package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +86 -8
  176. package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +85 -0
  177. package/dist/generators/jdl/generator.mjs +32 -28
  178. package/dist/generators/kubernetes/templates/ingress.yml.ejs +0 -1
  179. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +4 -1
  180. package/dist/generators/kubernetes/templates/keycloak/keycloak.yml.ejs +1 -1
  181. package/dist/generators/languages/command.mjs +5 -0
  182. package/dist/generators/languages/generator.mjs +44 -28
  183. package/dist/generators/languages/prompts.mjs +3 -1
  184. package/dist/generators/languages/support/translate.mjs +1 -1
  185. package/dist/generators/languages/templates/entity/i18n/entity_pt-br.json.ejs +1 -1
  186. package/dist/generators/languages/translation-data.mjs +8 -13
  187. package/dist/generators/liquibase/README.md +19 -0
  188. package/dist/generators/liquibase/generator.mjs +7 -3
  189. package/dist/generators/project-name/generator.mjs +14 -19
  190. package/dist/generators/project-name/support/name-resolver.mjs +35 -6
  191. package/dist/generators/react/generator.mjs +18 -10
  192. package/dist/generators/react/resources/package.json +30 -29
  193. package/dist/generators/react/templates/package.json.ejs +4 -5
  194. package/dist/generators/react/templates/src/main/webapp/app/config/icon-loader.ts.ejs +35 -33
  195. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +4 -4
  196. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-detail.tsx.ejs +1 -2
  197. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +19 -15
  198. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +1 -1
  199. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.tsx.ejs +3 -8
  200. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityModel_.model.ts.ejs +1 -1
  201. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  202. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +9 -2
  203. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +1 -1
  204. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +6 -5
  205. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +10 -1
  206. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
  207. package/dist/generators/react/templates/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
  208. package/dist/generators/react/templates/tsconfig.test.json.ejs +1 -1
  209. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +13 -58
  210. package/dist/generators/server/cleanup.mjs +5 -0
  211. package/dist/generators/server/command.mjs +13 -2
  212. package/dist/generators/server/entity-files.mjs +3 -3
  213. package/dist/generators/server/files.mjs +2 -38
  214. package/dist/generators/server/generator.mjs +48 -23
  215. package/dist/generators/server/jdl/application-definition.mjs +5 -2
  216. package/dist/generators/server/options/feign-client.mjs +24 -0
  217. package/dist/generators/server/options/index.mjs +1 -0
  218. package/dist/generators/server/resources/Dockerfile +19 -19
  219. package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
  220. package/dist/generators/server/resources/pom.xml +18 -18
  221. package/dist/generators/server/support/config.mjs +5 -4
  222. package/dist/generators/server/support/prepare-entity.mjs +9 -6
  223. package/dist/generators/server/support/prepare-field.mjs +20 -0
  224. package/dist/generators/server/support/relationship.mjs +2 -1
  225. package/dist/generators/server/support/templates/field-values.mjs +5 -2
  226. package/dist/generators/server/templates/README.md.jhi.spring-boot.ejs +0 -1
  227. package/dist/generators/server/templates/build.gradle.ejs +1 -2
  228. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -21
  229. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +5 -15
  230. package/dist/generators/server/templates/package.json.ejs +0 -5
  231. package/dist/generators/server/templates/pom.xml.ejs +2 -12
  232. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +8 -8
  233. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/search_template.ejs +4 -4
  234. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
  235. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +2 -2
  236. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs +2 -2
  237. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +14 -14
  238. package/dist/generators/server/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs +2 -1
  239. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +21 -3
  240. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +6 -1
  241. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs +1 -5
  242. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +48 -6
  243. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  244. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -13
  245. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +5 -11
  246. package/dist/generators/server/templates/src/main/java/_package_/web/rest/PublicUserResource.java.ejs +6 -7
  247. package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -8
  248. package/dist/generators/server/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +4 -7
  249. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +8 -7
  250. package/dist/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs +1 -1
  251. package/dist/generators/server/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +11 -11
  252. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +4 -4
  253. package/dist/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs +2 -2
  254. package/dist/generators/spring-cache/internal/dependencies.mjs +1 -1
  255. package/dist/generators/spring-cache/templates/gradle/cache.gradle.ejs +1 -1
  256. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +1 -1
  257. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  258. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  259. package/dist/generators/spring-cloud-stream/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +3 -0
  260. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.elastic_search.ejs +1 -1
  261. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/repository/search/_entityClass_SearchRepository.java.ejs +1 -3
  262. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/repository/search/UserSearchRepository.java.ejs +4 -4
  263. package/dist/generators/spring-data-neo4j/generator.mjs +43 -1
  264. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_neo4j.ejs +3 -37
  265. package/dist/generators/spring-data-relational/README.md +7 -0
  266. package/dist/generators/spring-data-relational/generator.mjs +2 -1
  267. package/dist/generators/spring-data-relational/internal/dependencies.mjs +29 -8
  268. package/dist/generators/spring-data-relational/support/database-data.mjs +4 -0
  269. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +49 -8
  270. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +1 -1
  271. package/dist/generators/upgrade/generator.mjs +3 -3
  272. package/dist/generators/vue/generator.mjs +25 -16
  273. package/dist/generators/vue/resources/package.json +29 -28
  274. package/dist/generators/vue/templates/package.json.ejs +4 -5
  275. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +10 -3
  276. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +3 -4
  277. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -2
  278. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
  279. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.ts.ejs +3 -3
  280. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -15
  281. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +1 -1
  282. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +14 -7
  283. package/dist/generators/vue/templates/src/main/webapp/app/router/index.ts.ejs +8 -1
  284. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +19 -34
  285. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
  286. package/dist/jdl/converters/jdl-to-json/jdl-to-json-option-converter.js +2 -2
  287. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +1 -1
  288. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +1 -1
  289. package/dist/jdl/converters/json-to-jdl-converter.js +1 -1
  290. package/dist/jdl/converters/json-to-jdl-entity-converter.js +1 -0
  291. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -17
  292. package/dist/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.js +5 -0
  293. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +0 -27
  294. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +17 -1
  295. package/dist/jdl/exporters/config.js +11 -0
  296. package/dist/jdl/exporters/export-utils.js +2 -13
  297. package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
  298. package/dist/jdl/index.js +1 -0
  299. package/dist/jdl/jdl-importer.js +6 -2
  300. package/dist/jdl/jhipster/default-application-options.js +1 -1
  301. package/dist/jdl/jhipster/field-types.js +1 -1
  302. package/dist/jdl/jhipster/json-entity.js +6 -0
  303. package/dist/jdl/models/jdl-application-configuration-factory.js +34 -2
  304. package/dist/jdl/models/jdl-application-configuration.js +6 -3
  305. package/dist/jdl/models/jdl-application-factory.js +2 -2
  306. package/dist/jdl/models/jdl-application.js +12 -3
  307. package/dist/jdl/models/jdl-entity.js +16 -1
  308. package/dist/jdl/models/jdl-field.js +13 -0
  309. package/dist/jdl/models/jdl-object.js +3 -3
  310. package/dist/jdl/models/jdl-relationship.js +23 -5
  311. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +63 -7
  312. package/dist/jdl/parsing/jdl-parser.js +52 -6
  313. package/dist/jdl/parsing/lexer/application-tokens.js +2 -2
  314. package/dist/jdl/validators/entity-validator.js +4 -2
  315. package/dist/jdl/validators/enum-validator.js +4 -2
  316. package/dist/jdl/validators/jdl-with-application-validator.js +18 -8
  317. package/dist/jdl/validators/jdl-without-application-validator.js +30 -29
  318. package/dist/jdl/validators/validator.js +1 -1
  319. package/dist/testing/helpers.mjs +10 -3
  320. package/dist/types/cli/environment-builder.d.mts +2 -0
  321. package/dist/types/generators/angular/needle-api/needle-client-angular.d.mts +0 -1
  322. package/dist/types/generators/base/api.d.mts +12 -0
  323. package/dist/types/generators/base/support/config.d.mts +3 -3
  324. package/dist/types/generators/base/support/needles.d.mts +1 -1
  325. package/dist/types/generators/base-application/generator.d.mts +2 -2
  326. package/dist/types/generators/base-application/support/index.d.mts +1 -0
  327. package/dist/types/generators/base-application/support/prepare-entity.d.mts +6 -1
  328. package/dist/types/generators/base-application/support/update-application-entities-transform.d.mts +4 -0
  329. package/dist/types/generators/base-application/types/relationship.d.mts +4 -0
  330. package/dist/types/generators/base-core/generator.d.mts +7 -1
  331. package/dist/types/generators/bootstrap/support/auto-crlf-transform.d.mts +3 -2
  332. package/dist/types/generators/bootstrap/support/multi-step-transform/index.d.mts +3 -20
  333. package/dist/types/generators/bootstrap/support/multi-step-transform/template-file-fs.d.mts +15 -9
  334. package/dist/types/generators/bootstrap/support/multi-step-transform/template-file.d.mts +1 -0
  335. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.mts +8 -0
  336. package/dist/types/generators/bootstrap-application-base/support/import-jdl-transform.d.mts +6 -0
  337. package/dist/types/generators/bootstrap-application-base/support/index.d.mts +2 -0
  338. package/dist/types/generators/client/support/entity-definition.d.mts +2 -2
  339. package/dist/types/generators/feign-client/types-export.d.ts +1 -0
  340. package/dist/types/generators/generator-constants.d.mts +52 -48
  341. package/dist/types/generators/generator-list.d.mts +1 -0
  342. package/dist/types/generators/java/support/package-info-transform.d.mts +1 -4
  343. package/dist/types/generators/project-name/support/name-resolver.d.mts +9 -1
  344. package/dist/types/generators/server/options/feign-client.d.mts +21 -0
  345. package/dist/types/generators/server/options/index.d.mts +1 -0
  346. package/dist/types/generators/server/support/templates/field-values.d.mts +1 -1
  347. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +1 -0
  348. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +1 -1
  349. package/dist/types/jdl/exporters/config.d.ts +1 -0
  350. package/dist/types/jdl/index.d.ts +1 -0
  351. package/dist/types/jdl/jdl-importer.d.ts +1 -0
  352. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
  353. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -0
  354. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +2 -2
  355. package/dist/types/jdl/models/jdl-application-configuration.d.ts +8 -6
  356. package/dist/types/jdl/models/jdl-application-factory.d.ts +1 -1
  357. package/dist/types/jdl/models/jdl-application.d.ts +8 -4
  358. package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
  359. package/dist/types/jdl/models/jdl-object.d.ts +1 -1
  360. package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
  361. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +1 -1
  362. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +10 -0
  363. package/dist/types/jdl/parsing/jdl-parser.d.ts +3 -0
  364. package/dist/types/jdl/parsing/lexer/application-tokens.d.ts +1 -0
  365. package/dist/types/jdl/types/types.d.mts +2 -2
  366. package/dist/types/jdl/validators/entity-validator.d.ts +2 -2
  367. package/dist/types/jdl/validators/enum-validator.d.ts +2 -2
  368. package/dist/types/jdl/validators/validator.d.ts +4 -1
  369. package/package.json +41 -41
@@ -0,0 +1,73 @@
1
+ <%#
2
+ Copyright 2013-2023 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 { Component } from '@angular/core';
20
+ import { registerLocaleData } from '@angular/common';
21
+ import locale from '@angular/common/locales/en';
22
+ import dayjs from 'dayjs/esm';
23
+ import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
24
+ import { NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';
25
+ import { provideRouter } from '@angular/router';
26
+ import { registerLocaleData } from '@angular/common';
27
+ import { HttpClientModule } from '@angular/common/http';
28
+ import locale from '@angular/common/locales/en';
29
+ import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
30
+ import dayjs from 'dayjs/esm';
31
+ import appRoutes from './app.routes';
32
+ // jhipster-needle-angular-add-module-import JHipster will add new module here
33
+
34
+ import { ApplicationConfigService } from 'app/core/config/application-config.service';
35
+ import { fontAwesomeIcons } from './config/font-awesome-icons';
36
+ <%_ if (enableTranslation) { _%>
37
+ import { TranslationModule } from 'app/shared/language/translation.module';
38
+ <%_ } _%>
39
+ import MainComponent from './layouts/main/main.component';
40
+ <%_ if (communicationSpringWebsocket) { _%>
41
+ import { TrackerService } from './core/tracker/tracker.service';
42
+ <%_ } _%>
43
+
44
+ @Component({
45
+ selector: '<%= jhiPrefixDashed %>-app',
46
+ standalone: true,
47
+ template: '<<%= jhiPrefixDashed %>-main></<%= jhiPrefixDashed %>-main>',
48
+ imports: [
49
+ MainComponent,
50
+ // jhipster-needle-angular-add-module JHipster will add new module here
51
+ ],
52
+ })
53
+ export default class AppComponent {
54
+ constructor(
55
+ applicationConfigService: ApplicationConfigService,
56
+ iconLibrary: FaIconLibrary,
57
+ <%_ if (communicationSpringWebsocket) { _%>
58
+ trackerService: TrackerService,
59
+ <%_ } _%>
60
+ dpConfig: NgbDatepickerConfig
61
+ ) {
62
+ <%_ if (communicationSpringWebsocket) { _%>
63
+ trackerService.setup();
64
+ <%_ } _%>
65
+ <%_ if (applicationTypeMicroservice) { _%>
66
+ applicationConfigService.setMicrofrontend();
67
+ <%_ } _%>
68
+ applicationConfigService.setEndpointPrefix(SERVER_API_URL);
69
+ registerLocaleData(locale);
70
+ iconLibrary.addIcons(...fontAwesomeIcons);
71
+ dpConfig.minDate = { year: dayjs().subtract(100, 'year').year(), month: 1, day: 1 };
72
+ }
73
+ }
@@ -0,0 +1,67 @@
1
+ <%#
2
+ Copyright 2013-2023 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 { ApplicationConfig, LOCALE_ID, importProvidersFrom } from '@angular/core';
20
+ import { BrowserModule, Title } from '@angular/platform-browser';
21
+ import { RouterFeatures, TitleStrategy, provideRouter, withComponentInputBinding, withDebugTracing } from '@angular/router';
22
+ import { ServiceWorkerModule } from '@angular/service-worker';
23
+ import { HttpClientModule } from '@angular/common/http';
24
+
25
+ import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
26
+
27
+ import { DEBUG_INFO_ENABLED } from 'app/app.constants';
28
+ import './config/dayjs';
29
+ <%_ if (enableTranslation) { _%>
30
+ import { TranslationModule } from 'app/shared/language/translation.module';
31
+ <%_ } _%>
32
+ import { httpInterceptorProviders } from 'app/core/interceptor/index';
33
+ import FindLanguageFromKeyPipe from 'app/shared/language/find-language-from-key.pipe';
34
+ import routes from './app.routes';
35
+ // jhipster-needle-angular-add-module-import JHipster will add new module here
36
+ import { NgbDateDayjsAdapter } from './config/datepicker-adapter';
37
+ import { AppPageTitleStrategy } from './app-page-title-strategy';
38
+
39
+ const routerFeatures: Array<RouterFeatures> = [withComponentInputBinding()];
40
+ if (DEBUG_INFO_ENABLED) {
41
+ routerFeatures.push(withDebugTracing());
42
+ }
43
+
44
+ export const appConfig: ApplicationConfig = {
45
+ providers: [
46
+ provideRouter(routes, ...routerFeatures),
47
+ importProvidersFrom(BrowserModule),
48
+ // Set this to true to enable service worker (PWA)
49
+ importProvidersFrom(ServiceWorkerModule.register('ngsw-worker.js', { enabled: false })),
50
+ <%_ if (enableTranslation) { _%>
51
+ importProvidersFrom(TranslationModule),
52
+ <%_ } _%>
53
+ importProvidersFrom(HttpClientModule),
54
+ Title,
55
+ <%_ if (authenticationTypeSession && communicationSpringWebsocket) { _%>
56
+ CookieService,
57
+ <%_ } _%>
58
+ { provide: LOCALE_ID, useValue: '<%= angularLocaleId %>' },
59
+ { provide: NgbDateAdapter, useClass: NgbDateDayjsAdapter },
60
+ <%_ if (enableI18nRTL) { _%>
61
+ FindLanguageFromKeyPipe,
62
+ <%_ } _%>
63
+ httpInterceptorProviders,
64
+ { provide: TitleStrategy, useClass: AppPageTitleStrategy },
65
+ // jhipster-needle-angular-add-module JHipster will add new module here
66
+ ],
67
+ };
@@ -0,0 +1,85 @@
1
+ <%#
2
+ Copyright 2013-2023 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 { NgModule } from '@angular/core';
20
+ import { Routes } from '@angular/router';
21
+
22
+ import { errorRoute } from './layouts/error/error.route';
23
+ import { Authority } from 'app/config/authority.constants';
24
+
25
+ import HomeComponent from './home/home.component';
26
+ import NavbarComponent from './layouts/navbar/navbar.component';
27
+ <%_ if (!authenticationTypeOauth2) { _%>
28
+ import LoginComponent from './login/login.component';
29
+ <%_ } _%>
30
+ <%_ if (applicationTypeGateway && microfrontend) { _%>
31
+ import { loadEntityRoutes } from './core/microfrontend';
32
+ <%_ } _%>
33
+
34
+ import { UserRouteAccessService } from 'app/core/auth/user-route-access.service';
35
+
36
+ const routes: Routes = [
37
+ {
38
+ path: '',
39
+ component: HomeComponent,
40
+ title: 'home.title',
41
+ },
42
+ {
43
+ path: '',
44
+ component: NavbarComponent,
45
+ outlet: 'navbar',
46
+ },
47
+ <%_ if (!applicationTypeMicroservice) { _%>
48
+ {
49
+ path: 'admin',
50
+ data: {
51
+ authorities: [Authority.ADMIN],
52
+ },
53
+ canActivate: [UserRouteAccessService],
54
+ loadChildren: () => import('./admin/admin.routes'),
55
+ },
56
+ <%_ } _%>
57
+ <%_ if (generateUserManagement) { _%>
58
+ {
59
+ path: 'account',
60
+ loadChildren: () => import('./account/account.route'),
61
+ },
62
+ <%_ } _%>
63
+ <%_ if (!authenticationTypeOauth2) { _%>
64
+ {
65
+ path: 'login',
66
+ component: LoginComponent,
67
+ title: 'login.title',
68
+ },
69
+ <%_ } _%>
70
+ {
71
+ path: '<%= applicationTypeMicroservice ? lowercaseBaseName : '' %>',
72
+ loadChildren: () => import(`./entities/entity.routes`),
73
+ },
74
+ <%_ if (applicationTypeGateway && microfrontend) { _%>
75
+ <%_ for (const remote of microfrontends) { _%>
76
+ {
77
+ path: '<%= remote.lowercaseBaseName %>',
78
+ loadChildren: () => loadEntityRoutes('<%= remote.lowercaseBaseName %>'),
79
+ },
80
+ <%_ } _%>
81
+ <%_ } _%>
82
+ ...errorRoute,
83
+ ];
84
+
85
+ export default routes;
@@ -16,6 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
+ // eslint-disable @typescript-eslint/no-unsafe-return
19
20
  import { Type } from '@angular/core';
20
21
  import { loadRemoteModule } from '@angular-architects/module-federation-runtime';
21
22
 
@@ -35,9 +36,9 @@ export const loadTranslationModule = async (service: string): Promise<Type<any>>
35
36
  exposedModule: './translation-module',
36
37
  }).then(({ LazyTranslationModule }) => LazyTranslationModule);
37
38
 
38
- export const loadEntityModule = async (service: string): Promise<Type<any>> =>
39
- loadRemoteModule<{ EntityRoutingModule: Type<any> }>({
39
+ export const loadEntityRoutes = (service: string): Promise<Type<any>> =>
40
+ loadRemoteModule<Type<any>>({
40
41
  type: 'module',
41
42
  remoteEntry: `./services/${service}/remoteEntry.js`,
42
- exposedModule: './entity-routing',
43
- }).then(({ EntityRoutingModule }) => EntityRoutingModule);
43
+ exposedModule: './entity-routes',
44
+ });
@@ -296,7 +296,7 @@ describe('Alert service test', () => {
296
296
  }
297
297
  ));
298
298
 
299
- it('should produce a info message with provided key if transltion key does not exist in translations and message is not provided', inject(
299
+ it('should produce a info message with provided key if translation key does not exist in translations and message is not provided', inject(
300
300
  [AlertService, TranslateService],
301
301
  (service: AlertService) => {
302
302
  expect(service.addAlert({ type: 'info', translationKey: 'hello.jhipster' })).toEqual(
@@ -48,7 +48,7 @@ export class DataUtils {
48
48
  */
49
49
  openFile(data: string, contentType: string | null | undefined): void {
50
50
  contentType = contentType ?? '';
51
-
51
+
52
52
  const byteCharacters = Buffer.from(data, 'base64').toString('binary');
53
53
  const byteNumbers = new Array(byteCharacters.length);
54
54
  for (let i = 0; i < byteCharacters.length; i++) {
@@ -73,7 +73,7 @@ export class DataUtils {
73
73
  * @param editForm the form group where the input field is located
74
74
  * @param field the field name to set the file's 'base 64 data' on
75
75
  * @param isImage boolean representing if the file represented by the event is an image
76
- * @returns an observable that loads file to form field and completes if sussessful
76
+ * @returns an observable that loads file to form field and completes if successful
77
77
  * or returns error as FileLoadError on failure
78
78
  */
79
79
  loadFileToForm(event: Event, editForm: FormGroup, field: string, isImage: boolean): Observable<void> {
@@ -32,13 +32,13 @@ describe('Event Manager tests', () => {
32
32
  });
33
33
 
34
34
  describe('EventManager', () => {
35
- let recievedEvent: EventWithContent<unknown> | string | null;
35
+ let receivedEvent: EventWithContent<unknown> | string | null;
36
36
 
37
37
  beforeEach(() => {
38
38
  TestBed.configureTestingModule({
39
39
  providers: [EventManager],
40
40
  });
41
- recievedEvent = null;
41
+ receivedEvent = null;
42
42
  });
43
43
 
44
44
  it('should not fail when nosubscriber and broadcasting', inject([EventManager], (eventManager: EventManager) => {
@@ -50,53 +50,53 @@ describe('Event Manager tests', () => {
50
50
  [EventManager],
51
51
  (eventManager: EventManager) => {
52
52
  // GIVEN
53
- eventManager.subscribe('modifier', (event: EventWithContent<unknown> | string) => (recievedEvent = event));
53
+ eventManager.subscribe('modifier', (event: EventWithContent<unknown> | string) => (receivedEvent = event));
54
54
 
55
55
  // WHEN
56
56
  eventManager.broadcast({ name: 'unrelatedModifier', content: 'unrelated modification' });
57
57
  // THEN
58
- expect(recievedEvent).toBeNull();
58
+ expect(receivedEvent).toBeNull();
59
59
 
60
60
  // WHEN
61
61
  eventManager.broadcast({ name: 'modifier', content: 'modified something' });
62
62
  // THEN
63
- expect(recievedEvent).toEqual({ name: 'modifier', content: 'modified something' });
63
+ expect(receivedEvent).toEqual({ name: 'modifier', content: 'modified something' });
64
64
  }
65
65
  ));
66
66
 
67
67
  it('should create an observable and callback when broadcasted string', inject([EventManager], (eventManager: EventManager) => {
68
68
  // GIVEN
69
- eventManager.subscribe('modifier', (event: EventWithContent<unknown> | string) => (recievedEvent = event));
69
+ eventManager.subscribe('modifier', (event: EventWithContent<unknown> | string) => (receivedEvent = event));
70
70
 
71
71
  // WHEN
72
72
  eventManager.broadcast('unrelatedModifier');
73
73
  // THEN
74
- expect(recievedEvent).toBeNull();
74
+ expect(receivedEvent).toBeNull();
75
75
 
76
76
  // WHEN
77
77
  eventManager.broadcast('modifier');
78
78
  // THEN
79
- expect(recievedEvent).toEqual('modifier');
79
+ expect(receivedEvent).toEqual('modifier');
80
80
  }));
81
81
 
82
82
  it('should subscribe to multiple events', inject([EventManager], (eventManager: EventManager) => {
83
83
  // GIVEN
84
- eventManager.subscribe(['modifier', 'modifier2'], (event: EventWithContent<unknown> | string) => (recievedEvent = event));
84
+ eventManager.subscribe(['modifier', 'modifier2'], (event: EventWithContent<unknown> | string) => (receivedEvent = event));
85
85
 
86
86
  // WHEN
87
87
  eventManager.broadcast('unrelatedModifier');
88
88
  // THEN
89
- expect(recievedEvent).toBeNull();
89
+ expect(receivedEvent).toBeNull();
90
90
 
91
91
  // WHEN
92
92
  eventManager.broadcast({ name: 'modifier', content: 'modified something' });
93
93
  // THEN
94
- expect(recievedEvent).toEqual({ name: 'modifier', content: 'modified something' });
94
+ expect(receivedEvent).toEqual({ name: 'modifier', content: 'modified something' });
95
95
 
96
96
  // WHEN
97
97
  eventManager.broadcast('modifier2');
98
98
  // THEN
99
- expect(recievedEvent).toEqual('modifier2');
99
+ expect(receivedEvent).toEqual('modifier2');
100
100
  }));
101
101
  });
102
102
  });
@@ -22,7 +22,7 @@ const enumImports = this.generateEntityClientEnumImports(fields);
22
22
  <%_ if (anyFieldIsDateDerived) { _%>
23
23
  import dayjs from 'dayjs/esm';
24
24
  <%_ } _%>
25
- <%_ for (const relationshipsByType of Object.values(differentRelationships).filter(relationshipsByType => relationshipsByType.some(relationship => (relationship.ownerSide || relationship.relationshipManyToMany) && relationship.otherEntity.entityAngularName !== entityAngularName))) {
25
+ <%_ for (const relationshipsByType of Object.values(differentRelationships).filter(relationshipsByType => relationshipsByType.some(relationship => relationship.otherEntity.entityAngularName !== entityAngularName))) {
26
26
  const { otherEntity } = relationshipsByType[0];
27
27
  _%>
28
28
  import { I<%- otherEntity.entityAngularName %> } from 'app/entities/<%= otherEntity.entityClientRootFolder %><%= otherEntity.entityFolderName %>/<%= otherEntity.entityFileName %>.model';
@@ -41,10 +41,10 @@ _%>
41
41
  <%= fieldName %>ContentType<% if (!id /* && !fieldValidationRequired */) { %>?<% } %>: string<% if (!id /* && !fieldValidationRequired */) { %> | null<% } %>,
42
42
  <%_ } _%>
43
43
  <%_ } _%>
44
- <%_ for (const relationship of relationships.filter(relationship => relationship.ownerSide || relationship.relationshipManyToMany)) {
45
- const { propertyName, relationshipRequired, otherEntity, id, collection, otherEntityField } = relationship;
44
+ <%_ for (const relationship of relationships) {
45
+ const { propertyName, relationshipRequired, otherEntity, collection, otherEntityField } = relationship;
46
46
  _%>
47
- <%= propertyName %>?: Pick<I<%= otherEntity.entityAngularName %>, '<%= otherEntity.primaryKey.name %>'<% if (otherEntity.primaryKey.name !== otherEntityField) { %> | '<%= otherEntityField %>'<% } %>><% if (collection) { %>[]<% } %> | null;
47
+ <%= propertyName %>?: <% if (!otherEntity.embedded && (dtoMapstruct || otherEntity.builtInUser)) { %>Pick<<% } %>I<%= otherEntity.entityAngularName %><% if (!otherEntity.embedded && (dtoMapstruct || otherEntity.builtInUser)) { %>, '<%= otherEntity.primaryKey.name %>'<% if (otherEntity.primaryKey.name !== otherEntityField) { %> | '<%= otherEntityField %>'<% } %>><% } %><% if (collection) { %>[]<% } %> | null;
48
48
  <%_ } _%>
49
49
  }
50
50
  <%_ if (primaryKey) { _%>
@@ -16,7 +16,8 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- <form *ngIf="<%= entityInstance %>" name="deleteForm" (ngSubmit)="confirmDelete(<%= entityInstance %>.<%= primaryKey.name %>!)">
19
+ @if (<%= entityInstance %>) {
20
+ <form name="deleteForm" (ngSubmit)="confirmDelete(<%= entityInstance %>.<%= primaryKey.name %>!)">
20
21
  <div class="modal-header">
21
22
  <h4 class="modal-title" data-cy="<%= entityInstance %>DeleteDialogHeading" <%= jhiPrefix %>Translate="entity.delete.title">__jhiTransformTranslate__('entity.delete.title')</h4>
22
23
 
@@ -39,3 +40,4 @@
39
40
  </button>
40
41
  </div>
41
42
  </form>
43
+ }
@@ -18,7 +18,8 @@
18
18
  -%>
19
19
  <div class="d-flex justify-content-center">
20
20
  <div class="col-8">
21
- <div *ngIf="<%= entityInstance %>">
21
+ @if (<%= entityInstance %>) {
22
+ <div>
22
23
  <h2 data-cy="<%= entityInstance %>DetailsHeading"><span <%= jhiPrefix %>Translate="<%= i18nKeyPrefix %>.detail.title">__jhiTransformTranslate__('<%- i18nKeyPrefix %>.detail.title')</span></h2>
23
24
 
24
25
  <hr>
@@ -38,17 +39,21 @@ _%>
38
39
  <%# TODO: import enum and use its key as label _%>
39
40
  <span <%= jhiPrefix %>Translate="{{ '<%= frontendAppName %>.<%= fieldType %>.' + <%= entityInstance %>.<%= fieldName %> }}">{{ <%= entityInstance %>.<%= fieldName %> }}</span>
40
41
  <%_ } else if (field.fieldTypeBinary && field.blobContentTypeImage) { _%>
41
- <div *ngIf="<%= entityInstance %>.<%= fieldName %>">
42
- <a (click)="openFile(<%= entityInstance %>.<%= fieldName %>, <%= entityInstance %>.<%= fieldName %>ContentType)">
43
- <img [src]="'data:' + <%= entityInstance %>.<%= fieldName %>ContentType + ';base64,' + <%= entityInstance %>.<%= fieldName %>" style="max-width: 100%;" alt="<%= entityInstance %> image"/>
44
- </a>
45
- {{ <%= entityInstance %>.<%= fieldName %>ContentType }}, {{ byteSize(<%= entityInstance %>.<%= fieldName %>) }}
42
+ @if (<%= entityInstance %>.<%= fieldName %>) {
43
+ <div>
44
+ <a (click)="openFile(<%= entityInstance %>.<%= fieldName %>, <%= entityInstance %>.<%= fieldName %>ContentType)">
45
+ <img [src]="'data:' + <%= entityInstance %>.<%= fieldName %>ContentType + ';base64,' + <%= entityInstance %>.<%= fieldName %>" style="max-width: 100%;" alt="<%= entityInstance %> image"/>
46
+ </a>
47
+ {{ <%= entityInstance %>.<%= fieldName %>ContentType }}, {{ byteSize(<%= entityInstance %>.<%= fieldName %>) }}
46
48
  </div>
49
+ }
47
50
  <%_ } else if (field.fieldTypeBinary && field.blobContentTypeAny) { _%>
48
- <div *ngIf="<%= entityInstance %>.<%= fieldName %>">
49
- <a (click)="openFile(<%= entityInstance %>.<%= fieldName %>, <%= entityInstance %>.<%= fieldName %>ContentType)" <%= jhiPrefix %>Translate="entity.action.open">__jhiTransformTranslate__('entity.action.open')</a>
50
- {{ <%= entityInstance %>.<%= fieldName %>ContentType }}, {{ byteSize(<%= entityInstance %>.<%= fieldName %>) }}
51
+ @if (<%= entityInstance %>.<%= fieldName %>) {
52
+ <div>
53
+ <a (click)="openFile(<%= entityInstance %>.<%= fieldName %>, <%= entityInstance %>.<%= fieldName %>ContentType)" <%= jhiPrefix %>Translate="entity.action.open">__jhiTransformTranslate__('entity.action.open')</a>
54
+ {{ <%= entityInstance %>.<%= fieldName %>ContentType }}, {{ byteSize(<%= entityInstance %>.<%= fieldName %>) }}
51
55
  </div>
56
+ }
52
57
  <%_ } else if (field.fieldTypeDuration) { _%>
53
58
  <span>{{ <%= entityInstance %>.<%= fieldName %> | duration }} ({{<%= entityInstance %>.<%= fieldName %> }})</span>
54
59
  <%_ } else if (field.fieldTypeTimed) { _%>
@@ -62,34 +67,40 @@ _%>
62
67
  <%_ } _%>
63
68
  <%_
64
69
  for (const relationship of relationships.filter(rel => !rel.otherEntityIsEmbedded)) {
65
- const ownerSide = relationship.ownerSide;
70
+ const { persistableRelationship } = relationship;
66
71
  const relationshipName = relationship.relationshipName;
67
72
  const relationshipFieldName = relationship.relationshipFieldName;
68
73
  const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
69
74
  const relationshipNameHumanized = relationship.relationshipNameHumanized;
70
75
  const otherEntityStateName = relationship.otherEntityStateName;
71
76
  const otherEntityField = relationship.otherEntityField;
72
- if (ownerSide) {
77
+ if (persistableRelationship) {
73
78
  _%>
74
79
  <dt><span <%= jhiPrefix %>Translate="<%= i18nKeyPrefix %>.<%= relationshipName %>">__jhiTransformTranslate__('<%- i18nKeyPrefix %>.<%- relationshipName %>')</span></dt>
75
80
  <dd>
76
81
  <%_ if (relationship.otherEntityUser) { _%>
77
82
  <%_ if (relationship.collection) { _%>
78
- <span *ngFor="let <%= relationshipFieldName %> of <%= entityInstance %>.<%= relationshipFieldNamePlural %>; let last = last">
83
+ @for (<%= relationshipFieldName %> of <%= entityInstance %>.<%= relationshipFieldNamePlural %>; track $index; let last = $last) {
84
+ <span>
79
85
  {{ <%= relationshipFieldName %>.<%= otherEntityField %> }}{{ last ? '' : ', ' }}
80
86
  </span>
87
+ }
81
88
  <%_ } else { _%>
82
89
  <span>{{ <%= entityInstance %>.<%= relationshipFieldName %>?.<%= otherEntityField %> }}</span>
83
90
  <%_ } _%>
84
91
  <%_ } else { _%>
85
92
  <%_ if (relationship.collection) { _%>
86
- <span *ngFor="let <%= relationshipFieldName %> of <%= entityInstance %>.<%= relationshipFieldNamePlural %>; let last = last">
93
+ @for (<%= relationshipFieldName %> of <%= entityInstance %>.<%= relationshipFieldNamePlural %>; track $index; let last = $last) {
94
+ <span>
87
95
  <a [routerLink]="['/<%= otherEntityStateName %>', <%= relationshipFieldName %>.<%= relationship.otherEntity.primaryKey.name %>, 'view']">{{ <%= relationshipFieldName %>.<%= otherEntityField %> }}</a>{{ last ? '' : ', ' }}
88
96
  </span>
97
+ }
89
98
  <%_ } else { _%>
90
- <div *ngIf="<%= entityInstance + '.' + relationshipFieldName %>">
99
+ @if (<%= entityInstance + '.' + relationshipFieldName %>) {
100
+ <div>
91
101
  <a [routerLink]="['/<%= otherEntityStateName %>', <%= entityInstance + '.' + relationshipFieldName + '.' + relationship.otherEntity.primaryKey.name %>, 'view']">{{ <%= entityInstance %>.<%= relationshipFieldName %>.<%= otherEntityField %> }}</a>
92
102
  </div>
103
+ }
93
104
  <%_ } _%>
94
105
  <%_ } _%>
95
106
  </dd>
@@ -114,5 +125,6 @@ _%>
114
125
  </button>
115
126
  <%_ } _%>
116
127
  </div>
128
+ }
117
129
  </div>
118
130
  </div>