generator-jhipster 8.3.0 → 8.5.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 (430) hide show
  1. package/dist/generators/angular/generator.js +34 -0
  2. package/dist/generators/angular/resources/package.json +13 -13
  3. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +1 -1
  4. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +1 -1
  5. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +2 -2
  6. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  7. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +1 -1
  8. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +2 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  10. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +1 -1
  11. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +1 -1
  13. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  14. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  15. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +1 -1
  16. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  17. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  18. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  19. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +2 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +10 -6
  21. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +1 -1
  22. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +3 -3
  23. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  24. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +6 -6
  25. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +3 -3
  26. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +1 -1
  27. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  28. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  30. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +10 -8
  31. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  32. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  33. package/dist/generators/angular/templates/webpack/webpack.custom.js.ejs +1 -1
  34. package/dist/generators/app/generator.js +6 -33
  35. package/dist/generators/app/support/config.js +1 -3
  36. package/dist/generators/base/generator.js +15 -16
  37. package/dist/generators/base/priorities.js +12 -1
  38. package/dist/generators/base-application/generator.js +14 -2
  39. package/dist/generators/base-application/priorities.js +1 -0
  40. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  41. package/dist/generators/base-application/support/prepare-field.js +1 -1
  42. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  43. package/dist/generators/base-core/generator.js +45 -11
  44. package/dist/generators/base-entity-changes/generator.js +24 -0
  45. package/dist/generators/bootstrap-application-base/generator.js +46 -1
  46. package/dist/generators/bootstrap-application-server/generator.js +5 -7
  47. package/dist/generators/ci-cd/generator.js +0 -5
  48. package/dist/generators/client/command.js +2 -2
  49. package/dist/generators/client/generator.js +0 -22
  50. package/dist/generators/client/generators/common/command.js +5 -0
  51. package/dist/generators/client/generators/common/generator.js +79 -0
  52. package/dist/generators/{app/prompts.js → client/generators/common/index.js} +2 -15
  53. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  54. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  55. package/dist/generators/client/resources/package.json +6 -6
  56. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  57. package/dist/generators/common/command.js +13 -0
  58. package/dist/generators/common/generator.js +17 -3
  59. package/dist/generators/common/resources/package.json +2 -2
  60. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  61. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  62. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  63. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  64. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  65. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -1
  66. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  67. package/dist/generators/docker-compose/generator.js +1 -5
  68. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  69. package/dist/generators/entity/generator.js +2 -10
  70. package/dist/generators/entity/prompts.js +6 -11
  71. package/dist/generators/export-jdl/generator.js +0 -5
  72. package/dist/generators/gatling/README.md +15 -0
  73. package/dist/generators/gatling/templates/buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle.ejs +1 -1
  74. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  75. package/dist/generators/generate-blueprint/command.js +16 -0
  76. package/dist/generators/generate-blueprint/files.js +8 -0
  77. package/dist/generators/generate-blueprint/generator.js +17 -10
  78. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  79. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  80. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  81. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  82. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  83. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +24 -0
  84. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  85. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +2 -2
  86. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  87. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  88. package/dist/generators/generator-constants.js +1 -1
  89. package/dist/generators/heroku/generator.js +0 -5
  90. package/dist/generators/info/generator.js +1 -3
  91. package/dist/generators/init/generator.js +2 -2
  92. package/dist/generators/init/resources/.node-version +1 -1
  93. package/dist/generators/java/generators/build-tool/command.js +4 -1
  94. package/dist/generators/java/generators/domain/generator.js +16 -0
  95. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  96. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  97. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  98. package/dist/generators/java/support/add-java-annotation.js +28 -7
  99. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  100. package/dist/generators/java/support/index.js +1 -1
  101. package/dist/generators/jdl/generator.js +1 -5
  102. package/dist/generators/kubernetes/files.js +1 -1
  103. package/dist/generators/kubernetes/generator.js +0 -5
  104. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +0 -1
  105. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  106. package/dist/generators/kubernetes-helm/generator.js +0 -5
  107. package/dist/generators/kubernetes-knative/generator.js +0 -5
  108. package/dist/generators/languages/files.js +2 -2
  109. package/dist/generators/languages/generator.js +4 -8
  110. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json.ejs +19 -0
  111. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json.ejs +19 -0
  112. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json.ejs +19 -0
  113. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json.ejs +19 -0
  114. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json.ejs +19 -0
  115. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json.ejs +19 -0
  116. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json.ejs +19 -0
  117. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json.ejs +19 -0
  118. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json.ejs +19 -0
  119. package/dist/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
  120. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json.ejs +19 -0
  121. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json.ejs +19 -0
  122. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json.ejs +19 -0
  123. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json.ejs +19 -0
  124. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json.ejs +19 -0
  125. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json.ejs +19 -0
  126. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json.ejs +19 -0
  127. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json.ejs +19 -0
  128. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json.ejs +19 -0
  129. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json.ejs +19 -0
  130. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json.ejs +19 -0
  131. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json.ejs +19 -0
  132. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json.ejs +19 -0
  133. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json.ejs +19 -0
  134. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json.ejs +19 -0
  135. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json.ejs +19 -0
  136. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json.ejs +19 -0
  137. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json.ejs +19 -0
  138. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json.ejs +19 -0
  139. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json.ejs +19 -0
  140. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json.ejs +19 -0
  141. package/dist/generators/languages/templates/src/main/webapp/i18n/pa/{home.json → home.json.ejs} +2 -2
  142. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json.ejs +19 -0
  143. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json.ejs +19 -0
  144. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json.ejs +19 -0
  145. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json.ejs +19 -0
  146. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json.ejs +19 -0
  147. package/dist/generators/languages/templates/src/main/webapp/i18n/si/{home.json → home.json.ejs} +6 -6
  148. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json.ejs +19 -0
  149. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json.ejs +19 -0
  150. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json.ejs +19 -0
  151. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json.ejs +19 -0
  152. package/dist/generators/languages/templates/src/main/webapp/i18n/te/{home.json → home.json.ejs} +1 -1
  153. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json.ejs +19 -0
  154. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json.ejs +19 -0
  155. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json.ejs +19 -0
  156. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json.ejs +19 -0
  157. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json.ejs +19 -0
  158. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json.ejs +19 -0
  159. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json.ejs +19 -0
  160. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json.ejs +19 -0
  161. package/dist/generators/liquibase/generator.js +59 -12
  162. package/dist/generators/liquibase/support/prepare-field.js +16 -1
  163. package/dist/generators/liquibase/support/relationship.js +1 -0
  164. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
  165. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
  166. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +26 -1
  167. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +3 -3
  168. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  169. package/dist/generators/maven/templates/mvnw +185 -243
  170. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  171. package/dist/generators/react/generator.js +10 -0
  172. package/dist/generators/react/resources/package.json +30 -30
  173. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  174. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  175. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  176. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  177. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  178. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  179. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  180. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +7 -7
  181. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  182. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +0 -8
  183. package/dist/generators/server/command.js +0 -11
  184. package/dist/generators/server/generator.js +19 -115
  185. package/dist/generators/server/jdl/application-definition.js +3 -1
  186. package/dist/generators/server/resources/Dockerfile +15 -15
  187. package/dist/generators/server/resources/gradle/libs.versions.toml +12 -10
  188. package/dist/generators/server/resources/pom.xml +10 -10
  189. package/dist/generators/server/support/config.js +4 -8
  190. package/dist/generators/server/support/prepare-entity.js +5 -6
  191. package/dist/generators/server/support/prepare-field.js +7 -2
  192. package/dist/generators/server/support/prepare-relationship.js +7 -2
  193. package/dist/generators/server/support/relationship.js +5 -2
  194. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  195. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -2
  196. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +3 -2
  197. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  198. package/dist/generators/server/templates/pom.xml.ejs +7 -9
  199. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  200. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  201. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +57 -24
  202. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  203. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -20
  204. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  205. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +23 -0
  206. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  207. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +43 -9
  208. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
  209. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  210. package/dist/generators/server/templates/src/main/resources/static/index_microservices.html.ejs +8 -8
  211. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  212. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  213. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  214. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  215. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  216. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  217. package/dist/generators/spring-boot/cleanup.js +3 -0
  218. package/dist/generators/spring-boot/command.js +127 -7
  219. package/dist/generators/spring-boot/files.js +0 -10
  220. package/dist/generators/spring-boot/generator.js +54 -4
  221. package/dist/generators/{server → spring-boot}/prompts.js +8 -72
  222. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +380 -588
  223. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  224. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  225. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  226. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  227. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  228. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +2 -2
  229. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +4 -0
  230. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -1
  231. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  232. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  233. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  234. package/dist/generators/spring-data-relational/support/h2-reserved-keywords.js +22 -0
  235. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  236. package/dist/generators/upgrade/generator.js +0 -4
  237. package/dist/generators/vue/resources/package.json +22 -22
  238. package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
  239. package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.vue.ejs +1 -1
  240. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
  241. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
  242. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/init/reset-password-init.vue.ejs +1 -1
  243. package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
  244. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  245. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-edit.vue.ejs +1 -1
  246. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +7 -7
  247. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  248. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -2
  249. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  250. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  251. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  252. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  253. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  254. package/dist/generators/vue/templates/vitest.config.mts.ejs +1 -1
  255. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -9
  256. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  257. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  258. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  259. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  260. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  261. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  262. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  263. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  264. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  265. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  266. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  267. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  268. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  269. package/dist/jdl/exporters/config.js +1 -0
  270. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  271. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  272. package/dist/jdl/jdl-importer.js +22 -20
  273. package/dist/jdl/jhipster/binary-options.js +12 -8
  274. package/dist/jdl/jhipster/json-entity.js +1 -1
  275. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  276. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  277. package/dist/jdl/models/jdl-binary-option.js +2 -2
  278. package/dist/jdl/models/jdl-deployment.js +11 -0
  279. package/dist/jdl/models/jdl-entity.js +1 -1
  280. package/dist/jdl/models/jdl-enum.js +1 -1
  281. package/dist/jdl/models/jdl-enums.js +0 -18
  282. package/dist/jdl/models/jdl-field.js +2 -2
  283. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  284. package/dist/jdl/models/jdl-object.js +23 -45
  285. package/dist/jdl/models/jdl-options.js +0 -18
  286. package/dist/jdl/models/jdl-relationships.js +8 -16
  287. package/dist/jdl/models/jdl-unary-option.js +1 -1
  288. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  289. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  290. package/dist/jdl/parsing/jdl-parser.js +14 -0
  291. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  292. package/dist/jdl/parsing/validator.js +16 -2
  293. package/dist/jdl/readers/json-reader.js +1 -1
  294. package/dist/jdl/utils/array-utils.js +6 -0
  295. package/dist/jdl/utils/set-utils.js +3 -2
  296. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  297. package/dist/testing/helpers.js +4 -0
  298. package/dist/types/generators/base/api.d.ts +6 -2
  299. package/dist/types/generators/base/generator.d.ts +10 -4
  300. package/dist/types/generators/base/priorities.d.ts +4 -0
  301. package/dist/types/generators/base/shared-data.d.ts +1 -1
  302. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  303. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  304. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  305. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  306. package/dist/types/generators/base-application/types.d.ts +15 -0
  307. package/dist/types/generators/base-core/generator.d.ts +16 -1
  308. package/dist/types/generators/base-entity-changes/types.d.ts +2 -0
  309. package/dist/types/generators/generator-constants.d.ts +1 -1
  310. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  311. package/dist/types/generators/java/support/doc.d.ts +1 -1
  312. package/dist/types/generators/java/support/index.d.ts +1 -1
  313. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  314. package/dist/types/generators/server/types.d.ts +5 -0
  315. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  316. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  317. package/dist/types/generators/spring-data-relational/support/h2-reserved-keywords.d.ts +20 -0
  318. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  319. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  320. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  321. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  322. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  323. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  324. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  325. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  326. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  327. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  328. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  329. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  330. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  331. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  332. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  333. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  334. package/dist/types/jdl/converters/types.d.ts +102 -14
  335. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  336. package/dist/types/jdl/exporters/config.d.ts +2 -1
  337. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  338. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  339. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  340. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  341. package/dist/types/jdl/exporters/types.d.ts +61 -0
  342. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  343. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  344. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  345. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  346. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  347. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  348. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  349. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  350. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  351. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  352. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  353. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  354. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  355. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  356. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  357. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  358. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  359. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  360. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  361. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  362. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  363. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  364. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  365. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  366. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  367. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  368. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  369. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  370. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  371. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  372. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  373. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  374. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  375. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  376. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  377. package/dist/types/testing/helpers.d.ts +13 -3
  378. package/package.json +30 -30
  379. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json +0 -19
  380. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json +0 -19
  381. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json +0 -19
  382. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json +0 -19
  383. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json +0 -19
  384. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json +0 -19
  385. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json +0 -19
  386. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json +0 -19
  387. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json +0 -19
  388. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json +0 -19
  389. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json +0 -19
  390. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json +0 -19
  391. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json +0 -19
  392. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json +0 -19
  393. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json +0 -19
  394. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json +0 -19
  395. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json +0 -19
  396. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json +0 -19
  397. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json +0 -19
  398. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -19
  399. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json +0 -19
  400. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json +0 -19
  401. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json +0 -19
  402. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json +0 -19
  403. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json +0 -19
  404. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json +0 -19
  405. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json +0 -19
  406. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json +0 -19
  407. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json +0 -19
  408. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json +0 -19
  409. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json +0 -19
  410. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json +0 -19
  411. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json +0 -19
  412. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json +0 -19
  413. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json +0 -19
  414. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json +0 -19
  415. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json +0 -19
  416. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json +0 -19
  417. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json +0 -19
  418. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json +0 -19
  419. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json +0 -19
  420. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json +0 -19
  421. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +0 -148
  422. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json +0 -19
  423. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json +0 -19
  424. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json +0 -19
  425. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json +0 -19
  426. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json +0 -19
  427. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_imperative.java.ejs +0 -43
  428. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_reactive.java.ejs +0 -184
  429. package/dist/generators/statistics.js +0 -223
  430. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -25,14 +25,14 @@ import assert from 'assert';
