generator-jhipster 8.4.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 (270) hide show
  1. package/dist/generators/angular/resources/package.json +10 -10
  2. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +2 -2
  3. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  4. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +2 -2
  5. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  6. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  7. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  8. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  10. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  11. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  12. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +2 -2
  13. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +3 -3
  14. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  15. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +3 -3
  16. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  18. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  19. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +10 -8
  20. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  21. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  22. package/dist/generators/app/generator.js +4 -13
  23. package/dist/generators/base/generator.js +15 -16
  24. package/dist/generators/base/priorities.js +12 -1
  25. package/dist/generators/base-application/generator.js +14 -2
  26. package/dist/generators/base-application/priorities.js +1 -0
  27. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  28. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  29. package/dist/generators/base-core/generator.js +40 -9
  30. package/dist/generators/bootstrap-application-base/generator.js +7 -3
  31. package/dist/generators/bootstrap-application-server/generator.js +1 -0
  32. package/dist/generators/client/command.js +2 -2
  33. package/dist/generators/client/generators/common/command.js +5 -0
  34. package/dist/generators/client/generators/common/generator.js +79 -0
  35. package/dist/generators/client/generators/common/index.js +20 -0
  36. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  37. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  38. package/dist/generators/client/resources/package.json +4 -4
  39. package/dist/generators/common/generator.js +5 -0
  40. package/dist/generators/common/resources/package.json +2 -2
  41. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  42. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  43. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  44. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  45. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  46. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -1
  47. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  48. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  49. package/dist/generators/entity/generator.js +2 -10
  50. package/dist/generators/entity/prompts.js +6 -11
  51. package/dist/generators/gatling/README.md +15 -0
  52. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  53. package/dist/generators/generate-blueprint/command.js +16 -0
  54. package/dist/generators/generate-blueprint/files.js +8 -0
  55. package/dist/generators/generate-blueprint/generator.js +17 -10
  56. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  57. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  58. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  59. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  60. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  61. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +24 -0
  62. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  63. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +2 -2
  64. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  65. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  66. package/dist/generators/generator-constants.js +1 -1
  67. package/dist/generators/info/generator.js +1 -3
  68. package/dist/generators/init/generator.js +2 -2
  69. package/dist/generators/init/resources/.node-version +1 -1
  70. package/dist/generators/java/generators/build-tool/command.js +4 -1
  71. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  72. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  73. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  74. package/dist/generators/java/support/add-java-annotation.js +28 -7
  75. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  76. package/dist/generators/java/support/index.js +1 -1
  77. package/dist/generators/jdl/generator.js +1 -1
  78. package/dist/generators/kubernetes/files.js +1 -1
  79. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +0 -1
  80. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  81. package/dist/generators/languages/generator.js +4 -2
  82. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  83. package/dist/generators/maven/templates/mvnw +185 -243
  84. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  85. package/dist/generators/react/generator.js +10 -0
  86. package/dist/generators/react/resources/package.json +24 -24
  87. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  88. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  89. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  90. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  91. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  92. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  93. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  94. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  95. package/dist/generators/server/command.js +0 -11
  96. package/dist/generators/server/generator.js +9 -70
  97. package/dist/generators/server/jdl/application-definition.js +3 -1
  98. package/dist/generators/server/resources/Dockerfile +12 -12
  99. package/dist/generators/server/resources/gradle/libs.versions.toml +7 -5
  100. package/dist/generators/server/resources/pom.xml +7 -7
  101. package/dist/generators/server/support/config.js +4 -8
  102. package/dist/generators/server/support/prepare-entity.js +5 -6
  103. package/dist/generators/server/support/relationship.js +5 -2
  104. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  105. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -0
  106. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +1 -0
  107. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  108. package/dist/generators/server/templates/pom.xml.ejs +7 -5
  109. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  110. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  111. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
  112. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  113. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -20
  114. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  115. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +23 -0
  116. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  117. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +43 -9
  118. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +59 -21
  119. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  120. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  121. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  122. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  123. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  124. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  125. package/dist/generators/spring-boot/command.js +117 -6
  126. package/dist/generators/spring-boot/files.js +0 -5
  127. package/dist/generators/spring-boot/generator.js +40 -7
  128. package/dist/generators/spring-boot/prompts.js +6 -70
  129. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +368 -576
  130. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  131. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  132. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  133. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  134. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  135. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  136. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -1
  137. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  138. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  139. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  140. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  141. package/dist/generators/vue/resources/package.json +15 -15
  142. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  143. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  144. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  145. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  146. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  147. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  148. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  149. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  150. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  151. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  152. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  153. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  154. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  155. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  156. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  157. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  158. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  159. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  160. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  161. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  162. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  163. package/dist/jdl/exporters/config.js +1 -0
  164. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  165. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  166. package/dist/jdl/jdl-importer.js +22 -20
  167. package/dist/jdl/jhipster/binary-options.js +12 -8
  168. package/dist/jdl/jhipster/json-entity.js +1 -1
  169. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  170. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  171. package/dist/jdl/models/jdl-binary-option.js +2 -2
  172. package/dist/jdl/models/jdl-deployment.js +11 -0
  173. package/dist/jdl/models/jdl-entity.js +1 -1
  174. package/dist/jdl/models/jdl-enum.js +1 -1
  175. package/dist/jdl/models/jdl-enums.js +0 -18
  176. package/dist/jdl/models/jdl-field.js +2 -2
  177. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  178. package/dist/jdl/models/jdl-object.js +23 -45
  179. package/dist/jdl/models/jdl-options.js +0 -18
  180. package/dist/jdl/models/jdl-relationships.js +8 -16
  181. package/dist/jdl/models/jdl-unary-option.js +1 -1
  182. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  183. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  184. package/dist/jdl/parsing/jdl-parser.js +14 -0
  185. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  186. package/dist/jdl/parsing/validator.js +16 -2
  187. package/dist/jdl/readers/json-reader.js +1 -1
  188. package/dist/jdl/utils/array-utils.js +6 -0
  189. package/dist/jdl/utils/set-utils.js +3 -2
  190. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  191. package/dist/testing/helpers.js +4 -0
  192. package/dist/types/generators/base/api.d.ts +5 -1
  193. package/dist/types/generators/base/generator.d.ts +10 -4
  194. package/dist/types/generators/base/priorities.d.ts +4 -0
  195. package/dist/types/generators/base/shared-data.d.ts +1 -1
  196. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  197. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  198. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  199. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  200. package/dist/types/generators/base-core/generator.d.ts +16 -1
  201. package/dist/types/generators/generator-constants.d.ts +1 -1
  202. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  203. package/dist/types/generators/java/support/doc.d.ts +1 -1
  204. package/dist/types/generators/java/support/index.d.ts +1 -1
  205. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  206. package/dist/types/generators/server/types.d.ts +5 -0
  207. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  208. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  209. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  210. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  211. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  212. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  213. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  214. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  215. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  216. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  217. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  218. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  219. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  220. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  221. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  222. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  223. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  224. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  225. package/dist/types/jdl/converters/types.d.ts +102 -14
  226. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  227. package/dist/types/jdl/exporters/config.d.ts +2 -1
  228. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  229. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  230. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  231. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  232. package/dist/types/jdl/exporters/types.d.ts +61 -0
  233. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  234. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  235. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  236. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  237. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  238. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  239. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  240. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  241. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  242. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  243. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  244. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  245. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  246. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  247. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  248. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  249. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  250. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  251. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  252. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  253. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  254. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  255. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  256. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  257. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  258. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  259. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  260. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  261. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  262. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  263. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  264. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  265. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  266. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  267. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  268. package/dist/types/testing/helpers.d.ts +13 -3
  269. package/package.json +24 -23
  270. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -3,14 +3,14 @@
