generator-jhipster 8.7.1 → 8.7.3

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 (300) hide show
  1. package/README.md +3 -3
  2. package/dist/cli/commands.d.mts +89 -89
  3. package/dist/cli/environment-builder.d.mts +7 -6
  4. package/dist/cli/environment-builder.mjs +5 -3
  5. package/dist/cli/jhipster-command.d.mts +2 -2
  6. package/dist/cli/jhipster-command.mjs +13 -4
  7. package/dist/cli/program.d.mts +53 -36
  8. package/dist/cli/program.mjs +41 -32
  9. package/dist/cli/utils.d.mts +2 -3
  10. package/dist/cli/utils.mjs +11 -21
  11. package/dist/generators/angular/generator.js +2 -2
  12. package/dist/generators/angular/resources/package.json +13 -13
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +2 -2
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +2 -2
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +2 -2
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +2 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.ts.ejs +2 -2
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +2 -2
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.ts.ejs +2 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +2 -2
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.ts.ejs +2 -2
  22. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +2 -2
  23. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.ts.ejs +2 -2
  24. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +2 -2
  25. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.service.ts.ejs +2 -2
  26. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +2 -2
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +2 -2
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway-routes.service.ts.ejs +2 -2
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.ts.ejs +1 -1
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.model.ts.ejs +1 -3
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +2 -2
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.ts.ejs +3 -3
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +1 -1
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +2 -2
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.model.ts.ejs +1 -6
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +1 -1
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.ts.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +5 -5
  44. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.ts.ejs +3 -3
  45. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +2 -2
  46. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +4 -4
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.ts.ejs +7 -7
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.ts.ejs +3 -3
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-session.service.ts.ejs +2 -2
  50. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/csrf.service.ts.ejs +1 -1
  51. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/state-storage.service.ts.ejs +3 -3
  52. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/notification.interceptor.ts.ejs +1 -1
  53. package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +5 -5
  54. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +2 -2
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +4 -4
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +3 -3
  58. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +7 -7
  59. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +7 -7
  60. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  61. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/profile.service.ts.ejs +3 -3
  62. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -3
  63. package/dist/generators/angular/templates/src/main/webapp/app/login/login.service.ts.ejs +4 -4
  64. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.ts.ejs +3 -3
  65. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.ts.ejs +1 -1
  66. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +2 -2
  67. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translate.directive.ts.ejs +2 -2
  68. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +3 -3
  69. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +1 -1
  70. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +1 -1
  71. package/dist/generators/base/api.d.ts +10 -4
  72. package/dist/generators/base/generator.d.ts +4 -0
  73. package/dist/generators/base/generator.js +10 -1
  74. package/dist/generators/base/shared-data.js +2 -0
  75. package/dist/generators/base/support/faker.d.ts +1 -1
  76. package/dist/generators/base/support/faker.js +1 -1
  77. package/dist/generators/base/support/timestamp.js +10 -2
  78. package/dist/generators/base-application/support/prepare-entity.js +6 -1
  79. package/dist/generators/base-application/support/prepare-field.js +40 -16
  80. package/dist/generators/base-application/support/prepare-relationship.d.ts +1 -1
  81. package/dist/generators/base-application/support/task-type-inference.d.ts +18 -18
  82. package/dist/generators/base-application/types.d.ts +4 -0
  83. package/dist/generators/base-core/generator.d.ts +7 -4
  84. package/dist/generators/base-core/generator.js +31 -35
  85. package/dist/generators/base-workspaces/generator.d.ts +34 -1
  86. package/dist/generators/base-workspaces/generator.js +1 -1
  87. package/dist/generators/base-workspaces/internal/docker-base.js +1 -3
  88. package/dist/generators/bootstrap/support/eslint-transform.js +2 -2
  89. package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -2
  90. package/dist/generators/bootstrap/support/prettier-support.js +2 -2
  91. package/dist/generators/bootstrap-application-base/generator.d.ts +2 -2
  92. package/dist/generators/bootstrap-application-base/generator.js +19 -5
  93. package/dist/generators/bootstrap-application-base/utils.d.ts +3 -3
  94. package/dist/generators/bootstrap-application-base/utils.js +9 -3
  95. package/dist/generators/bootstrap-workspaces/command.d.ts +12 -2
  96. package/dist/generators/bootstrap-workspaces/command.js +5 -3
  97. package/dist/generators/bootstrap-workspaces/generator.d.ts +8 -2
  98. package/dist/generators/bootstrap-workspaces/generator.js +0 -2
  99. package/dist/generators/bootstrap-workspaces/index.d.ts +1 -0
  100. package/dist/generators/bootstrap-workspaces/index.js +1 -0
  101. package/dist/generators/client/command.d.ts +22 -0
  102. package/dist/generators/client/command.js +22 -0
  103. package/dist/generators/client/files-common.js +1 -1
  104. package/dist/generators/client/generator.js +4 -5
  105. package/dist/generators/client/prompts.js +10 -9
  106. package/dist/generators/client/resources/package.json +3 -3
  107. package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +16 -5
  108. package/dist/generators/common/generator.js +2 -2
  109. package/dist/generators/common/resources/package.json +1 -1
  110. package/dist/generators/common/templates/sonar-project.properties.ejs +13 -7
  111. package/dist/generators/cypress/files.js +6 -0
  112. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +2 -2
  113. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +39 -0
  114. package/dist/generators/docker/generator.d.ts +1 -1
  115. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
  116. package/dist/generators/docker-compose/command.js +9 -1
  117. package/dist/generators/docker-compose/generator.d.ts +11 -53
  118. package/dist/generators/docker-compose/generator.js +24 -23
  119. package/dist/generators/generate-blueprint/command.d.ts +97 -20
  120. package/dist/generators/generate-blueprint/command.js +28 -0
  121. package/dist/generators/generate-blueprint/constants.d.ts +2 -2
  122. package/dist/generators/generate-blueprint/files.d.ts +1 -42
  123. package/dist/generators/generate-blueprint/files.js +27 -29
  124. package/dist/generators/generate-blueprint/generator.d.ts +5 -2
  125. package/dist/generators/generate-blueprint/generator.js +78 -22
  126. package/dist/generators/generate-blueprint/resources/package.json +3 -3
  127. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +6 -8
  128. package/dist/generators/generate-blueprint/templates/README.md.ejs +12 -2
  129. package/dist/generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs +2 -0
  130. package/dist/generators/generate-blueprint/templates/cli/cli.cjs.ejs +2 -1
  131. package/dist/generators/generate-blueprint/templates/cli/commands.cjs.ejs +1 -1
  132. package/dist/generators/generate-blueprint/templates/eslint.config.js.jhi.blueprint.ejs +3 -2
  133. package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +8 -12
  134. package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +8 -11
  135. package/dist/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +2 -2
  136. package/dist/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +2 -4
  137. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +0 -1
  138. package/dist/generators/generator-constants.d.ts +2 -2
  139. package/dist/generators/generator-constants.js +3 -3
  140. package/dist/generators/git/command.d.ts +10 -0
  141. package/dist/generators/git/command.js +10 -0
  142. package/dist/generators/git/generator.d.ts +5 -4
  143. package/dist/generators/git/generator.js +6 -4
  144. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +16 -10
  145. package/dist/generators/gradle/internal/needles.d.ts +3 -1
  146. package/dist/generators/gradle/internal/needles.js +10 -5
  147. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  148. package/dist/generators/gradle/types.d.ts +3 -2
  149. package/dist/generators/init/command.d.ts +4 -20
  150. package/dist/generators/init/command.js +1 -1
  151. package/dist/generators/init/resources/.node-version +1 -1
  152. package/dist/generators/java/command.d.ts +3 -5
  153. package/dist/generators/java/command.js +1 -20
  154. package/dist/generators/java/generators/bootstrap/command.d.ts +7 -0
  155. package/dist/generators/java/generators/bootstrap/command.js +7 -0
  156. package/dist/generators/java/generators/build-tool/generator.js +37 -13
  157. package/dist/generators/java/generators/graalvm/command.d.ts +5 -0
  158. package/dist/generators/java/generators/graalvm/command.js +5 -0
  159. package/dist/generators/java/generators/graalvm/generator.d.ts +9 -0
  160. package/dist/generators/java/generators/graalvm/generator.js +222 -0
  161. package/dist/generators/java/generators/graalvm/index.d.ts +20 -0
  162. package/dist/generators/java/generators/graalvm/index.js +20 -0
  163. package/dist/generators/java/generators/graalvm/internal/maven-definition.d.ts +8 -0
  164. package/dist/generators/java/generators/graalvm/internal/maven-definition.js +130 -0
  165. package/dist/generators/java/generators/graalvm/resources/build.gradle +1 -0
  166. package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +5 -0
  167. package/dist/generators/java/generators/graalvm/templates/README.md.jhi.native.ejs +53 -0
  168. package/dist/generators/java/generators/graalvm/templates/gradle/native.gradle.ejs +44 -0
  169. package/dist/generators/java/generators/graalvm/templates/src/main/java/_package_/config/NativeConfiguration.java.ejs +14 -0
  170. package/dist/generators/java/generators/node/generator.d.ts +6 -18
  171. package/dist/generators/java/generators/node/generator.js +31 -0
  172. package/dist/generators/java/generators/openapi-generator/generator.js +2 -2
  173. package/dist/generators/java/support/util.d.ts +1 -1
  174. package/dist/generators/java/types.d.ts +4 -1
  175. package/dist/generators/javascript/generators/bootstrap/command.d.ts +21 -20
  176. package/dist/generators/javascript/generators/bootstrap/generator.d.ts +1 -2
  177. package/dist/generators/javascript/generators/bootstrap/generator.js +9 -5
  178. package/dist/generators/javascript/types.d.ts +9 -2
  179. package/dist/generators/kubernetes/command.d.ts +12 -0
  180. package/dist/generators/kubernetes/command.js +12 -0
  181. package/dist/generators/kubernetes/index.d.ts +1 -0
  182. package/dist/generators/kubernetes/index.js +1 -0
  183. package/dist/generators/kubernetes-helm/index.d.ts +1 -0
  184. package/dist/generators/kubernetes-helm/index.js +1 -0
  185. package/dist/generators/kubernetes-knative/generator.d.ts +1 -1
  186. package/dist/generators/kubernetes-knative/index.d.ts +1 -0
  187. package/dist/generators/kubernetes-knative/index.js +1 -0
  188. package/dist/generators/languages/entity-files.d.ts +3 -2
  189. package/dist/generators/languages/entity-files.js +0 -1
  190. package/dist/generators/languages/generator.d.ts +1 -0
  191. package/dist/generators/languages/generator.js +1 -0
  192. package/dist/generators/liquibase/files.js +8 -0
  193. package/dist/generators/liquibase/generator.d.ts +1 -1
  194. package/dist/generators/liquibase/generator.js +15 -0
  195. package/dist/generators/liquibase/templates/src/main/resources/META-INF/native-image/liquibase/reflect-config.json +145 -0
  196. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/add_relationship_constraints.ejs +81 -0
  197. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +2 -62
  198. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +3 -60
  199. package/dist/generators/maven/generators/frontend-plugin/generator.js +10 -5
  200. package/dist/generators/maven/types.d.ts +3 -6
  201. package/dist/generators/project-name/command.d.ts +25 -20
  202. package/dist/generators/project-name/command.js +20 -4
  203. package/dist/generators/project-name/generator.d.ts +3 -12
  204. package/dist/generators/project-name/generator.js +6 -38
  205. package/dist/generators/react/generator.d.ts +1 -1
  206. package/dist/generators/react/generator.js +15 -2
  207. package/dist/generators/react/resources/package.json +26 -25
  208. package/dist/generators/react/templates/package.json.ejs +0 -3
  209. package/dist/generators/server/generator.d.ts +1 -7
  210. package/dist/generators/server/generator.js +22 -50
  211. package/dist/generators/server/resources/Dockerfile +12 -12
  212. package/dist/generators/server/resources/gradle/libs.versions.toml +10 -7
  213. package/dist/generators/server/resources/pom.xml +11 -11
  214. package/dist/generators/server/types.d.ts +8 -0
  215. package/dist/generators/spring-boot/cleanup.js +2 -2
  216. package/dist/generators/spring-boot/command.d.ts +19 -0
  217. package/dist/generators/spring-boot/command.js +19 -0
  218. package/dist/generators/spring-boot/generator.d.ts +2 -2
  219. package/dist/generators/spring-boot/generator.js +5 -9
  220. package/dist/generators/spring-boot/prompts.js +12 -12
  221. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +107 -106
  222. package/dist/generators/spring-boot/templates/README.md.jhi.spring-boot.ejs +22 -16
  223. package/dist/generators/spring-boot/templates/gradle/profile_dev.gradle.ejs +2 -46
  224. package/dist/generators/spring-boot/templates/gradle/profile_prod.gradle.ejs +1 -47
  225. package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +4 -1
  226. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +29 -6
  227. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +32 -6
  228. package/dist/generators/spring-boot/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +13 -8
  229. package/dist/generators/spring-boot/templates/src/main/java/_package_/domain/User.java.ejs +2 -3
  230. package/dist/generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs +8 -3
  231. package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +4 -2
  232. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +8 -7
  233. package/dist/generators/spring-cache/generator.d.ts +2 -1
  234. package/dist/generators/spring-cache/generator.js +22 -0
  235. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  236. package/dist/generators/spring-cloud/generators/gateway/generator.js +2 -2
  237. package/dist/generators/spring-data-couchbase/generator.js +2 -2
  238. package/dist/generators/spring-data-mongodb/generator.d.ts +1 -1
  239. package/dist/generators/spring-data-relational/files.d.ts +1 -0
  240. package/dist/generators/spring-data-relational/files.js +6 -0
  241. package/dist/generators/spring-data-relational/generator.d.ts +2 -1
  242. package/dist/generators/spring-data-relational/generator.js +63 -2
  243. package/dist/generators/spring-data-relational/internal/dependencies.d.ts +87 -7
  244. package/dist/generators/spring-data-relational/internal/dependencies.js +30 -18
  245. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_persistable.ejs +6 -0
  246. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_reactive.ejs +1 -2
  247. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +8 -3
  248. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/JacksonNativeConfiguration.java.ejs +98 -0
  249. package/dist/generators/vue/files-vue.js +4 -1
  250. package/dist/generators/vue/generator.d.ts +1 -1
  251. package/dist/generators/vue/generator.js +84 -3
  252. package/dist/generators/vue/resources/package.json +21 -20
  253. package/dist/generators/vue/support/update-languages.js +1 -1
  254. package/dist/generators/vue/templates/module-federation.config.cjs.ejs +55 -0
  255. package/dist/generators/vue/templates/package.json.ejs +11 -62
  256. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +1 -1
  257. package/dist/generators/vue/templates/vite.config.mts.ejs +15 -21
  258. package/dist/generators/workspaces/generator.d.ts +20 -9
  259. package/dist/generators/workspaces/generator.js +3 -3
  260. package/dist/lib/application/field-types.d.ts +2 -1
  261. package/dist/lib/command/converter.d.ts +6 -2
  262. package/dist/lib/command/converter.js +4 -1
  263. package/dist/lib/command/load.js +1 -0
  264. package/dist/lib/command/lookup-commands-configs.js +9 -12
  265. package/dist/lib/command/support/merge-union.d.ts +17 -6
  266. package/dist/lib/command/types.d.ts +38 -11
  267. package/dist/lib/eslint/index.d.ts +6 -14
  268. package/dist/lib/eslint/index.js +1 -2
  269. package/dist/lib/index.d.ts +1 -0
  270. package/dist/lib/index.js +7 -3
  271. package/dist/lib/jdl/core/linters/rules.d.ts +1 -3
  272. package/dist/lib/jdl/core/parsing/validator.js +2 -2
  273. package/dist/lib/jhipster/default-application-options.d.ts +83 -15
  274. package/dist/lib/jhipster/default-application-options.js +28 -28
  275. package/dist/lib/testing/get-generator.d.ts +1 -0
  276. package/dist/lib/testing/get-generator.js +6 -2
  277. package/dist/lib/testing/github-group.d.ts +6 -0
  278. package/dist/lib/testing/github-group.js +56 -0
  279. package/dist/lib/testing/github-matrix.d.ts +38 -0
  280. package/dist/lib/testing/github-matrix.js +72 -0
  281. package/dist/lib/testing/github.d.ts +1 -0
  282. package/dist/lib/testing/github.js +6 -2
  283. package/dist/lib/testing/helpers.d.ts +41 -3
  284. package/dist/lib/testing/helpers.js +74 -12
  285. package/dist/lib/testing/index.d.ts +2 -0
  286. package/dist/lib/testing/index.js +2 -0
  287. package/dist/lib/testing/support/matcher.d.ts +2 -2
  288. package/dist/lib/testing/support/matcher.js +3 -3
  289. package/dist/lib/types/application/application.d.ts +6 -1
  290. package/dist/lib/types/application/entity.d.ts +3 -1
  291. package/dist/lib/types/application/field.d.ts +16 -4
  292. package/dist/lib/types/application/options.d.ts +4 -0
  293. package/dist/lib/types/application/relationship.d.ts +1 -0
  294. package/dist/lib/types/application/yo-rc.d.ts +4 -0
  295. package/dist/lib/types/base/entity.d.ts +1 -0
  296. package/dist/lib/utils/logger.d.ts +1 -1
  297. package/dist/lib/utils/yo-rc.d.ts +27 -3
  298. package/package.json +33 -31
  299. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +0 -6
  300. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -45