25
25
  import { requireNamespace } from '@yeoman/namespace';
26
26
  import chalk from 'chalk';
27
27
  import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
28
- import { kebabCase, snakeCase, merge, get, set } from 'lodash-es';
28
+ import { kebabCase, snakeCase, merge, get, set, defaults } from 'lodash-es';
29
29
  import { simpleGit } from 'simple-git';
30
30
  import semver, { lt as semverLessThan } from 'semver';
31
31
  import YeomanGenerator from 'yeoman-generator';
32
32
  import latestVersion from 'latest-version';
33
33
  import SharedData from '../base/shared-data.js';
34
34
  import { CUSTOM_PRIORITIES, PRIORITY_NAMES, PRIORITY_PREFIX } from '../base/priorities.js';
35
- import { createJHipster7Context, formatDateForChangelog, joinCallbacks } from '../base/support/index.js';
35
+ import { createJHipster7Context, formatDateForChangelog, joinCallbacks, removeFieldsWithNullishValues, } from '../base/support/index.js';
36
36
  import { packageJson } from '../../lib/index.js';
37
37
  import { GENERATOR_BOOTSTRAP } from '../generator-list.js';
38
38
  import NeedleApi from '../needle-api.js';
@@ -41,7 +41,8 @@ import { GENERATOR_JHIPSTER, YO_RC_FILE } from '../generator-constants.js';
41
41
  import { convertConfigToOption } from '../../lib/internal/index.js';