3
3
  "dayjs": "1.11.11"
4
4
  },
5
5
  "devDependencies": {
6
- "@cypress/code-coverage": "3.12.37",
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.8.1",
9
+ "cypress": "13.10.0",
10
10
  "cypress-audit": "1.1.0",
11
- "eslint-plugin-cypress": "3.0.2",
11
+ "eslint-plugin-cypress": "3.3.0",
12
12
  "lighthouse": "12.0.0",
13
13
  "nyc": "15.1.0",
14
- "swagger-ui-dist": "5.17.2"
14
+ "swagger-ui-dist": "5.17.14"
15
15
  }
16
16
  }
@@ -136,6 +136,11 @@ export default class CommonGenerator extends BaseApplicationGenerator {
136
136
  // Public API method used by the getter and also by Blueprints
137
137
  get preparing() {
138
138
  return this.asPreparingTaskGroup({
139
+ checkSuffix({ application }) {
140
+ if (application.entitySuffix === application.dtoSuffix) {
141
+ throw new Error('Entities cannot be generated as the entity suffix and DTO suffix are equals!');
142
+ }
143
+ },
139
144
  setupConstants({ application }) {
140
145
  // Make constants available in templates
141
146
  application.MAIN_DIR = MAIN_DIR;
@@ -2,8 +2,8 @@
2
2
  "devDependencies": {
3
3
  "concurrently": "8.2.2",
4
4
  "husky": "9.0.11",
5
- "lint-staged": "15.2.2",
6
- "npm": "10.6.0",
5
+ "lint-staged": "15.2.5",
6
+ "npm": "10.8.1",
7
7
  "wait-on": "7.2.0"
8
8
  }
9
9
  }
@@ -52,7 +52,7 @@ describe('login modal', () => {
52
52
  cy.get(passwordLoginSelector).type('a-password');
53
53
  cy.get(submitLoginSelector).click();
54
54
  <%_ if (!clientFrameworkReact) { _%>
55
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
55
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
56
56
  <%_ } _%>
57
57
  // login page should stay open when login fails
58
58
  cy.get(titleLoginSelector).should('be.visible');
@@ -62,7 +62,7 @@ describe('login modal', () => {
62
62
  cy.get(usernameLoginSelector).type('a-login');
63
63
  cy.get(submitLoginSelector).click();
64
64
  <%_ if (!clientFrameworkReact) { _%>
65
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
65
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(<% if (authenticationTypeSession) { %>401<% } else { %>400<% } %>));
66
66
  cy.get(errorLoginSelector).should('be.visible');
67
67
  <%_ } else { _%>
68
68
  // login page should stay open when login fails
@@ -74,7 +74,7 @@ describe('login modal', () => {
74
74
  cy.get(usernameLoginSelector).type(username);
75
75
  cy.get(passwordLoginSelector).type('bad-password');
76
76
  cy.get(submitLoginSelector).click();
77
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(401));
77
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(401));
78
78
  cy.get(errorLoginSelector).should('be.visible');
79
79
  });
80
80
 
@@ -82,7 +82,7 @@ describe('login modal', () => {
82
82
  cy.get(usernameLoginSelector).type(username);
83
83
  cy.get(passwordLoginSelector).type(password);
84
84
  cy.get(submitLoginSelector).click();
85
- cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(200));
85
+ cy.wait('@authenticate').then(({ response }) => expect(response?.statusCode).to.equal(200));
86
86
  cy.hash().should('eq', '');
87
87
  });
88
88
  });
@@ -80,7 +80,7 @@ describe('/account/password', () => {
80
80
  cy.get(newPasswordSelector).type('jhipster');
81
81
  cy.get(confirmPasswordSelector).type('jhipster');
82
82
  cy.get(submitPasswordSelector).click();
83
- cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(400));
83
+ cy.wait('@passwordSave').then(({ response }) => expect(response?.statusCode).to.equal(400));
84
84
  });
85
85
 
86
86
  it("should be able to update password", () => {
@@ -88,6 +88,6 @@ describe('/account/password', () => {
88
88
  cy.get(newPasswordSelector).type(password);
89
89
  cy.get(confirmPasswordSelector).type(password);
90
90
  cy.get(submitPasswordSelector).click();
91
- cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(200));
91
+ cy.wait('@passwordSave').then(({ response }) => expect(response?.statusCode).to.equal(200));
92
92
  });
93
93
  });
@@ -128,6 +128,6 @@ describe('<%= registerPage %>', () => {
128
128
  cy.get(firstPasswordRegisterSelector).type('jondoe');
129
129
  cy.get(secondPasswordRegisterSelector).type('jondoe');
130
130
  cy.get(submitRegisterSelector).click();
131
- cy.wait('@registerSave').then(({ response }) => expect(response.statusCode).to.equal(201));
131
+ cy.wait('@registerSave').then(({ response }) => expect(response?.statusCode).to.equal(201));
132
132
  });
133
133
  });