package/README.md CHANGED
@@ -18,9 +18,9 @@ We are honored by any contributions you may have small or large. Please refer to
18
18
 
19
19
  The following Java and Node combinations are tested and verified by GitHub Actions:
20
20
 
21
- | Java | Node | Status |
22
- | -------- | ----- | ------ |
23
- | 17/21/22 | 18/20 | ✅ |
21
+ | Java | Node | Status |
22
+ | -------- | -------- | ------ |
23
+ | 17/21/23 | 18/20/22 | ✅ |
24
24
 
25
25
  ## Sponsors
26
26
 
@@ -1,125 +1,125 @@
1
- export default defaultCommands;
2
1
  declare const defaultCommands: {
3
- add: {
4
- desc: string;
5
- removed: string;
2
+ readonly add: {
3
+ readonly desc: "Add a feature to current project";
4
+ readonly removed: string;
6
5
  };
7
- app: {
8
- desc: string;
6
+ readonly app: {
7
+ readonly desc: "[Default] Create a new JHipster application based on the selected options";
9
8
  };
10
- aws: {
11
- desc: string;
12
- removed: string;
9
+ readonly aws: {
10
+ readonly desc: "Deploy the current application to Amazon Web Services";
11
+ readonly removed: string;
13
12
  };
14
- 'azure-app-service': {
15
- desc: string;
16
- removed: string;
13
+ readonly 'azure-app-service': {
14
+ readonly desc: "Deploy the current application to Azure App Service";
15
+ readonly removed: string;
17
16
  };
18
- 'azure-spring-cloud': {
19
- desc: string;
20
- removed: string;
17
+ readonly 'azure-spring-cloud': {
18
+ readonly desc: "Deploy the current application to Azure Spring Cloud";
19
+ readonly removed: string;
21
20
  };
22
- 'ci-cd': {
23
- desc: string;
21
+ readonly 'ci-cd': {
22
+ readonly desc: "Create pipeline scripts for popular Continuous Integration/Continuous Deployment tools";
24
23
  };
25
- cloudfoundry: {
26
- desc: string;
27
- removed: string;
24
+ readonly cloudfoundry: {
25
+ readonly desc: "Generate a `deploy/cloudfoundry` folder with a specific manifest.yml to deploy to Cloud Foundry";
26
+ readonly removed: string;
28
27
  };
29
- 'docker-compose': {
30
- desc: string;
28
+ readonly 'docker-compose': {
29
+ readonly desc: "Create all required Docker deployment configuration for the selected applications";
31
30
  };
32
- download: {
33
- desc: string;
34
- cliOnly: boolean;
35
- argument: string[];
31
+ readonly download: {
32
+ readonly desc: "Download jdl file from template repository";
33
+ readonly cliOnly: true;
34
+ readonly argument: ["<jdlFiles...>"];
36
35
  };
37
- entity: {
38
- desc: string;
36
+ readonly entity: {
37
+ readonly desc: "Create a new JHipster entity: JPA entity, Spring server-side components and Angular client-side components";
39
38
  };
40
- entities: {
41
- desc: string;
39
+ readonly entities: {
40
+ readonly desc: "Regenerate entities";
42
41
  };
43
- 'export-jdl': {
44
- desc: string;
42
+ readonly 'export-jdl': {
43
+ readonly desc: "Create a JDL file from the existing entities";
45
44
  };
46
- gae: {
47
- desc: string;
48
- removed: string;
45
+ readonly gae: {
46
+ readonly desc: "Deploy the current application to Google App Engine";
47
+ readonly removed: string;
49
48
  };
50
- 'generate-blueprint': {
51
- desc: string;
49
+ readonly 'generate-blueprint': {
50
+ readonly desc: "Generate a blueprint";
52
51
  };
53
- gradle: {
54
- desc: string;
52
+ readonly gradle: {
53
+ readonly desc: "Create Gradle project (alpha)";
55
54
  };
56
- heroku: {
57
- desc: string;
55
+ readonly heroku: {
56
+ readonly desc: "Deploy the current application to Heroku";
58
57
  };
59
- info: {
60
- desc: string;
58
+ readonly info: {
59
+ readonly desc: "Display information about your current project and system";
61
60
  };
62
- init: {
63
- desc: string;
61
+ readonly init: {
62
+ readonly desc: "Init project (alpha)";
64
63
  };
65
- java: {
66
- desc: string;
64
+ readonly java: {
65
+ readonly desc: "Run java generator (alpha)";
67
66
  };
68
- jdl: {
69
- alias: string;
70
- desc: string;
71
- help: string;
67
+ readonly jdl: {
68
+ readonly alias: "import-jdl";
69
+ readonly desc: "Create entities from the JDL file/URL/content passed in argument.\n Use the '--interactive' flag to generate multiple applications in series.";
70
+ readonly help: "\n Arguments:\n jdlFiles # The JDL file names or URL Type: String[] Required: true if --inline is not set\n\n Example:\n jhipster jdl myfile.jdl\n jhipster jdl myfile1.jdl myfile2.jdl\n jhipster jdl https://gist.githubusercontent.com/user/path/app.jdl\n jhipster jdl jdl-name-from-jdl-samples-repo.jdl (just pass any file name from https://github.com/jhipster/jdl-samples)\n jhipster jdl --inline \"application { config { baseName jhapp, testFrameworks [cypress] }}\"\n jhipster jdl --inline \\\n \"application {\n config {\n baseName jhapp,\n testFrameworks [cypress]\n }\n }\"\n ";
72
71
  };
73
- kubernetes: {
74
- alias: string;
75
- desc: string;
72
+ readonly kubernetes: {
73
+ readonly alias: "k8s";
74
+ readonly desc: "Deploy the current application to Kubernetes";
76
75
  };
77
- 'kubernetes-helm': {
78
- alias: string;
79
- desc: string;
76
+ readonly 'kubernetes-helm': {
77
+ readonly alias: "helm";
78
+ readonly desc: "Deploy the current application to Kubernetes using Helm package manager";
80
79
  };
81
- 'kubernetes-knative': {
82
- alias: string;
83
- desc: string;
80
+ readonly 'kubernetes-knative': {
81
+ readonly alias: "knative";
82
+ readonly desc: "Deploy the current application to Kubernetes using knative constructs";
84
83
  };
85
- languages: {
86
- desc: string;
84
+ readonly languages: {
85
+ readonly desc: "Select languages from a list of available languages. The i18n files will be copied to the /webapp/i18n folder";
87
86
  };
88
- maven: {
89
- desc: string;
87
+ readonly maven: {
88
+ readonly desc: "Create Maven project (alpha)";
90
89
  };
91
- openshift: {
92
- desc: string;
93
- removed: string;
90
+ readonly openshift: {
91
+ readonly desc: "Deploy the current application to OpenShift";
92
+ readonly removed: string;
94
93
  };
95
- page: {
96
- desc: string;
97
- removed: string;
94
+ readonly page: {
95
+ readonly desc: "Create a new page. (Supports vue clients)";
96
+ readonly removed: string;
98
97
  };
99
- 'project-name': {
100
- desc: string;
98
+ readonly 'project-name': {
99
+ readonly desc: "Configure project name (alpha)";
101
100
  };
102
- run: {
103
- desc: string;
104
- argument: string[];
101
+ readonly run: {
102
+ readonly desc: "Run a module or custom generator";
103
+ readonly argument: ["[generator]"];
105
104
  };
106
- 'spring-service': {
107
- alias: string;
108
- desc: string;
109
- removed: string;
105
+ readonly 'spring-service': {
106
+ readonly alias: "service";
107
+ readonly desc: "Create a new Spring service bean";
108
+ readonly removed: string;
110
109
  };
111
- 'spring-controller': {
112
- desc: string;
113
- removed: string;
110
+ readonly 'spring-controller': {
111
+ readonly desc: "Create a new Spring controller";
112
+ readonly removed: string;
114
113
  };
115
- 'openapi-client': {
116
- desc: string;
117
- removed: string;
114
+ readonly 'openapi-client': {
115
+ readonly desc: "Generates java client code from an OpenAPI/Swagger definition";
116
+ readonly removed: string;
118
117
  };
119
- upgrade: {
120
- desc: string;
118
+ readonly upgrade: {
119
+ readonly desc: "Upgrade the JHipster version, and upgrade the generated application";
121
120
  };
122
- workspaces: {
123
- desc: string;
121
+ readonly workspaces: {
122
+ readonly desc: "Add workspaces configuration";
124
123
  };
125
124
  };
125
+ export default defaultCommands;
@@ -16,9 +16,9 @@ export default class EnvironmentBuilder {
16
16
  * const promise = require('yeoman-test').create('jhipster:app', {}, {createEnv: EnvironmentBuilder.createEnv}).run();
17
17
  *
18
18
  * @param {...any} args - Arguments passed to Environment.createEnv().
19
- * @return {EnvironmentBuilder} envBuilder
19
+ * @return {Promise<Environment>} envBuilder
20
20
  */
21
- static createEnv(...args: any[]): EnvironmentBuilder;
21
+ static createEnv(...args: any[]): Promise<Environment>;
22
22
  /**
23
23
  * Creates a new EnvironmentBuilder with a new Environment and load jhipster, blueprints and sharedOptions.
24
24
  *
@@ -35,10 +35,11 @@ export default class EnvironmentBuilder {
35
35
  * - Loads sharedOptions.
36
36
  */
37
37
  constructor(env: any);
38
+ /** @type {Environment} */
39
+ env: Environment;
38
40
  devBlueprintPath: any;
39
41
  localBlueprintPath: any;
40
42
  localBlueprintExists: any;
41
- env: any;
42
43
  prepare({ blueprints, lookups, devBlueprintPath }?: {
43
44
  blueprints: any;
44
45
  lookups: any;
@@ -95,9 +96,9 @@ export default class EnvironmentBuilder {
95
96
  /**
96
97
  * Get blueprints commands.
97
98
  *
98
- * @return {Object[]} blueprint commands.
99
+ * @return {Record<string, import('./types.js').CliCommand>} blueprint commands.
99
100
  */
100
- getBlueprintCommands(): any[];
101
+ getBlueprintCommands(): Record<string, import("./types.js").CliCommand>;
101
102
  /**
102
103
  * Get the environment.
103
104
  *
@@ -131,7 +132,7 @@ export default class EnvironmentBuilder {
131
132
  * @private
132
133
  * Get blueprints commands.
133
134
  *
134
- * @return {Object[]} commands.
135
+ * @return {Record<string, import('./types.js').CliCommand>} commands.
135
136
  */
136
137
  private _getBlueprintCommands;
137
138
  /**
@@ -42,6 +42,8 @@ const createEnvironment = (options = {}) => {
42
42
  return new Environment({ newErrorHandler: true, ...options });
43
43
  };
44
44
  export default class EnvironmentBuilder {
45
+ /** @type {Environment} */
46
+ env;
45
47
  devBlueprintPath;
46
48
  localBlueprintPath;
47
49
  localBlueprintExists;
@@ -66,7 +68,7 @@ export default class EnvironmentBuilder {
66
68
  * const promise = require('yeoman-test').create('jhipster:app', {}, {createEnv: EnvironmentBuilder.createEnv}).run();
67
69
  *
68
70
  * @param {...any} args - Arguments passed to Environment.createEnv().
69
- * @return {EnvironmentBuilder} envBuilder
71
+ * @return {Promise<Environment>} envBuilder
70
72
  */
71
73
  static async createEnv(...args) {
72
74
  const builder = await EnvironmentBuilder.createDefaultBuilder(...args);
@@ -248,7 +250,7 @@ export default class EnvironmentBuilder {
248
250
  /**
249
251
  * Get blueprints commands.
250
252
  *
251
- * @return {Object[]} blueprint commands.
253
+ * @return {Record<string, import('./types.js').CliCommand>} blueprint commands.
252
254
  */
253
255
  async getBlueprintCommands() {
254
256
  let blueprintsPackagePath = await this._getBlueprintPackagePaths();
@@ -349,7 +351,7 @@ export default class EnvironmentBuilder {
349
351
  * @private
350
352
  * Get blueprints commands.
351
353
  *
352
- * @return {Object[]} commands.
354
+ * @return {Record<string, import('./types.js').CliCommand>} commands.
353
355
  */
354
356
  async _getBlueprintCommands(blueprintPackagePaths) {
355
357
  if (!blueprintPackagePaths) {
@@ -61,10 +61,10 @@ export default class JHipsterCommand extends Command {
61
61
  /**
62
62
  * Register options using generator._options structure.
63
63
  * @param {object} options
64
- * @param {string} blueprintOptionDescription - description of the blueprint that adds the option
64
+ * @param {string} [blueprintOptionDescription] - description of the blueprint that adds the option
65
65
  * @return {JHipsterCommand} this;
66
66
  */
67
- addGeneratorOptions(options: object, blueprintOptionDescription: string): JHipsterCommand;
67
+ addGeneratorOptions(options: object, blueprintOptionDescription?: string | undefined): JHipsterCommand;
68
68
  addJHipsterArguments(jhipsterArguments: any): this;
69
69
  addJHipsterOptions(options: any, blueprintOptionDescription: any): this;
70
70
  addJHipsterConfigs(configs: {} | undefined, blueprintOptionDescription: any): this;
@@ -17,7 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import chalk from 'chalk';
20
- import { Command, Option } from 'commander';
20
+ import { Argument, Command, Option } from 'commander';
21
21
  import { kebabCase } from 'lodash-es';
22
22
  import { convertConfigToOption } from '../lib/command/index.js';
23
23
  export default class JHipsterCommand extends Command {
@@ -141,7 +141,7 @@ export default class JHipsterCommand extends Command {
141
141
  /**
142
142
  * Register options using generator._options structure.
143
143
  * @param {object} options
144
- * @param {string} blueprintOptionDescription - description of the blueprint that adds the option
144
+ * @param {string} [blueprintOptionDescription] - description of the blueprint that adds the option
145
145
  * @return {JHipsterCommand} this;
146
146
  */
147
147
  addGeneratorOptions(options, blueprintOptionDescription) {
@@ -154,7 +154,11 @@ export default class JHipsterCommand extends Command {
154
154
  Object.entries(jhipsterArguments ?? {}).forEach(([key, value]) => {
155
155
  let argName = value.type === Array ? `${key}...` : key;
156
156
  argName = value.required ? `<${argName}>` : `[${argName}]`;
157
- this.argument(argName, value.description);
157
+ const argument = new Argument(argName, value.description);
158
+ if (value.choices) {
159
+ argument.choices(value.choices.map(choice => (typeof choice === 'string' ? choice : choice.value)));
160
+ }
161
+ this.addArgument(argument);
158
162
  });
159
163
  return this;
160
164
  }
@@ -166,7 +170,9 @@ export default class JHipsterCommand extends Command {
166
170
  }
167
171
  addJHipsterConfigs(configs = {}, blueprintOptionDescription) {
168
172
  Object.assign(blueprintOptionDescription ? this.blueprintConfigs : this.configs, configs);
169
- Object.entries(configs).forEach(([name, config]) => {
173
+ Object.entries(configs)
174
+ .filter(([_name, config]) => config.cli)
175
+ .forEach(([name, config]) => {
170
176
  const option = convertConfigToOption(name, config);
171
177
  if (option) {
172
178
  this._addGeneratorOption(kebabCase(option.name), option, blueprintOptionDescription);
@@ -207,6 +213,9 @@ export default class JHipsterCommand extends Command {
207
213
  if (optionDefinition.choices && optionDefinition.choices.length > 0) {
208
214
  option.choices(optionDefinition.choices);
209
215
  }
216
+ if (optionDefinition.implies) {
217
+ option.implies(optionDefinition.implies);
218
+ }
210
219
  return this.addOption(option);
211
220
  }
212
221
  }
@@ -1,38 +1,55 @@
1
- export function printJHipsterLogo(): void;
2
- export function createProgram({ executableName, executableVersion }?: {
3
- executableName?: string | undefined;
4
- executableVersion: any;
5
- }): JHipsterCommand;
6
- export function buildCommands({ program, commands, envBuilder, env, loadCommand, defaultCommand, entrypointGenerator, printLogo, printBlueprintLogo, createEnvBuilder, }: {
7
- program: any;
8
- commands?: {} | undefined;
9
- envBuilder: any;
10
- env: any;
11
- loadCommand: any;
12
- defaultCommand?: string | undefined;
13
- entrypointGenerator: any;
14
- printLogo?: (() => void) | undefined;
15
- printBlueprintLogo?: (() => void) | undefined;
16
- createEnvBuilder: any;
17
- }): Promise<void>;
18
- export function buildJHipster({ executableName, executableVersion, program, blueprints, lookups, createEnvBuilder, envBuilder, commands, printLogo, printBlueprintLogo, devBlueprintPath, env, loadCommand, defaultCommand, entrypointGenerator, }?: {
19
- executableName: any;
20
- executableVersion: any;
21
- program?: JHipsterCommand | undefined;
22
- blueprints: any;
23
- lookups: any;
24
- createEnvBuilder: any;
25
- envBuilder: any;
26
- commands: any;
27
- printLogo: any;
28
- printBlueprintLogo: any;
29
- devBlueprintPath: any;
30
- env: any;
31
- loadCommand?: ((key: any) => Promise<any>) | undefined;
32
- defaultCommand: any;
33
- entrypointGenerator: any;
34
- }): Promise<JHipsterCommand>;
35
- export function runJHipster(args?: {}): Promise<JHipsterCommand>;
36
- export { done };
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 type Environment from 'yeoman-environment';
20
+ import type { BaseEnvironmentOptions } from '@yeoman/types';
21
+ import EnvironmentBuilder from './environment-builder.mjs';
37
22
  import JHipsterCommand from './jhipster-command.mjs';
38
23
  import { done } from './utils.mjs';
24
+ import type { CliCommand } from './types.js';
25
+ type BuildCommands = {
26
+ program: JHipsterCommand;
27
+ commands?: Record<string, CliCommand>;
28
+ envBuilder?: EnvironmentBuilder;
29
+ env: Environment;
30
+ loadCommand?: (key: string) => Promise<(...args: any[]) => Promise<any>>;
31
+ defaultCommand?: string;
32
+ entrypointGenerator?: string;
33
+ silent?: boolean;
34
+ printLogo?: () => void | Promise<void>;
35
+ printBlueprintLogo?: () => void | Promise<void>;
36
+ createEnvBuilder: (options?: BaseEnvironmentOptions) => Promise<EnvironmentBuilder>;
37
+ };
38
+ type BuildJHipsterOptions = Partial<BuildCommands> & {
39
+ executableName?: string;
40
+ executableVersion?: string;
41
+ blueprints?: Record<string, string>;
42
+ lookups?: any[];
43
+ devBlueprintPath?: string;
44
+ };
45
+ export declare const printJHipsterLogo: () => void;
46
+ export declare const createProgram: ({ executableName, executableVersion, }?: {
47
+ executableName?: string;
48
+ executableVersion?: string;
49
+ }) => JHipsterCommand;
50
+ export declare const buildCommands: ({ program, commands, envBuilder, env, loadCommand, defaultCommand, entrypointGenerator, printLogo, printBlueprintLogo, createEnvBuilder, silent, }: BuildCommands) => void;
51
+ export declare const buildJHipster: ({ executableName, executableVersion, program, blueprints, lookups, createEnvBuilder, envBuilder, commands, devBlueprintPath, env, ...buildOptions }?: BuildJHipsterOptions) => Promise<JHipsterCommand>;
52
+ export declare const runJHipster: (args?: {
53
+ argv?: string[];
54
+ } & BuildJHipsterOptions) => Promise<JHipsterCommand>;
55
+ export { done };
@@ -23,7 +23,7 @@ import didYouMean from 'didyoumean';
23
23
  import chalk from 'chalk';
24
24
  import { packageJson } from '../lib/index.js';
25
25
  import { packageNameToNamespace } from '../generators/base/support/index.js';
26
- import command from '../generators/base/command.js';
26
+ import baseCommand from '../generators/base/command.js';
27
27
  import { GENERATOR_APP, GENERATOR_BOOTSTRAP, GENERATOR_JDL } from '../generators/generator-list.js';
28
28
  import { extractArgumentsFromConfigs } from '../lib/command/index.js';
29
29
  import { buildJDLApplicationConfig } from '../lib/command/jdl.js';
@@ -43,9 +43,9 @@ export const printJHipsterLogo = () => {
43
43
  // eslint-disable-next-line no-console
44
44
  console.log(logo);
45
45
  };
46
- const buildAllDependencies = async (generatorNames, { env, blueprintNamespaces }) => {
46
+ const buildAllDependencies = async (generatorNames, { env, blueprintNamespaces = [] }) => {
47
47
  const allDependencies = {};
48
- const registerDependency = async ({ namespace, blueprintNamespace }) => {
48
+ const registerDependency = async ({ namespace, blueprintNamespace, }) => {
49
49
  const meta = await env.getGeneratorMeta(namespace.includes(':') ? namespace : `${JHIPSTER_NS}:${namespace}`);
50
50
  if (meta) {
51
51
  allDependencies[namespace] = { meta, blueprintNamespace };
@@ -53,7 +53,7 @@ const buildAllDependencies = async (generatorNames, { env, blueprintNamespaces }
53
53
  else if (!blueprintNamespace) {
54
54
  logger.warn(`Generator ${namespace} not found.`);
55
55
  }
56
- return meta?.importModule();
56
+ return (await meta?.importModule?.());
57
57
  };
58
58
  const lookupDependencyOptions = async ({ namespace, blueprintNamespace }) => {
59
59
  const lookupGeneratorAndImports = async ({ namespace, blueprintNamespace }) => {
@@ -97,7 +97,8 @@ const addCommandGeneratorOptions = async (command, generatorMeta, { root, bluepr
97
97
  }
98
98
  }
99
99
  try {
100
- if (root || !generatorModule.command || generatorModule.command.loadGeneratorOptions) {
100
+ if (generatorModule.command?.loadGeneratorOptions !== false &&
101
+ (root || !generatorModule.command || generatorModule.command.loadGeneratorOptions)) {
101
102
  const generator = await generatorMeta.instantiateHelp();
102
103
  // Add basic yeoman generator options
103
104
  command.addGeneratorOptions(generator._options, blueprintOptionDescription);
@@ -126,7 +127,7 @@ const addCommandRootGeneratorOptions = async (command, generatorMeta, { usage =
126
127
  }
127
128
  }
128
129
  };
129
- export const createProgram = ({ executableName = CLI_NAME, executableVersion } = {}) => {
130
+ export const createProgram = ({ executableName = CLI_NAME, executableVersion, } = {}) => {
130
131
  return (new JHipsterCommand()
131
132
  .name(executableName)
132
133
  .storeOptionsAsProperties(false)
@@ -144,8 +145,9 @@ export const createProgram = ({ executableName = CLI_NAME, executableVersion } =
144
145
  .option('--install-path', 'Show jhipster install path', false)
145
146
  .option('--skip-regenerate', "Don't regenerate identical files", false)
146
147
  .option('--skip-yo-resolve', 'Ignore .yo-resolve files', false)
147
- .addJHipsterOptions(command.options)
148
- .addJHipsterConfigs(command.configs));
148
+ .addJHipsterOptions(baseCommand.options)
149
+ // @ts-expect-error configs is not defined, but can be added later
150
+ .addJHipsterConfigs(baseCommand.configs));
149
151
  };
150
152
  const rejectExtraArgs = ({ program, command, extraArgs }) => {
151
153
  // if extraArgs exists: Unknown commands or unknown argument.
@@ -161,7 +163,10 @@ const rejectExtraArgs = ({ program, command, extraArgs }) => {
161
163
  const message = `${chalk.yellow(first)} is not a known command. See '${chalk.white(`${CLI_NAME} --help`)}'.`;
162
164
  logger.fatal(message);
163
165
  };
164
- export const buildCommands = async ({ program, commands = {}, envBuilder, env, loadCommand, defaultCommand = GENERATOR_APP, entrypointGenerator, printLogo = printJHipsterLogo, printBlueprintLogo = () => { }, createEnvBuilder, }) => {
166
+ export const buildCommands = ({ program, commands = {}, envBuilder, env, loadCommand = async (key) => {
167
+ const { default: command } = await import(`./${key}.mjs`);
168
+ return command;
169
+ }, defaultCommand = GENERATOR_APP, entrypointGenerator, printLogo = printJHipsterLogo, printBlueprintLogo = () => { }, createEnvBuilder, silent, }) => {
165
170
  /* create commands */
166
171
  Object.entries(commands).forEach(([cmdName, opts]) => {
167
172
  const { desc, blueprint, argument, options: commandOptions, alias, help: commandHelp, cliOnly, removed, useOptions = {} } = opts;
@@ -181,12 +186,16 @@ export const buildCommands = async ({ program, commands = {}, envBuilder, env, l
181
186
  logger.fatal(removed);
182
187
  return;
183
188
  }
189
+ if (!silent) {
190
+ await printLogo();
191
+ await printBlueprintLogo();
192
+ }
184
193
  const command = this;
185
194
  if (cmdName === 'run') {
186
195
  command.usage(`${operands} [options]`);
187
196
  operands = Array.isArray(operands) ? operands : [operands];
188
197
  command.generatorNamespaces = operands.map(namespace => `${namespace.startsWith(JHIPSTER_NS) ? '' : `${JHIPSTER_NS}-`}${namespace}`);
189
- await envBuilder.lookupGenerators(command.generatorNamespaces.map(namespace => `generator-${namespace.split(':')[0]}`));
198
+ await envBuilder?.lookupGenerators(command.generatorNamespaces.map(namespace => `generator-${namespace.split(':')[0]}`));
190
199
  await Promise.all(command.generatorNamespaces.map(async (namespace) => {
191
200
  const generatorMeta = env.getGeneratorMeta(namespace.includes(':') ? namespace : `${JHIPSTER_NS}:${namespace}`);
192
201
  if (!generatorMeta) {
@@ -211,7 +220,7 @@ export const buildCommands = async ({ program, commands = {}, envBuilder, env, l
211
220
  }
212
221
  const allDependencies = await buildAllDependencies(boostrapGen, {
213
222
  env,
214
- blueprintNamespaces: envBuilder.getBlueprintsNamespaces(),
223
+ blueprintNamespaces: envBuilder?.getBlueprintsNamespaces(),
215
224
  });
216
225
  for (const [metaName, { meta: generatorMeta, blueprintNamespace }] of Object.entries(allDependencies)) {
217
226
  if (blueprintNamespace) {
@@ -242,7 +251,7 @@ export const buildCommands = async ({ program, commands = {}, envBuilder, env, l
242
251
  ...useOptions,
243
252
  commandName: cmdName,
244
253
  entrypointGenerator,
245
- blueprints: envBuilder.getBlueprintsOption(),
254
+ blueprints: envBuilder?.getBlueprintsOption(),
246
255
  positionalArguments: args,
247
256
  jdlDefinition,
248
257
  commandsConfigs,
@@ -252,8 +261,6 @@ export const buildCommands = async ({ program, commands = {}, envBuilder, env, l
252
261
  console.log(path.dirname(__dirname));
253
262
  return Promise.resolve();
254
263
  }
255
- printLogo();
256
- printBlueprintLogo();
257
264
  if (cliOnly) {
258
265
  logger.debug('Executing CLI only script');
259
266
  const cliOnlyCommand = await loadCommand(cmdName);
@@ -262,44 +269,46 @@ export const buildCommands = async ({ program, commands = {}, envBuilder, env, l
262
269
  : Promise.reject(new Error(`Command ${cmdName} is not a function.`));
263
270
  }
264
271
  if (cmdName === 'run') {
265
- return Promise.all(command.generatorNamespaces.map(generator => env.run(generator, options))).then(results => done(results.find(result => result)), errors => done(errors.find(error => error)));
272
+ return Promise.all(command.generatorNamespaces.map(generator => env.run(generator, options))).then(results => silent || done(results.find(result => result)), errors => silent || done(errors.find(error => error)));
266
273
  }
267
274
  if (cmdName === 'upgrade') {
268
275
  options.programName = program.name();
269
276
  options.createEnvBuilder = createEnvBuilder;
270
277
  }
271
278
  const namespace = blueprint ? `${packageNameToNamespace(blueprint)}:${cmdName}` : `${JHIPSTER_NS}:${cmdName}`;
272
- const generatorCommand = getCommand(namespace, args, opts);
273
- return env.run(generatorCommand, options).then(done, done);
279
+ const generatorCommand = getCommand(namespace, args);
280
+ const promise = env.run(generatorCommand, options);
281
+ if (silent) {
282
+ return promise;
283
+ }
284
+ return promise.then(done, done);
274
285
  });
275
286
  });
276
287
  };
277
- export const buildJHipster = async ({ executableName, executableVersion, program = createProgram({ executableName, executableVersion }), blueprints, lookups, createEnvBuilder, envBuilder, commands, printLogo, printBlueprintLogo, devBlueprintPath, env, loadCommand = async (key) => {
278
- const { default: command } = await import(`./${key}.mjs`);
279
- return command;
280
- }, defaultCommand, entrypointGenerator, } = {}) => {
288
+ export const buildJHipster = async ({ executableName, executableVersion, program = createProgram({ executableName, executableVersion }), blueprints, lookups, createEnvBuilder, envBuilder, commands, devBlueprintPath, env, ...buildOptions } = {}) => {
281
289
  createEnvBuilder =
282
290
  createEnvBuilder ?? (async (options) => EnvironmentBuilder.create(options).prepare({ blueprints, lookups, devBlueprintPath }));
283
- envBuilder = envBuilder ?? (await createEnvBuilder());
284
- env = env ?? envBuilder.getEnvironment();
285
- commands = commands ?? { ...SUB_GENERATORS, ...(await envBuilder.getBlueprintCommands()) };
286
- await buildCommands({
291
+ if (!env) {
292
+ envBuilder = envBuilder ?? (await createEnvBuilder());
293
+ env = env ?? envBuilder.getEnvironment();
294
+ commands = { ...SUB_GENERATORS, ...(await envBuilder.getBlueprintCommands()), ...commands };
295
+ }
296
+ else {
297
+ commands = { ...SUB_GENERATORS, ...commands };
298
+ }
299
+ buildCommands({
300
+ ...buildOptions,
287
301
  program,
288
302
  commands,
289
303
  envBuilder,
290
304
  env,
291
- loadCommand,
292
- defaultCommand,
293
- entrypointGenerator,
294
- printLogo,
295
- printBlueprintLogo,
296
305
  createEnvBuilder,
297
306
  });
298
307
  return program;
299
308
  };
300
309
  export const runJHipster = async (args = {}) => {
301
- const { argv = process.argv } = args;
302
- const jhipsterProgram = await buildJHipster(args);
310
+ const { argv = process.argv, ...buildJHipsterOptions } = args;
311
+ const jhipsterProgram = await buildJHipster(buildJHipsterOptions);
303
312
  return jhipsterProgram.parseAsync(argv);
304
313
  };
305
314
  export { done };