42
42
  import { getGradleLibsVersionsProperties } from '../gradle/support/dependabot-gradle.js';
43
43
  import { dockerPlaceholderGenerator } from '../docker/utils.js';
44
- const { INITIALIZING, PROMPTING, CONFIGURING, COMPOSING, LOADING, PREPARING, POST_PREPARING, DEFAULT, WRITING, POST_WRITING, INSTALL, POST_INSTALL, END, } = PRIORITY_NAMES;
44
+ import { getConfigWithDefaults } from '../../jdl/index.js';
45
+ const { INITIALIZING, PROMPTING, CONFIGURING, COMPOSING, COMPOSING_COMPONENT, LOADING, PREPARING, POST_PREPARING, DEFAULT, WRITING, POST_WRITING, INSTALL, POST_INSTALL, END, } = PRIORITY_NAMES;
45
46
  const __filename = fileURLToPath(import.meta.url);
46
47
  const __dirname = dirname(__filename);
47
48
  const asPriority = (priorityName) => `${PRIORITY_PREFIX}${priorityName}`;
@@ -58,6 +59,7 @@ export default class CoreGenerator extends YeomanGenerator {
58
59
  static PROMPTING = asPriority(PROMPTING);
59
60
  static CONFIGURING = asPriority(CONFIGURING);
60
61
  static COMPOSING = asPriority(COMPOSING);
62
+ static COMPOSING_COMPONENT = asPriority(COMPOSING_COMPONENT);
61
63
  static LOADING = asPriority(LOADING);
62
64
  static PREPARING = asPriority(PREPARING);
63
65
  static POST_PREPARING = asPriority(POST_PREPARING);
@@ -149,6 +151,19 @@ export default class CoreGenerator extends YeomanGenerator {
149
151
  }
150
152
  return this._needleApi;
151
153
  }