@@ -54,6 +54,6 @@ describe('forgot your password', () => {
54
54
  it('should be able to init reset password', () => {
55
55
  cy.get(emailResetPasswordSelector).type('user@gmail.com');
56
56
  cy.get(submitInitResetPasswordSelector).click({ force: true });
57
- cy.wait('@initResetPassword').then(({ response }) => expect(response.statusCode).to.equal(200));
57
+ cy.wait('@initResetPassword').then(({ response }) => expect(response?.statusCode).to.equal(200));
58
58
  });
59
59
  });
@@ -146,7 +146,7 @@ describe('<%= entityClass %> e2e test', () => {
146
146
  cy.visit('/');
147
147
  cy.clickOnEntityMenuItem('<%= entityPage %>');
148
148
  cy.wait('@entitiesRequest').then(({ response }) => {
149
- if (response.body.length === 0) {
149
+ if (response?.body.length === 0) {
150
150
  cy.get(entityTableSelector).should('not.exist');
151
151
  } else {
152
152
  cy.get(entityTableSelector).should('exist');
@@ -171,7 +171,7 @@ describe('<%= entityClass %> e2e test', () => {
171
171
  cy.get(entityCreateSaveButtonSelector).should('exist');
172
172
  cy.get(entityCreateCancelButtonSelector).click();
173
173
  cy.wait('@entitiesRequest').then(({ response }) => {
174
- expect(response.statusCode).to.equal(200);
174
+ expect(response?.statusCode).to.equal(200);
175
175
  });
176
176
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
177
177
  });
@@ -232,7 +232,7 @@ describe('<%= entityClass %> e2e test', () => {
232
232
  cy.visit(<%= entityInstance %>PageUrl);
233
233
 
234
234
  cy.wait('@entitiesRequest').then(({ response }) => {
235
- if (response.body.length === 0) {
235
+ if (response?.body.length === 0) {
236
236
  this.skip();
237
237
  }
238
238
  });
@@ -244,7 +244,7 @@ describe('<%= entityClass %> e2e test', () => {
244
244
  cy.getEntityDetailsHeading('<%= entityInstance %>');
245
245
  cy.get(entityDetailsBackButtonSelector).click();
246
246
  cy.wait('@entitiesRequest').then(({ response }) => {
247
- expect(response.statusCode).to.equal(200);
247
+ expect(response?.statusCode).to.equal(200);
248
248
  });
249
249
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
250
250
  });
@@ -256,7 +256,7 @@ describe('<%= entityClass %> e2e test', () => {
256
256
  cy.get(entityCreateSaveButtonSelector).should('exist');
257
257
  cy.get(entityCreateCancelButtonSelector).click();
258
258
  cy.wait('@entitiesRequest').then(({ response }) => {
259
- expect(response.statusCode).to.equal(200);
259
+ expect(response?.statusCode).to.equal(200);
260
260
  });
261
261
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
262
262
  });
@@ -266,7 +266,7 @@ describe('<%= entityClass %> e2e test', () => {
266
266
  cy.getEntityCreateUpdateHeading('<%= entityClass %>');
267
267
  cy.get(entityCreateSaveButtonSelector).click();
268
268
  cy.wait('@entitiesRequest').then(({ response }) => {
269
- expect(response.statusCode).to.equal(200);
269
+ expect(response?.statusCode).to.equal(200);
270
270
  });
271
271
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
272
272
  });
@@ -284,10 +284,10 @@ describe('<%= entityClass %> e2e test', () => {
284
284
  cy.getEntityDeleteDialogHeading('<%= entityInstance %>').should('exist');
285
285
  cy.get(entityConfirmDeleteButtonSelector).click();
286
286
  cy.wait('@deleteEntityRequest').then(({ response }) => {
287
- expect(response.statusCode).to.equal(204);
287
+ expect(response?.statusCode).to.equal(204);
288
288
  });
289
289
  cy.wait('@entitiesRequest').then(({ response }) => {
290
- expect(response.statusCode).to.equal(200);
290
+ expect(response?.statusCode).to.equal(200);
291
291
  });
292
292
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
293
293
  <% if (cypressBootstrapEntities) { %>
@@ -351,11 +351,11 @@ describe('<%= entityClass %> e2e test', () => {
351
351
  cy.get(entityCreateSaveButtonSelector).click();
352
352
 
353
353
  cy.wait('@postEntityRequest').then(({ response }) => {
354
- expect(response.statusCode).to.equal(201);
354
+ expect(response?.statusCode).to.equal(201);
355
355
  <%= entityInstance %> = response.body;
356
356
  });
357
357
  cy.wait('@entitiesRequest').then(({ response }) => {
358
- expect(response.statusCode).to.equal(200);
358
+ expect(response?.statusCode).to.equal(200);
359
359
  });
360
360
  cy.url().should('match', <%= entityInstance %>PageUrlPattern);
361
361
  });
@@ -31,7 +31,7 @@ services:
31
31
  # remove the "127.0.0.1:" prefix
32
32
  ports:
33
33
  - 127.0.0.1:3306:3306
34
- command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp
34
+ command: mysqld --lower_case_table_names=1 --character_set_server=utf8mb4 --explicit_defaults_for_timestamp
35
35
  healthcheck:
36
36
  test: ["CMD", "mysql", "-e", "SHOW DATABASES;"]
37
37
  interval: 5s
@@ -29,7 +29,7 @@
29
29
  "oauth2DevicePollingInterval": 5,
30
30
  "enabled": true,
31
31
  "sslRequired": "external",
32
- "registrationAllowed": false,
32
+ "registrationAllowed": true,
33
33
  "registrationEmailAsUsername": false,
34
34
  "rememberMe": false,
35
35
  "verifyEmail": false,
@@ -463,6 +463,9 @@
463
463
  "requiredCredentials": [
464
464
  "password"
465
465
  ],
466
+ "defaultGroups": [
467
+ "/Users"
468
+ ],
466
469
  "otpPolicyType": "totp",
467
470
  "otpPolicyAlgorithm": "HmacSHA1",
468
471
  "otpPolicyInitialCounter": 0,
@@ -2362,6 +2365,14 @@
2362
2365
  "priority": 60,
2363
2366
  "userSetupAllowed": false,
2364
2367
  "autheticatorFlow": false
2368
+ },
2369
+ {
2370
+ "authenticator": "registration-terms-and-conditions",
2371
+ "authenticatorFlow": false,
2372
+ "requirement": "DISABLED",
2373
+ "priority": 70,
2374
+ "autheticatorFlow": false,
2375
+ "userSetupAllowed": false
2365
2376
  }
2366
2377
  ]
2367
2378
  },
@@ -2453,9 +2464,9 @@
2453
2464
  "config": {}
2454
2465
  },
2455
2466
  {
2456
- "alias": "terms_and_conditions",
2467
+ "alias": "TERMS_AND_CONDITIONS",
2457
2468
  "name": "Terms and Conditions",
2458
- "providerId": "terms_and_conditions",
2469
+ "providerId": "TERMS_AND_CONDITIONS",
2459
2470
  "enabled": false,
2460
2471
  "defaultAction": false,
2461
2472
  "priority": 20,
@@ -29,7 +29,7 @@
29
29
  "oauth2DevicePollingInterval": 5,
30
30
  "enabled": true,
31
31
  "sslRequired": "external",
32
- "registrationAllowed": false,
32
+ "registrationAllowed": true,
33
33
  "registrationEmailAsUsername": false,
34
34
  "rememberMe": false,
35
35
  "verifyEmail": false,
@@ -463,6 +463,9 @@
463
463
  "requiredCredentials": [
464
464
  "password"
465
465
  ],
466
+ "defaultGroups": [
467
+ "/Users"
468
+ ],
466
469
  "otpPolicyType": "totp",
467
470
  "otpPolicyAlgorithm": "HmacSHA1",
468
471
  "otpPolicyInitialCounter": 0,
@@ -2364,6 +2367,14 @@
2364
2367
  "priority": 60,
2365
2368
  "userSetupAllowed": false,
2366
2369
  "autheticatorFlow": false
2370
+ },
2371
+ {
2372
+ "authenticator": "registration-terms-and-conditions",
2373
+ "authenticatorFlow": false,
2374
+ "requirement": "DISABLED",
2375
+ "priority": 70,
2376
+ "autheticatorFlow": false,
2377
+ "userSetupAllowed": false
2367
2378
  }
2368
2379
  ]
2369
2380
  },
@@ -2455,9 +2466,9 @@
2455
2466
  "config": {}
2456
2467
  },
2457
2468
  {
2458
- "alias": "terms_and_conditions",
2469
+ "alias": "TERMS_AND_CONDITIONS",
2459
2470
  "name": "Terms and Conditions",
2460
- "providerId": "terms_and_conditions",
2471
+ "providerId": "TERMS_AND_CONDITIONS",
2461
2472
  "enabled": false,
2462
2473
  "defaultAction": false,
2463
2474
  "priority": 20,
@@ -186,14 +186,6 @@ export default class EntityGenerator extends BaseApplicationGenerator {
186
186
  askForFiltering: prompts.askForFiltering,
187
187
  askForReadOnly: prompts.askForReadOnly,
188
188
  askForPagination: prompts.askForPagination,
189
- });
190
- }
191
- get [BaseApplicationGenerator.POST_PREPARING]() {
192
- return this.delegateTasksToBlueprint(() => this.postPreparing);
193
- }
194
- // Public API method used by the getter and also by Blueprints
195
- get default() {
196
- return this.asDefaultTaskGroup({
197
189
  async composeEntities() {
198
190
  // We need to compose with others entities to update relationships.
199
191
  await this.composeWithJHipster(GENERATOR_ENTITIES, {
@@ -206,8 +198,8 @@ export default class EntityGenerator extends BaseApplicationGenerator {
206
198
  },
207
199
  });
208
200
  }
209
- get [BaseApplicationGenerator.DEFAULT]() {
210
- return this.delegateTasksToBlueprint(() => this.default);
201
+ get [BaseApplicationGenerator.POST_PREPARING]() {
202
+ return this.delegateTasksToBlueprint(() => this.postPreparing);
211
203
  }
212
204
  // Public API method used by the getter and also by Blueprints
213
205
  get end() {
@@ -22,19 +22,14 @@ import { isArray, lowerFirst, snakeCase, uniq, upperFirst } from 'lodash-es';
22
22
  import { reservedKeywords, databaseTypes, applicationTypes, entityOptions, fieldTypes, validations, clientFrameworkTypes, } from '../../jdl/jhipster/index.js';
23
23
  import { inputIsNumber, inputIsSignedDecimalNumber, inputIsSignedNumber } from './support/index.js';
24
24
  const { isReservedPaginationWords, isReservedFieldName, isReservedTableName } = reservedKeywords;
25
- const { CASSANDRA, SQL } = databaseTypes;
25
+ const { NO: NO_DATABASE, CASSANDRA, SQL } = databaseTypes;
26
26
  const { GATEWAY } = applicationTypes;
27
27
  const { FilteringTypes, MapperTypes, ServiceTypes, PaginationTypes } = entityOptions;
28
28
  const { ANGULAR, REACT } = clientFrameworkTypes;
29
- const { JPA_METAMODEL } = FilteringTypes;
30
- const NO_FILTERING = FilteringTypes.NO;
31
- const { INFINITE_SCROLL, PAGINATION } = PaginationTypes;
32
- const NO_PAGINATION = PaginationTypes.NO;
33
- const { SERVICE_IMPL, SERVICE_CLASS } = ServiceTypes;
34
- const NO_SERVICE = ServiceTypes.NO;
35
- const { MAPSTRUCT } = MapperTypes;
36
- const NO_MAPPER = MapperTypes.NO;
37
- const NO_DATABASE = databaseTypes.NO;
29
+ const { NO: NO_FILTERING, JPA_METAMODEL } = FilteringTypes;
30
+ const { NO: NO_PAGINATION, INFINITE_SCROLL, PAGINATION } = PaginationTypes;
31
+ const { NO: NO_SERVICE, SERVICE_IMPL, SERVICE_CLASS } = ServiceTypes;
32
+ const { NO: NO_MAPPER, MAPSTRUCT } = MapperTypes;
38
33
  const { CommonDBTypes, RelationalOnlyDBTypes, BlobTypes } = fieldTypes;
39
34
  const { BIG_DECIMAL, BOOLEAN, DOUBLE, DURATION, ENUM, FLOAT, INTEGER, INSTANT, LOCAL_DATE, LONG, STRING, UUID, ZONED_DATE_TIME } = CommonDBTypes;
40
35
  const { BYTES, BYTE_BUFFER } = RelationalOnlyDBTypes;
@@ -764,7 +759,7 @@ async function askForRelationship(...args) {
764
759
  }
765
760
  return true;
766
761
  },
767
- type: 'input',
762
+ type: 'confirm',
768
763
  name: 'bidirectional',
769
764
  message: 'Do you want to generate a bidirectional relationship',
770
765
  default: true,
@@ -0,0 +1,15 @@
1
+ # Gatling sub-generator
2
+
3
+ Generates load testing simulations for entities using [Gatling](https://gatling.io/).
4
+
5
+ ## Logging tips
6
+
7
+ ```
8
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
9
+ {
10
+ // Log all HTTP requests
11
+ //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE"));
12
+ // Log failed HTTP requests
13
+ //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG"));
14
+ }
15
+ ```
@@ -28,7 +28,6 @@ import static io.gatling.javaapi.http.HttpDsl.headerRegex;
28
28
  import static io.gatling.javaapi.http.HttpDsl.http;
29
29
  import static io.gatling.javaapi.http.HttpDsl.status;
30
30
 
31
- import ch.qos.logback.classic.LoggerContext;
32
31
  import java.time.Duration;
33
32
  import java.util.Map;
34
33
  import java.util.Optional;
@@ -36,21 +35,14 @@ import io.gatling.javaapi.core.ChainBuilder;
36
35
  import io.gatling.javaapi.core.ScenarioBuilder;
37
36
  import io.gatling.javaapi.core.Simulation;
38
37
  import io.gatling.javaapi.http.HttpProtocolBuilder;
39
- import org.slf4j.LoggerFactory;
40
38
 
41
39
  /**
42
40
  * Performance test for the <%= entityClass %> entity.
41
+ *
42
+ * @see <a href="https://github.com/jhipster/generator-jhipster/tree/v<%- jhipsterVersion %>/generators/gatling#logging-tips">Logging tips</a>
43
43
  */
44
44
  public class <%= entityClass %>GatlingTest extends Simulation {
45
45
 
46
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
47
- {
48
- // Log all HTTP requests
49
- //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE"));
50
- // Log failed HTTP requests
51
- //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG"));
52
- }
53
-
54
46
  String baseURL = Optional.ofNullable(System.getProperty("baseURL")).orElse("http://localhost:<%= serverPort %>");
55
47
 
56
48
  HttpProtocolBuilder httpConf = http
@@ -1,6 +1,22 @@
1
1
  import { GENERATOR_INIT } from '../generator-list.js';
2
2
  import { ADDITIONAL_SUB_GENERATORS, ALL_GENERATORS, ALL_PRIORITIES, CLI_OPTION, DYNAMIC, GENERATE_SNAPSHOTS, JS, LINK_JHIPSTER_DEPENDENCY, LOCAL_BLUEPRINT_OPTION, SUB_GENERATORS, } from './constants.js';
3
3
  const command = {
4
+ configs: {
5
+ githubRepository: {
6
+ cli: {
7
+ description: 'Github Repository',
8
+ type: String,
9
+ },
10
+ scope: 'storage',
11
+ },
12
+ githubWorkflows: {
13
+ cli: {
14
+ description: 'Generate github workflows',
15
+ type: Boolean,
16
+ },
17
+ scope: 'storage',
18
+ },
19
+ },
4
20
  options: {
5
21
  [GENERATE_SNAPSHOTS]: {
6
22
  description: 'Generate test snapshots',
@@ -35,6 +35,14 @@ export const files = {
35
35
  '.blueprint/generate-sample/index.mjs',
36
36
  ],
37
37
  },
38
+ {
39
+ condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && ctx.githubWorkflows,
40
+ templates: [
41
+ '.blueprint/github-build-matrix/build-matrix.mjs',
42
+ '.blueprint/github-build-matrix/generator.mjs',
43
+ '.blueprint/github-build-matrix/index.mjs',
44
+ ],
45
+ },
38
46
  {
39
47
  condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && !ctx.sampleWritten,
40
48
  templates: ['.blueprint/generate-sample/templates/samples/sample.jdl'],
@@ -25,7 +25,6 @@ import * as GENERATOR_LIST from '../generator-list.js';
25
25
  import { files, generatorFiles } from './files.js';
26
26
  import { packageJson } from '../../lib/index.js';
27
27
  import { SKIP_COMMIT_HOOK } from '../init/constants.js';
28
- import command from './command.js';
29
28
  import { BLUEPRINT_API_VERSION, NODE_VERSION } from '../generator-constants.js';
30
29
  const { GENERATOR_PROJECT_NAME, GENERATOR_INIT } = GENERATOR_LIST;
31
30
  export default class extends BaseGenerator {
@@ -38,9 +37,9 @@ export default class extends BaseGenerator {
38
37
  }
39
38
  }
40
39
  get initializing() {
41
- return {
42
- loadOptions() {
43
- this.parseJHipsterOptions(command.options);
40
+ return this.asInitializingTaskGroup({
41
+ async loadOptions() {
42
+ await this.parseCurrentJHipsterCommand();
44
43
  if (this[ALL_GENERATORS]) {
45
44
  this.config.set(allGeneratorsConfig());
46
45
  }
@@ -48,7 +47,7 @@ export default class extends BaseGenerator {
48
47
  this.config.defaults(defaultConfig({ config: this.jhipsterConfig }));
49
48
  }
50
49
  },
51
- };
50
+ });
52
51
  }
53
52
  get [BaseGenerator.INITIALIZING]() {
54
53
  return this.delegateTasksToBlueprint(() => this.initializing);
@@ -123,14 +122,15 @@ export default class extends BaseGenerator {
123
122
  return this.delegateTasksToBlueprint(() => this.composing);
124
123
  }
125
124
  get loading() {
126
- return {
127
- createContext() {
125
+ return this.asLoadingTaskGroup({
126
+ async createContext() {
128
127
  this.application = { ...defaultConfig(), ...this.config.getAll() };
128
+ await this.loadCurrentJHipsterCommandConfig(this.application);
129
129
  },
130
130
  async load() {
131
131
  this.application.packagejs = packageJson;
132
132
  },
133
- };
133
+ });
134
134
  }
135
135
  get [BaseGenerator.LOADING]() {
136
136
  return this.delegateTasksToBlueprint(() => this.loading);
@@ -152,6 +152,13 @@ export default class extends BaseGenerator {
152
152
  preparePath() {
153
153
  this.application.blueprintsPath = this.application[LOCAL_BLUEPRINT_OPTION] ? '.blueprint/' : 'generators/';
154
154
  },
155
+ prepare() {
156
+ const { cli, cliName, baseName } = this.application;
157
+ this.application.githubRepository = this.jhipsterConfig.githubRepository ?? `jhipster/generator-jhipster-${baseName}`;
158
+ if (cli) {
159
+ this.application.cliName = cliName ?? `jhipster-${baseName}`;
160
+ }
161
+ },
155
162
  };
156
163
  }
157
164
  get [BaseGenerator.PREPARING]() {
@@ -241,7 +248,7 @@ export default class extends BaseGenerator {
241
248
  * yeoman-test version is loaded through generator-jhipster peer dependency.
242
249
  * generator-jhipster uses a fixed version, blueprints must set a compatible range.
243
250
  */
244
- 'yeoman-test': '>=8.0.0-rc.1',
251
+ 'yeoman-test': '>=8.2.0',
245
252
  },
246
253
  engines: {
247
254
  node: packagejs.engines.node,
@@ -251,7 +258,7 @@ export default class extends BaseGenerator {
251
258
  addCliToPackageJson() {
252
259
  if (!this.jhipsterConfig.cli || this.jhipsterConfig[LOCAL_BLUEPRINT_OPTION])
253
260
  return;
254
- const { baseName, cliName = `jhipster-${baseName}` } = this.application;
261
+ const { cliName } = this.application;
255
262
  this.packageJson.merge({
256
263
  bin: {
257
264
  [cliName]: 'cli/cli.cjs',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "dependencies": {
3
- "vitest": "1.5.2"
3
+ "vitest": "1.6.0"
4
4
  }
5
5
  }
@@ -22,6 +22,12 @@ const defaultCommands = {
22
22
  desc: 'Generate a test sample',
23
23
  blueprint: '@jhipster/jhipster-dev',
24
24
  },
25
+ <%_ if (githubWorkflows) { _%>
26
+ 'github-build-matrix': {
27
+ desc: 'Build a matrix of jobs for github actions',
28
+ blueprint: '@jhipster/jhipster-dev',
29
+ },
30
+ <%_ } _%>
25
31
  };
26
32
 
27
33
  export default defaultCommands;
@@ -16,7 +16,9 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
+ import { readdir } from 'node:fs/promises';
19
20
  import { GENERATOR_APP } from 'generator-jhipster/generators';
21
+
20
22
  /**
21
23
  * @type {import('generator-jhipster').JHipsterCommandDefinition}
22
24
  */
@@ -26,6 +28,24 @@ const command = {
26
28
  type: String,
27
29
  },
28
30
  },
31
+ configs: {
32
+ sampleName: {
33
+ prompt: gen => ({
34
+ when: !gen.all,
35
+ type: 'list',
36
+ message: 'which sample do you want to generate?',
37
+ choices: async () => readdir(gen.templatePath('samples')),
38
+ }),
39
+ scope: 'generator',
40
+ },
41
+ all: {
42
+ description: 'Generate every sample in a workspace',
43
+ cli: {
44
+ type: Boolean,
45
+ },
46
+ scope: 'generator',
47
+ },
48
+ },
29
49
  options: {},
30
50
  import: [GENERATOR_APP],
31
51
  };
@@ -1,10 +1,10 @@
1
1
  import { readdir } from 'node:fs/promises';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import BaseGenerator from 'generator-jhipster/generators/base';
4
- import command from './command.mjs';
5
4
 
6
5
  export default class extends BaseGenerator {
7
6
  sampleName;
7
+ all;
8
8
 
9
9
  constructor(args, opts, features) {
10
10
  super(args, opts, { ...features, jhipsterBootstrap: false });
@@ -26,15 +26,7 @@ export default class extends BaseGenerator {
26
26
  get [BaseGenerator.PROMPTING]() {
27
27
  return this.asPromptingTaskGroup({
28
28
  async askForSample() {
29
- if (!this.sampleName) {
30
- const answers = await this.prompt({
31
- type: 'list',
32
- name: 'sampleName',
33
- message: 'which sample do you want to generate?',
34
- choices: async () => readdir(this.templatePath('samples')),
35
- })
36
- this.sampleName = answers.sampleName;
37
- }
29
+ await this.promptCurrentJHipsterCommand();
38
30
  },
39
31
  });
40
32
  }
@@ -42,7 +34,11 @@ export default class extends BaseGenerator {
42
34
  get [BaseGenerator.WRITING]() {
43
35
  return this.asWritingTaskGroup({
44
36
  async copySample() {
45
- this.copyTemplate(`samples/${this.sampleName}`, this.sampleName, { noGlob: true });
37
+ if (this.all) {
38
+ this.copyTemplate('samples/*.jdl', '');
39
+ } else {
40
+ this.copyTemplate(`samples/${this.sampleName}`, this.sampleName, { noGlob: true });
41
+ }
46
42
  },
47
43
  });
48
44
  }
@@ -54,13 +50,13 @@ export default class extends BaseGenerator {
54
50
  const projectVersion = `${packageJson.version}-git`;
55
51
 
56
52
  await this.composeWithJHipster('jdl', {
57
- generatorArgs: [this.sampleName],
53
+ generatorArgs: this.all ? await readdir(this.templatePath('samples')) : [this.sampleName],
58
54
  generatorOptions: {
59
55
  skipJhipsterDependencies: true,
60
56
  insight: false,
61
57
  skipChecks: true,
62
- skipInstall: true,
63
58
  projectVersion,
59
+ ...(this.all ? { workspaces: true, monorepository: true } : { skipInstall: true }),
64
60
  },
65
61
  });
66
62
  },