154
+ /**
155
+ * JHipster config with default values fallback
156
+ */
157
+ get jhipsterConfigWithDefaults() {
158
+ const configWithDefaults = getConfigWithDefaults(removeFieldsWithNullishValues(this.config.getAll()));
159
+ defaults(configWithDefaults, {
160
+ skipFakeData: false,
161
+ skipCheckLengthOfIdentifier: false,
162
+ enableGradleEnterprise: false,
163
+ pages: [],
164
+ });
165
+ return configWithDefaults;
166
+ }
152
167
  /**
153
168
  * Warn or throws check failure based on current skipChecks option.
154
169
  * @param message
@@ -169,11 +184,14 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`);
169
184
  */
170
185
  isJhipsterVersionLessThan(version) {
171
186
  const jhipsterOldVersion = this.sharedData.getControl().jhipsterOldVersion;
172
- if (!jhipsterOldVersion) {
173
- // if old version is unknown then can't compare (the project may be null) and return false
174
- return false;
175
- }
176
- return semverLessThan(jhipsterOldVersion, version);
187
+ return this.isVersionLessThan(jhipsterOldVersion, version);
188
+ }
189
+ /**
190
+ * Wrapper for `semver.lt` to check if the oldVersion exists and is less than the newVersion.
191
+ * Can be used by blueprints.
192
+ */
193
+ isVersionLessThan(oldVersion, newVersion) {
194
+ return oldVersion ? semverLessThan(oldVersion, newVersion) : false;
177
195
  }
178
196
  /**
179
197
  * Get arguments for the priority
@@ -251,6 +269,19 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`);
251
269
  }
252
270
  return this.prompt(this.prepareQuestions(generatorCommand.configs));
253
271
  }
272
+ /**
273
+ * Configure the current JHipster command.
274
+ * Blueprints with command override takes precedence.
275
+ */
276
+ async configureCurrentJHipsterCommandConfig() {
277
+ const generatorCommand = await this.getCurrentJHipsterCommand();
278
+ if (!generatorCommand.configs) {
279
+ throw new Error(`Configs not found for generator ${this.options.namespace}`);
280
+ }
281
+ for (const def of Object.values(generatorCommand.configs)) {
282
+ def.configure?.(this);
283
+ }
284
+ }
254
285
  /**
255
286
  * Load the current JHipster command storage configuration into the context.
256
287
  * Blueprints with command override takes precedence.
@@ -263,10 +294,13 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`);
263
294
  const config = this.jhipsterConfigWithDefaults;
264
295
  Object.entries(generatorCommand.configs).forEach(([name, def]) => {
265
296
  if (def.scope === 'storage') {
266
- context[name] = context[name] ?? config?.[name] ?? this.config.get(name);
297
+ context[name] = context[name] ?? config?.[name] ?? this.config.get(name) ?? def.default;
298
+ }
299
+ if (def.scope === 'generator') {
300
+ context[name] = context[name] ?? this[name] ?? def.default;
267
301
  }
268
302
  if (def.scope === 'blueprint') {
269
- context[name] = context[name] ?? this.blueprintStorage?.get(name);
303
+ context[name] = context[name] ?? this.blueprintStorage?.get(name) ?? def.default;
270
304
  }
271
305
  });
272
306
  }
@@ -392,7 +426,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`);
392
426
  return Object.entries(configs)
393
427
  .filter(([_name, def]) => def?.prompt)
394
428
  .map(([name, def]) => {
395
- const promptSpec = typeof def.prompt === 'function' ? def.prompt(this) : { ...def.prompt };
429
+ const promptSpec = typeof def.prompt === 'function' ? def.prompt(this, def) : { ...def.prompt };
396
430
  let storage;
397
431
  if ((def.scope ?? 'storage') === 'storage') {
398
432
  storage = this.config;
@@ -33,6 +33,8 @@ const baseChangelog = () => ({
33
33
  addedRelationships: [],
34
34
  removedRelationships: [],
35
35
  relationshipsToRecreateForeignKeysOnly: [],
36
+ removedDefaultValueFields: [],
37
+ addedDefaultValueFields: [],
36
38
  changelogData: {},
37
39
  });
38
40
  /**
@@ -127,6 +129,20 @@ export default class GeneratorBaseEntityChanges extends GeneratorBaseApplication
127
129
  const relationshipsToRecreateForeignKeysOnly = addedRelationships
128
130
  .filter(addedRelationship => removedRelationships.some(removedRelationship => relationshipNeedsForeignKeyRecreationOnly(removedRelationship, addedRelationship)))
129
131
  .concat(removedRelationships.filter(removedRelationship => addedRelationships.some(addedRelationship => relationshipNeedsForeignKeyRecreationOnly(addedRelationship, removedRelationship))));
132
+ const oldFieldsWithDefaultValues = oldFields.filter(field => this.hasAnyDefaultValue(field));
133
+ const newFieldsWithDefaultValues = newFields.filter(field => this.hasAnyDefaultValue(field));
134
+ // find the old fields that have not been deleted anyway or otherwise where the default value is different on the same new field
135
+ const removedDefaultValueFields = oldFieldsWithDefaultValues
136
+ .filter(oldField => !removedFieldNames.includes(oldField.fieldName))
137
+ .filter(
138
+ // field was not removed, so check its default value
139
+ oldField => this.doDefaultValuesDiffer(oldField, newFields.find(newField => newField.fieldName === oldField.fieldName)));
140
+ // find the new fields that have not been added newly anyway or otherwise where the old field had a different default value
141
+ const addedDefaultValueFields = newFieldsWithDefaultValues
142
+ .filter(newField => !addedFieldNames.includes(newField.fieldName))
143
+ .filter(
144
+ // field was not added newly, so check its default value
145
+ newField => this.doDefaultValuesDiffer(oldFields.find(oldField => oldField.fieldName === newField.fieldName), newField));
130
146
  return {
131
147
  ...baseChangelog(),
132
148
  previousEntity: oldConfig,
@@ -139,7 +155,15 @@ export default class GeneratorBaseEntityChanges extends GeneratorBaseApplication
139
155
  addedRelationships,
140
156
  removedRelationships,
141
157
  relationshipsToRecreateForeignKeysOnly,
158
+ removedDefaultValueFields,
159
+ addedDefaultValueFields,
142
160
  };
143
161
  });
144
162
  }
163
+ hasAnyDefaultValue(field) {
164
+ return field.defaultValue !== undefined || field.defaultValueComputed;
165
+ }
166
+ doDefaultValuesDiffer(field1, field2) {
167
+ return field1.defaultValue !== field2.defaultValue || field1.defaultValueComputed !== field2.defaultValueComputed;
168
+ }
145
169
  }
@@ -88,13 +88,17 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
88
88
  }
89
89
  get loading() {
90
90
  return this.asLoadingTaskGroup({
91
- loadApplication({ application, control }) {
91
+ loadApplication({ application, control, applicationDefaults }) {
92
92
  loadAppConfig({
93
93
  config: this.jhipsterConfigWithDefaults,
94
94
  application,
95
95
  useVersionPlaceholders: this.useVersionPlaceholders,
96
96
  });
97
97
  loadLanguagesConfig({ application, config: this.jhipsterConfigWithDefaults, control });
98
+ applicationDefaults({
99
+ backendType: this.jhipsterConfig.backendType ?? 'Java',
100
+ syncUserWithIdp: this.jhipsterConfig.syncUserWithIdp,
101
+ });
98
102
  },
99
103
  loadNodeDependencies({ application }) {
100
104
  this.loadNodeDependencies(application.nodeDependencies, {
@@ -114,10 +118,51 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator {
114
118
  prepareApplication({ application, applicationDefaults }) {
115
119
  loadDerivedAppConfig({ application });
116
120
  applicationDefaults({
121
+ __override__: false,
117
122
  nodePackageManager: 'npm',
118
123
  dockerServicesDir: JAVA_DOCKER_DIR,
119
124
  // TODO drop clientPackageManager
120
125
  clientPackageManager: ({ nodePackageManager }) => nodePackageManager,
126
+ hipsterName: 'Java Hipster',
127
+ hipsterProductName: 'JHipster',
128
+ hipsterHomePageProductName: 'JHipster',
129
+ hipsterStackOverflowProductName: 'JHipster',
130
+ hipsterBugTrackerProductName: 'JHipster',
131
+ hipsterChatProductName: 'JHipster',
132
+ hipsterTwitterUsername: '@jhipster',
133
+ hipsterDocumentationLink: 'https://www.jhipster.tech/',
134
+ hipsterTwitterLink: 'https://twitter.com/jhipster',
135
+ hipsterProjectLink: 'https://github.com/jhipster/generator-jhipster',
136
+ hipsterStackoverflowLink: 'https://stackoverflow.com/tags/jhipster/info',
137
+ hipsterBugTrackerLink: 'https://github.com/jhipster/generator-jhipster/issues?state=open',
138
+ hipsterChatLink: 'https://gitter.im/jhipster/generator-jhipster',
139
+ backendTypeSpringBoot: ({ backendType }) => backendType === 'Java',
140
+ backendTypeJavaAny: ({ backendTypeSpringBoot }) => backendTypeSpringBoot,
141
+ });
142
+ },
143
+ userRelationship({ applicationDefaults }) {
144
+ applicationDefaults({
145
+ __override__: false,
146
+ anyEntityHasRelationshipWithUser: this.getExistingEntities().some(entity => (entity.definition.relationships ?? []).some(relationship => relationship.otherEntityName.toLowerCase() === 'user')),
147
+ });
148
+ },
149
+ syncUserWithIdp({ application, applicationDefaults }) {
150
+ if (!application.backendTypeSpringBoot)
151
+ return;
152
+ if (application.syncUserWithIdp === undefined && application.authenticationType === 'oauth2') {
153
+ applicationDefaults({
154
+ __override__: false,
155
+ syncUserWithIdp: data => data.databaseType !== 'no' && (data.applicationType === 'gateway' || data.anyEntityHasRelationshipWithUser),
156
+ });
157
+ }
158
+ else if (application.syncUserWithIdp && application.authenticationType !== 'oauth2') {
159
+ throw new Error('syncUserWithIdp is only supported with oauth2 authenticationType');
160
+ }
161
+ },
162
+ userManagement({ applicationDefaults }) {
163
+ applicationDefaults({
164
+ generateBuiltInUserEntity: ({ generateUserManagement, syncUserWithIdp }) => generateUserManagement || syncUserWithIdp,
165
+ generateBuiltInAuthorityEntity: ({ generateBuiltInUserEntity, databaseType }) => generateBuiltInUserEntity && databaseType !== 'cassandra',
121
166
  });
122
167
  },
123
168
  });
@@ -25,7 +25,7 @@ import { getPomVersionProperties } from '../maven/support/index.js';
25
25
  import { prepareField as prepareFieldForLiquibaseTemplates } from '../liquibase/support/index.js';
26
26
  import { getDockerfileContainers } from '../docker/utils.js';
27
27
  import { normalizePathEnd } from '../base/support/path.js';
28
- import { getFrontendAppName, mutateData } from '../base/support/index.js';
28
+ import { getFrontendAppName } from '../base/support/index.js';
29
29
  import { getMainClassName } from '../java/support/index.js';
30
30
  import { loadConfig, loadDerivedConfig } from '../../lib/internal/index.js';
31
31
  import serverCommand from '../server/command.js';
@@ -44,11 +44,9 @@ export default class BoostrapApplicationServer extends BaseApplicationGenerator
44
44
  }
45
45
  get loading() {
46
46
  return this.asLoadingTaskGroup({
47
- async loadApplication({ application }) {
47
+ async loadApplication({ application, applicationDefaults }) {
48
48
  loadConfig(serverCommand.configs, { config: this.jhipsterConfigWithDefaults, application });
49
49
  loadServerConfig({ config: this.jhipsterConfigWithDefaults, application });
50
- application.javaVersion = this.useVersionPlaceholders ? 'JAVA_VERSION' : JAVA_VERSION;
51
- application.backendType = this.jhipsterConfig.backendType ?? 'Java';
52
50
  const pomFile = this.readTemplate(this.jhipsterTemplatePath('../../server/resources/pom.xml'))?.toString();
53
51
  const gradleLibsVersions = this.readTemplate(this.jhipsterTemplatePath('../../server/resources/gradle/libs.versions.toml'))?.toString();
54
52
  const applicationJavaDependencies = this.prepareDependencies({
@@ -60,7 +58,8 @@ export default class BoostrapApplicationServer extends BaseApplicationGenerator
60
58
  ...dockerContainers,
61
59
  ...getDockerfileContainers(dockerfile),
62
60
  }, 'docker');
63
- mutateData(application, {
61
+ applicationDefaults({
62
+ javaVersion: this.useVersionPlaceholders ? 'JAVA_VERSION' : JAVA_VERSION,
64
63
  packageInfoJavadocs: [],
65
64
  javaProperties: {},
66
65
  javaManagedProperties: {},
@@ -72,6 +71,7 @@ export default class BoostrapApplicationServer extends BaseApplicationGenerator
72
71
  ...applicationDockerContainers,
73
72
  ...currentDockerContainers,
74
73
  }),
74
+ gatewayRoutes: undefined,
75
75
  });
76
76
  },
77
77
  });
@@ -99,8 +99,6 @@ export default class BoostrapApplicationServer extends BaseApplicationGenerator
99
99
  application.testResourceDir = SERVER_TEST_RES_DIR;
100
100
  application.srcMainDir = MAIN_DIR;
101
101
  application.srcTestDir = TEST_DIR;
102
- application.backendTypeSpringBoot = application.backendType === 'Java';
103
- application.backendTypeJavaAny = application.backendTypeJavaAny ?? application.backendTypeSpringBoot;
104
102
  },
105
103
  });
106
104
  }
@@ -19,8 +19,6 @@
19
19
  /* eslint-disable consistent-return */
20
20
  import chalk from 'chalk';
21
21
  import BaseApplicationGenerator from '../base-application/index.js';
22
- import statistics from '../statistics.js';
23
- import { GENERATOR_CI_CD } from '../generator-list.js';
24
22
  import { clientFrameworkTypes } from '../../jdl/jhipster/index.js';
25
23
  import { createPomStorage } from '../maven/support/pom-store.js';
26
24
  import command from './command.js';
@@ -97,9 +95,6 @@ export default class CiCdGenerator extends BaseApplicationGenerator {
97
95
  // Public API method used by the getter and also by Blueprints
98
96
  get writing() {
99
97
  return this.asWritingTaskGroup({
100
- insight() {
101
- statistics.sendSubGenEvent('generator', GENERATOR_CI_CD);
102
- },
103
98
  async writeFiles({ application }) {
104
99
  await this.writeFiles({
105
100
  blocks: [
@@ -42,8 +42,8 @@ const command = {
42
42
  prompt: generator => ({
43
43
  type: 'list',
44
44
  message: () => generator.jhipsterConfigWithDefaults.applicationType === APPLICATION_TYPE_MICROSERVICE
45
- ? `Which ${chalk.yellow('*Framework*')} would you like to use as microfrontend?`
46
- : `Which ${chalk.yellow('*Framework*')} would you like to use for the client?`,
45
+ ? `Which ${chalk.yellow('*framework*')} would you like to use as microfrontend?`
46
+ : `Which ${chalk.yellow('*framework*')} would you like to use for the client?`,
47
47
  }),
48
48
  choices: [
49
49
  { value: ANGULAR, name: 'Angular' },
@@ -21,7 +21,6 @@ import { askForClientTheme, askForClientThemeVariant } from './prompts.js';
21
21
  import { writeFiles as writeCommonFiles } from './files-common.js';
22
22
  import { addEnumerationFiles } from './entity-files.js';
23
23
  import { LOGIN_REGEX_JS } from '../generator-constants.js';
24
- import statistics from '../statistics.js';
25
24
  import { GENERATOR_CYPRESS, GENERATOR_COMMON, GENERATOR_CLIENT } from '../generator-list.js';
26
25
  import { testFrameworkTypes, clientFrameworkTypes } from '../../jdl/jhipster/index.js';
27
26
  import { createNeedleCallback } from '../base/support/index.js';
@@ -176,23 +175,6 @@ export default class JHipsterClientGenerator extends BaseApplicationGenerator {
176
175
  get [BaseApplicationGenerator.PREPARING_EACH_ENTITY]() {
177
176
  return this.delegateTasksToBlueprint(() => this.preparingEachEntity);
178
177
  }
179
- get default() {
180
- return this.asDefaultTaskGroup({
181
- insight({ application }) {
182
- statistics.sendSubGenEvent('generator', GENERATOR_CLIENT, {
183
- app: {
184
- clientFramework: application.clientFramework,
185
- enableTranslation: application.enableTranslation,
186
- nativeLanguage: application.nativeLanguage,
187
- languages: application.languages,
188
- },
189
- });
190
- },
191
- });
192
- }
193
- get [BaseApplicationGenerator.DEFAULT]() {
194
- return this.delegateTasksToBlueprint(() => this.default);
195
- }
196
178
  // Public API method used by the getter and also by Blueprints
197
179
  get writing() {
198
180
  return this.asWritingTaskGroup({
@@ -228,10 +210,6 @@ export default class JHipsterClientGenerator extends BaseApplicationGenerator {
228
210
  }
229
211
  const packageJsonStorage = this.createStorage(this.destinationPath(application.clientRootDir, 'package.json'));
230
212
  const scriptsStorage = packageJsonStorage.createStorage('scripts');
231
- const packageJsonConfigStorage = packageJsonStorage.createStorage('config').createProxy();
232
- if (process.env.JHI_PROFILE) {
233
- packageJsonConfigStorage.default_environment = process.env.JHI_PROFILE.includes('dev') ? 'dev' : 'prod';
234
- }
235
213
  const devDependencies = packageJsonStorage.createStorage('devDependencies');
236
214
  devDependencies.set('wait-on', application.nodeDependencies['wait-on']);
237
215
  devDependencies.set('concurrently', application.nodeDependencies.concurrently);
@@ -0,0 +1,5 @@
1
+ const command = {
2
+ configs: {},
3
+ import: [],
4
+ };
5
+ export default command;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import BaseApplicationGenerator from '../../../base-application/index.js';
20
+ import { clientApplicationTemplatesBlock } from '../../support/index.js';
21
+ export default class CommonGenerator extends BaseApplicationGenerator {
22
+ async beforeQueue() {
23
+ if (!this.fromBlueprint) {
24
+ await this.composeWithBlueprints();
25
+ }
26
+ if (!this.delegateToBlueprint) {
27
+ await this.dependsOnBootstrapApplication();
28
+ }
29
+ }
30
+ get initializing() {
31
+ return this.asInitializingTaskGroup({
32
+ async parseCommand() {
33
+ await this.parseCurrentJHipsterCommand();
34
+ },
35
+ });
36
+ }
37
+ get [BaseApplicationGenerator.INITIALIZING]() {
38
+ return this.delegateTasksToBlueprint(() => this.initializing);
39
+ }
40
+ get prompting() {
41
+ return this.asPromptingTaskGroup({
42
+ async promptCommand({ control }) {
43
+ if (control.existingProject && this.options.askAnswered !== true)
44
+ return;
45
+ await this.promptCurrentJHipsterCommand();
46
+ },
47
+ });
48
+ }
49
+ get [BaseApplicationGenerator.PROMPTING]() {
50
+ return this.delegateTasksToBlueprint(() => this.prompting);
51
+ }
52
+ get loading() {
53
+ return this.asLoadingTaskGroup({
54
+ async loadConfig({ application }) {
55
+ await this.loadCurrentJHipsterCommandConfig(application);
56
+ },
57
+ });
58
+ }
59
+ get [BaseApplicationGenerator.LOADING]() {
60
+ return this.delegateTasksToBlueprint(() => this.loading);
61
+ }
62
+ get writing() {
63
+ return this.asWritingTaskGroup({
64
+ async writing({ application }) {
65
+ await this.writeFiles({
66
+ blocks: [
67
+ clientApplicationTemplatesBlock({
68
+ templates: ['shared/jhipster/problem-details.ts', 'shared/jhipster/headers.ts'],
69
+ }),
70
+ ],
71
+ context: application,
72
+ });
73
+ },
74
+ });
75
+ }
76
+ get [BaseApplicationGenerator.WRITING]() {
77
+ return this.delegateTasksToBlueprint(() => this.writing);
78
+ }
79
+ }
@@ -16,18 +16,5 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import chalk from 'chalk';
20
- import statistics from '../statistics.js';
21
- export async function askForInsightOptIn() {
22
- if (!statistics.shouldWeAskForOptIn())
23
- return;
24
- const answers = await this.prompt({
25
- type: 'confirm',
26
- name: 'insight',
27
- message: `May ${chalk.cyan('JHipster')} anonymously report usage statistics to improve the tool over time?`,
28
- default: true,
29
- });
30
- if (answers.insight !== undefined) {
31
- statistics.setOptOutStatus(!answers.insight);
32
- }
33
- }
19
+ export { default } from './generator.js';
20
+ export { default as command } from './command.js';
@@ -0,0 +1,57 @@
1
+ <%#
2
+ Copyright 2013-2024 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ export type HeaderMessage = {
20
+ /** Success message */
21
+ alert?: string;
22
+ /** Error message */
23
+ error?: string;
24
+ /** Entity id for success messages. Entity name for error messages. */
25
+ param?: string;
26
+ };
27
+
28
+ const headerToString = (headerValue: any): string => {
29
+ if (Array.isArray(headerValue)) {
30
+ if (headerValue.length > 1) {
31
+ throw new Error('Multiple header values found');
32
+ }
33
+ headerValue = headerValue[0];
34
+ }
35
+ if (typeof headerValue !== 'string') {
36
+ throw new Error('Header value is not a string');
37
+ }
38
+ return headerValue;
39
+ }
40
+
41
+ const decodeHeaderValue = (headerValue: string): string => decodeURIComponent(headerValue.replace(/\+/g, ' '));
42
+
43
+ export const getMessageFromHeaders = (headers: Record<string, any>): HeaderMessage => {
44
+ let alert: string | undefined = undefined;
45
+ let param: string | undefined = undefined;
46
+ let error: string | undefined = undefined;
47
+ for (const [key, value] of Object.entries(headers)) {
48
+ if (key.toLowerCase().endsWith('-alert')) {
49
+ alert = headerToString(value);
50
+ } else if (key.toLowerCase().endsWith('-error')) {
51
+ error = headerToString(value);
52
+ } else if (key.toLowerCase().endsWith('-params')) {
53
+ param = decodeHeaderValue(headerToString(value));
54
+ }
55
+ }
56
+ return { alert, error, param };
57
+ };
@@ -0,0 +1,51 @@
1
+ <%#
2
+ Copyright 2013-2024 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ /**
20
+ * Problem details defined in RFC 7807.
21
+ * @see https://datatracker.ietf.org/doc/html/rfc7807#section-3.1
22
+ */
23
+ export type ProblemDetails = {
24
+ /** A URI reference that identifies the problem type */
25
+ type: string;
26
+ /** A short, human-readable summary of the problem type */
27
+ title: string;
28
+ /** The HTTP status code */
29
+ status: number;
30
+ /** A human-readable explanation specific to this occurrence of the problem */
31
+ detail: string;
32
+ /** A URI reference that identifies the specific occurrence of the problem */
33
+ instance: string;
34
+ }
35
+
36
+ export const ProblemWithMessageType = 'https://www.jhipster.tech/problem/problem-with-message';
37
+
38
+ export type FieldErrorVM = { message: string; objectName: string; field: string };
39
+
40
+ export type ProblemWithMessage = ProblemDetails & {
41
+ type: typeof ProblemWithMessageType;
42
+
43
+ /** Translation message key */
44
+ message?: string;
45
+ /** Request path */
46
+ path?: string;
47
+ /** Field errors */
48
+ fieldErrors?: FieldErrorVM[];
49
+ };
50
+
51
+ export const isProblemWithMessage = (data: any): data is ProblemWithMessage => data?.type === ProblemWithMessageType;
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "dependencies": {
3
- "dayjs": "1.11.10"
3
+ "dayjs": "1.11.11"
4
4
  },
5
5
  "devDependencies": {
6
- "@cypress/code-coverage": "3.12.33",
6
+ "@cypress/code-coverage": "3.12.39",
7
7
  "babel-loader": "9.1.3",
8
8
  "babel-plugin-istanbul": "6.1.1",
9
- "cypress": "13.7.2",
9
+ "cypress": "13.10.0",
10
10
  "cypress-audit": "1.1.0",
11
- "eslint-plugin-cypress": "2.15.1",
12
- "lighthouse": "11.7.0",
11
+ "eslint-plugin-cypress": "3.3.0",
12
+ "lighthouse": "12.0.0",
13
13
  "nyc": "15.1.0",
14
- "swagger-ui-dist": "5.13.0"
14
+ "swagger-ui-dist": "5.17.14"
15
15
  }
16
16
  }
@@ -89,7 +89,7 @@
89
89
 
90
90
  <h3>If you want to chat with contributors and other users</h3>
91
91
  <p>
92
- Join our chat room on <a href="https://gitter.im/jhipster/generator-jhipster" target="_blank" rel="noopener noreferrer">Gitter.im</a>. Please note that this is a public chat room, and that we expect you to respect other people and write in a correct English language!
92
+ Join our chat room on <a href="<%- hipsterChatLink %>" target="_blank" rel="noopener noreferrer">Gitter.im</a>. Please note that this is a public chat room, and that we expect you to respect other people and write in a correct English language!
93
93
  </p>
94
94
  <!-- end of troubleshooting content -->
95
95
  </div>
@@ -12,6 +12,19 @@ const command = {
12
12
  scope: 'storage',
13
13
  },
14
14
  },
15
+ configs: {
16
+ defaultEnvironment: {
17
+ description: 'Default environment for the application',
18
+ cli: {
19
+ type: String,
20
+ hide: true,
21
+ env: 'JHI_PROFILE',
22
+ },
23
+ choices: ['prod', 'dev'],
24
+ default: 'prod',
25
+ scope: 'storage',
26
+ },
27
+ },
15
28
  import: [GENERATOR_BOOTSTRAP_APPLICATION_BASE],
16
29
  };
17
30
  export default command;