generator-jhipster 8.4.0 → 8.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/README.md +3 -4
  2. package/dist/cli/commands.mjs +2 -0
  3. package/dist/cli/environment-builder.mjs +5 -0
  4. package/dist/cli/program.mjs +10 -4
  5. package/dist/generators/angular/entity-files-angular.js +6 -7
  6. package/dist/generators/angular/resources/package.json +20 -20
  7. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +4 -3
  8. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +3 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +4 -5
  10. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.spec.ts.ejs +3 -2
  11. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +6 -5
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +3 -2
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +5 -5
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +3 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +2 -3
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.spec.ts.ejs +3 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +3 -3
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +3 -4
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +3 -3
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +3 -2
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +4 -4
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +3 -2
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +3 -3
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +4 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +3 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +1 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.spec.ts.ejs +3 -3
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +3 -2
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +3 -2
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +3 -3
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +3 -4
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +3 -3
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -2
  40. package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -1
  41. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
  42. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/config/uib-pagination.config.ts.ejs +1 -1
  44. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +7 -5
  45. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.spec.ts.ejs +3 -2
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth-expired.interceptor.ts.ejs +3 -3
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth.interceptor.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts.ejs +1 -1
  50. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +6 -6
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +3 -4
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -3
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +4 -5
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +5 -3
  59. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +5 -6
  60. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  61. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +2 -2
  62. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +6 -6
  63. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +3 -2
  65. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  67. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  68. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +11 -9
  69. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  70. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  71. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +1 -1
  72. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +2 -2
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +10 -10
  74. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +6 -7
  75. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +4 -4
  76. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +2 -0
  77. package/dist/generators/app/generator.js +4 -13
  78. package/dist/generators/base/command.js +1 -0
  79. package/dist/generators/base/generator.js +22 -28
  80. package/dist/generators/base/internal/command.js +13 -0
  81. package/dist/generators/base/internal/index.js +1 -0
  82. package/dist/generators/base/priorities.js +12 -1
  83. package/dist/generators/base/shared-data.js +74 -2
  84. package/dist/generators/base/support/config.js +1 -1
  85. package/dist/generators/base/support/jhipster7-context.js +155 -52
  86. package/dist/generators/base-application/generator.js +15 -3
  87. package/dist/generators/base-application/priorities.js +1 -0
  88. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  89. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  90. package/dist/generators/base-core/generator.js +132 -63
  91. package/dist/generators/bootstrap/generator.js +1 -1
  92. package/dist/generators/bootstrap/support/eslint-worker.js +14 -12
  93. package/dist/generators/bootstrap/support/multi-step-transform/template-file.js +6 -1
  94. package/dist/generators/bootstrap-application/generator.js +1 -1
  95. package/dist/generators/bootstrap-application-base/generator.js +7 -3
  96. package/dist/generators/bootstrap-application-client/generator.js +5 -1
  97. package/dist/generators/bootstrap-application-server/generator.js +1 -0
  98. package/dist/generators/ci-cd/generator.js +1 -1
  99. package/dist/generators/ci-cd/templates/docker-registry.yml.ejs +0 -1
  100. package/dist/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +0 -1
  101. package/dist/generators/client/command.js +2 -2
  102. package/dist/generators/client/generator.js +2 -3
  103. package/dist/generators/client/generators/common/command.js +5 -0
  104. package/dist/generators/client/generators/common/generator.js +79 -0
  105. package/dist/generators/client/generators/common/index.js +20 -0
  106. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  107. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  108. package/dist/generators/client/resources/package.json +6 -6
  109. package/dist/generators/client/support/filter-entities.js +1 -1
  110. package/dist/generators/client/templates/.eslintignore.ejs +9 -5
  111. package/dist/generators/client/templates/README.md.jhi.client.ejs +29 -20
  112. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  113. package/dist/generators/common/generator.js +5 -0
  114. package/dist/generators/common/resources/package.json +2 -2
  115. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  116. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  117. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  118. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  119. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  120. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
  121. package/dist/generators/docker/templates/docker/mariadb.yml.ejs +1 -1
  122. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -2
  123. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  124. package/dist/generators/docker/templates/docker/realm-config/keycloak-health-check.sh +2 -2
  125. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -0
  126. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  127. package/dist/generators/docker-compose/templates/realm-config/keycloak-health-check.sh +2 -2
  128. package/dist/generators/entity/generator.js +2 -10
  129. package/dist/generators/entity/prompts.js +6 -11
  130. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +1 -1
  131. package/dist/generators/gatling/README.md +15 -0
  132. package/dist/generators/gatling/generator.js +0 -1
  133. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  134. package/dist/generators/generate-blueprint/command.js +16 -0
  135. package/dist/generators/generate-blueprint/files.js +11 -1
  136. package/dist/generators/generate-blueprint/generator.js +34 -17
  137. package/dist/generators/generate-blueprint/resources/package.json +3 -1
  138. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  139. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  140. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  141. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  142. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +20 -0
  143. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  144. package/dist/generators/generate-blueprint/templates/.github/workflows/build-cache.yml.ejs +39 -0
  145. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +105 -0
  146. package/dist/generators/generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs +1 -1
  147. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  148. package/dist/generators/generate-blueprint/templates/eslint.config.js.ejs +33 -0
  149. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  150. package/dist/generators/generator-constants.js +2 -2
  151. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  152. package/dist/generators/heroku/generator.js +1 -1
  153. package/dist/generators/info/generator.js +1 -3
  154. package/dist/generators/info/support/extract-info.js +60 -0
  155. package/dist/generators/info/support/index.js +1 -0
  156. package/dist/generators/init/generator.js +2 -2
  157. package/dist/generators/init/resources/.node-version +1 -1
  158. package/dist/generators/init/resources/package.json +2 -2
  159. package/dist/generators/java/generators/bootstrap/generator.js +9 -2
  160. package/dist/generators/java/generators/build-tool/command.js +6 -3
  161. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  162. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  163. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  164. package/dist/generators/java/generators/node/templates/npmw +1 -5
  165. package/dist/generators/java/support/add-java-annotation.js +28 -7
  166. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  167. package/dist/generators/java/support/index.js +1 -1
  168. package/dist/generators/jdl/generator.js +7 -7
  169. package/dist/generators/kubernetes/files.js +1 -1
  170. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +1 -1
  171. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  172. package/dist/generators/languages/generator.js +5 -2
  173. package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +1 -1
  174. package/dist/generators/maven/command.js +15 -0
  175. package/dist/generators/maven/generator.js +6 -1
  176. package/dist/generators/maven/index.js +1 -0
  177. package/dist/generators/maven/internal/xml-store.js +7 -6
  178. package/dist/generators/maven/support/pom-store.js +24 -9
  179. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  180. package/dist/generators/maven/templates/mvnw +185 -243
  181. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  182. package/dist/generators/react/entity-files-react.js +7 -7
  183. package/dist/generators/react/generator.js +10 -0
  184. package/dist/generators/react/resources/package.json +28 -28
  185. package/dist/generators/react/templates/src/main/webapp/app/app.tsx.ejs +9 -0
  186. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  187. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  188. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  189. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  190. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  191. package/dist/generators/react/templates/src/main/webapp/app/config/translation.ts.ejs +4 -0
  192. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  193. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  194. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +15 -1
  195. package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +4 -0
  196. package/dist/generators/react/templates/src/main/webapp/app/modules/login/logout.tsx.ejs +5 -3
  197. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +1 -1
  198. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
  199. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs +1 -1
  200. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs +0 -9
  201. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -3
  202. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +29 -6
  203. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  204. package/dist/generators/react/templates/src/main/webapp/app/shared/util/url-utils.ts.ejs +1 -1
  205. package/dist/generators/server/command.js +0 -11
  206. package/dist/generators/server/generator.js +16 -75
  207. package/dist/generators/server/jdl/application-definition.js +3 -1
  208. package/dist/generators/server/resources/Dockerfile +13 -13
  209. package/dist/generators/server/resources/gradle/libs.versions.toml +9 -7
  210. package/dist/generators/server/resources/pom.xml +16 -16
  211. package/dist/generators/server/support/config.js +4 -8
  212. package/dist/generators/server/support/prepare-entity.js +5 -6
  213. package/dist/generators/server/support/relationship.js +5 -2
  214. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  215. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +2 -1
  216. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -1
  217. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  218. package/dist/generators/server/templates/pom.xml.ejs +7 -31
  219. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  220. package/dist/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs +1 -1
  221. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  222. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
  223. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  224. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +1 -21
  225. package/dist/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +1 -1
  226. package/dist/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +1 -1
  227. package/dist/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs +1 -1
  228. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  229. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs +1 -1
  230. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +1 -1
  231. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +34 -0
  232. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  233. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  234. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +1 -1
  235. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +44 -10
  236. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +1 -1
  237. package/dist/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  238. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
  239. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  240. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  241. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  242. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  243. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  244. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  245. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  246. package/dist/generators/spring-boot/command.js +117 -6
  247. package/dist/generators/spring-boot/files.js +0 -5
  248. package/dist/generators/spring-boot/generator.js +44 -9
  249. package/dist/generators/spring-boot/prompts.js +6 -70
  250. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +374 -582
  251. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +1 -1
  252. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +1 -1
  253. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs +1 -1
  254. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +1 -1
  255. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
  256. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +1 -1
  257. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  258. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  259. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  260. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  261. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  262. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  263. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +3 -3
  264. package/dist/generators/spring-cloud/generators/gateway/command.js +10 -1
  265. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  266. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  267. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_imperative.java.ejs +1 -1
  268. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_reactive.java.ejs +1 -1
  269. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  270. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  271. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  272. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  273. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/config/DatabaseConfiguration.java_neo4j.ejs +18 -2
  274. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  275. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  276. package/dist/generators/vue/entity-files-vue.js +7 -7
  277. package/dist/generators/vue/resources/package.json +21 -21
  278. package/dist/generators/vue/templates/.eslintrc.cjs.ejs +7 -0
  279. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  280. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  281. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  282. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  283. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  284. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  285. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  286. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  287. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  288. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  289. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  290. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  291. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  292. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  293. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  294. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  295. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  296. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  297. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  298. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  299. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  300. package/dist/jdl/exporters/config.js +1 -0
  301. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  302. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  303. package/dist/jdl/jdl-importer.js +22 -20
  304. package/dist/jdl/jhipster/binary-options.js +12 -8
  305. package/dist/jdl/jhipster/json-entity.js +1 -1
  306. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  307. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  308. package/dist/jdl/models/jdl-binary-option.js +2 -2
  309. package/dist/jdl/models/jdl-deployment.js +11 -0
  310. package/dist/jdl/models/jdl-entity.js +1 -1
  311. package/dist/jdl/models/jdl-enum.js +1 -1
  312. package/dist/jdl/models/jdl-enums.js +0 -18
  313. package/dist/jdl/models/jdl-field.js +2 -2
  314. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  315. package/dist/jdl/models/jdl-object.js +23 -45
  316. package/dist/jdl/models/jdl-options.js +0 -18
  317. package/dist/jdl/models/jdl-relationships.js +8 -16
  318. package/dist/jdl/models/jdl-unary-option.js +1 -1
  319. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  320. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  321. package/dist/jdl/parsing/jdl-parser.js +14 -0
  322. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  323. package/dist/jdl/parsing/validator.js +16 -2
  324. package/dist/jdl/readers/json-reader.js +1 -1
  325. package/dist/jdl/utils/array-utils.js +6 -0
  326. package/dist/jdl/utils/set-utils.js +3 -2
  327. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  328. package/dist/lib/eslint/base.js +25 -0
  329. package/dist/lib/eslint/recommended.js +22 -0
  330. package/dist/testing/github.js +32 -0
  331. package/dist/testing/helpers.js +13 -0
  332. package/dist/testing/index.js +2 -0
  333. package/dist/testing/sample-config.js +31 -0
  334. package/dist/types/cli/commands.d.mts +2 -0
  335. package/dist/types/cli/environment-builder.d.mts +1 -0
  336. package/dist/types/generators/base/api.d.ts +19 -8
  337. package/dist/types/generators/base/generator.d.ts +10 -4
  338. package/dist/types/generators/base/internal/command.d.ts +2 -0
  339. package/dist/types/generators/base/internal/index.d.ts +1 -0
  340. package/dist/types/generators/base/priorities.d.ts +4 -0
  341. package/dist/types/generators/base/shared-data.d.ts +11 -2
  342. package/dist/types/generators/base/types.d.ts +12 -0
  343. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  344. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  345. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  346. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  347. package/dist/types/generators/base-application/types.d.ts +11 -0
  348. package/dist/types/generators/base-core/generator.d.ts +18 -2
  349. package/dist/types/generators/generator-constants.d.ts +1 -1
  350. package/dist/types/generators/info/support/extract-info.d.ts +14 -0
  351. package/dist/types/generators/info/support/index.d.ts +1 -0
  352. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  353. package/dist/types/generators/java/support/doc.d.ts +1 -1
  354. package/dist/types/generators/java/support/index.d.ts +1 -1
  355. package/dist/types/generators/java/types.d.ts +12 -0
  356. package/dist/types/generators/maven/internal/xml-store.d.ts +3 -2
  357. package/dist/types/generators/maven/support/pom-store.d.ts +5 -2
  358. package/dist/types/generators/maven/types.d.ts +1 -0
  359. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  360. package/dist/types/generators/server/types.d.ts +7 -1
  361. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  362. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  363. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  364. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  365. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  366. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  367. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  368. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  369. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  370. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  371. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  372. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  373. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  374. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  375. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  376. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  377. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  378. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  379. package/dist/types/jdl/converters/types.d.ts +102 -14
  380. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  381. package/dist/types/jdl/exporters/config.d.ts +2 -1
  382. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  383. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  384. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  385. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  386. package/dist/types/jdl/exporters/types.d.ts +61 -0
  387. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  388. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  389. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  390. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  391. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  392. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  393. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  394. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  395. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  396. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  397. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  398. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  399. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  400. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  401. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  402. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  403. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  404. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  405. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  406. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  407. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  408. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  409. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  410. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  411. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  412. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  413. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  414. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  415. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  416. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  417. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  418. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  419. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  420. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  421. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  422. package/dist/types/lib/eslint/base.d.ts +20 -0
  423. package/dist/types/lib/eslint/recommended.d.ts +20 -0
  424. package/dist/types/testing/github.d.ts +11 -0
  425. package/dist/types/testing/helpers.d.ts +21 -3
  426. package/dist/types/testing/index.d.ts +2 -0
  427. package/dist/types/testing/sample-config.d.ts +4 -0
  428. package/package.json +35 -30
  429. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +0 -35
  430. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -72,6 +72,7 @@ export default class JDLParser extends CstParser {
72
72
  this.applicationNamespaceConfigDeclaration();
73
73
  this.namespaceConfigValue();
74
74
  this.qualifiedName();
75
+ this.quotedList();
75
76
  this.list();
76
77
  // very important to call this after all the rules have been defined.
77
78
  // otherwise the parsers may not work correctly as it will lack information
@@ -534,6 +535,7 @@ export default class JDLParser extends CstParser {
534
535
  this.OR([
535
536
  { ALT: () => this.CONSUME(LexerTokens.BOOLEAN) },
536
537
  { ALT: () => this.SUBRULE(this.qualifiedName) },
538
+ { ALT: () => this.SUBRULE(this.quotedList) },
537
539
  { ALT: () => this.SUBRULE(this.list) },
538
540
  { ALT: () => this.CONSUME(LexerTokens.INTEGER) },
539
541
  { ALT: () => this.CONSUME(LexerTokens.STRING) },
@@ -562,6 +564,18 @@ export default class JDLParser extends CstParser {
562
564
  this.CONSUME(LexerTokens.RSQUARE);
563
565
  });
564
566
  }
567
+ quotedList() {
568
+ this.RULE('quotedList', () => {
569
+ this.CONSUME(LexerTokens.LSQUARE);
570
+ this.AT_LEAST_ONE_SEP({
571
+ SEP: LexerTokens.COMMA,
572
+ DEF: () => {
573
+ this.CONSUME(LexerTokens.STRING);
574
+ },
575
+ });
576
+ this.CONSUME(LexerTokens.RSQUARE);
577
+ });
578
+ }
565
579
  applicationSubEntities() {
566
580
  this.RULE('applicationSubEntities', () => {
567
581
  this.CONSUME(LexerTokens.ENTITIES);
@@ -25,11 +25,11 @@ import DeploymentTokens from './deployment-tokens.js';
25
25
  import RelationshipTypeTokens from './relationship-type-tokens.js';
26
26
  import OptionTokens from './option-tokens.js';
27
27
  import createTokenFromConfigCreator from './token-creator.js';
28
- export const tokens = {};
28
+ const _tokens = {};
29
29
  const { BUILT_IN_ENTITY } = relationshipOptions;
30
30
  function createTokenFromConfig(config) {
31
31
  const newToken = createTokenFromConfigCreator(config);
32
- tokens[config.name] = newToken;
32
+ _tokens[config.name] = newToken;
33
33
  return newToken;
34
34
  }
35
35
  // Some categories to make the grammar easier to read
@@ -63,7 +63,7 @@ createTokenFromConfig({
63
63
  createTokenFromConfig({ name: 'CONFIG', pattern: 'config' });
64
64
  createTokenFromConfig({ name: 'ENTITIES', pattern: 'entities' });
65
65
  ApplicationTokens.tokens.forEach(token => {
66
- tokens[token.name] = token;
66
+ _tokens[token.name] = token;
67
67
  });
68
68
  // application must appear AFTER "applicationType" due to shorter common prefix.
69
69
  createTokenFromConfig({ name: 'APPLICATION', pattern: 'application' });
@@ -74,7 +74,7 @@ createTokenFromConfig({
74
74
  categories: [CONFIG_KEY, DEPLOYMENT_KEY],
75
75
  });
76
76
  DeploymentTokens.tokens.forEach(token => {
77
- tokens[token.name] = token;
77
+ _tokens[token.name] = token;
78
78
  });
79
79
  createTokenFromConfig({ name: 'DEPLOYMENT', pattern: 'deployment' });
80
80
  // boolean value constants
@@ -88,16 +88,16 @@ createTokenFromConfig({ name: 'RELATIONSHIP', pattern: 'relationship' });
88
88
  createTokenFromConfig({ name: 'BUILT_IN_ENTITY', pattern: BUILT_IN_ENTITY });
89
89
  // Category For the relationship type key names
90
90
  RelationshipTypeTokens.tokens.forEach(token => {
91
- tokens[token.name] = token;
91
+ _tokens[token.name] = token;
92
92
  });
93
93
  createTokenFromConfig({ name: 'STAR', pattern: '*' });
94
94
  // Options
95
95
  OptionTokens.tokens.forEach(token => {
96
- tokens[token.name] = token;
96
+ _tokens[token.name] = token;
97
97
  });
98
98
  // validations
99
99
  ValidationTokens.tokens.forEach(token => {
100
- tokens[token.name] = token;
100
+ _tokens[token.name] = token;
101
101
  });
102
102
  createTokenFromConfig({ name: 'REGEX', pattern: /\/[^\n\r]*\// });
103
103
  createTokenFromConfig({ name: 'DECIMAL', pattern: /-?\d+\.\d+/ });
@@ -118,10 +118,16 @@ createTokenFromConfig({ name: 'DOT', pattern: '.' });
118
118
  createTokenFromConfig({ name: 'TO', pattern: 'to' });
119
119
  // annotations
120
120
  createTokenFromConfig({ name: 'AT', pattern: '@' });
121
- tokens.UNARY_OPTION = UNARY_OPTION;
122
- tokens.BINARY_OPTION = BINARY_OPTION;
123
- // Imperative the "NAME" token will be added after all the keywords to resolve keywords vs identifier conflict.
124
- tokens.NAME = NAME;
121
+ const typedTokens = {
122
+ UNARY_OPTION,
123
+ BINARY_OPTION,
124
+ // Imperative the "NAME" token will be added after all the keywords to resolve keywords vs identifier conflict.
125
+ NAME,
126
+ };
127
+ export const tokens = {
128
+ ..._tokens,
129
+ ...typedTokens,
130
+ };
125
131
  // with 'ensureOptimizations' the lexer initialization will throw a descriptive error
126
132
  // instead of silently reverting to an unoptimized algorithm.
127
133
  // This will avoid performance regressions.
@@ -377,6 +377,15 @@ class JDLSyntaxValidatorVisitor extends BaseJDLCSTVisitorWithDefaults {
377
377
  return false;
378
378
  }
379
379
  return true;
380
+ case 'quotedList':
381
+ if (actual.name !== 'quotedList') {
382
+ this.errors.push({
383
+ message: `An array of names is expected, but found: "${getFirstToken(actual).image}"`,
384
+ token: getFirstToken(actual),
385
+ });
386
+ return false;
387
+ }
388
+ return true;
380
389
  case 'INTEGER':
381
390
  if (actual.tokenType !== LexerTokens.INTEGER) {
382
391
  this.errors.push({
@@ -414,8 +423,13 @@ class JDLSyntaxValidatorVisitor extends BaseJDLCSTVisitorWithDefaults {
414
423
  if (!validation) {
415
424
  throw Error(`Got an invalid application config property: '${propertyName}'.`);
416
425
  }
417
- if (this.checkExpectedValueType(validation.type, value) && validation.pattern && value.children && value.children.NAME) {
418
- value.children.NAME.forEach(nameTok => this.checkNameSyntax(nameTok, validation.pattern, validation.msg));
426
+ if (this.checkExpectedValueType(validation.type, value) && validation.pattern && value.children) {
427
+ if (value.children.NAME) {
428
+ value.children.NAME.forEach(nameTok => this.checkNameSyntax(nameTok, validation.pattern, validation.msg));
429
+ }
430
+ if (value.children.STRING) {
431
+ value.children.STRING.forEach(nameTok => this.checkNameSyntax(nameTok, validation.pattern, validation.msg));
432
+ }
419
433
  }
420
434
  }
421
435
  checkDeploymentConfigPropSyntax(key, value) {
@@ -51,6 +51,6 @@ export default function parseFromDir(dir) {
51
51
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
52
52
  // @ts-expect-error
53
53
  const jdlObject = convertServerOptionsToJDL(applicationOptions);
54
- const convertedJDLObject = convertEntitiesToJDL({ entities });
54
+ const convertedJDLObject = convertEntitiesToJDL(entities);
55
55
  return mergeJDLObjects(jdlObject, convertedJDLObject);
56
56
  }
@@ -19,3 +19,9 @@
19
19
  export default function deduplicate(array) {
20
20
  return Array.from(new Set(array));
21
21
  }
22
+ export function join(set, separator = ',', quoted = false) {
23
+ if (!set) {
24
+ throw new Error('An Array must be passed so as to join elements.');
25
+ }
26
+ return set.map(val => (quoted ? `"${val}"` : val)).join(separator);
27
+ }
@@ -16,6 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
+ import { join as arrayJoin } from './array-utils.js';
19
20
  export function addAll(set, elements) {
20
21
  if (!set) {
21
22
  throw new Error('A Set must be passed so as to insert elements.');
@@ -26,9 +27,9 @@ export function addAll(set, elements) {
26
27
  elements.forEach(element => set.add(element));
27
28
  return set;
28
29
  }
29
- export function join(set, separator = ',') {
30
+ export function join(set, separator = ',', quoted = false) {
30
31
  if (!set) {
31
32
  throw new Error('A Set must be passed so as to join elements.');
32
33
  }
33
- return Array.from(set).join(separator);
34
+ return arrayJoin(Array.from(set), separator, quoted);
34
35
  }
@@ -89,10 +89,10 @@ export default function createValidator(jdlObject, applicationSettings = {}, log
89
89
  }
90
90
  }
91
91
  const typeCheckingFunction = getTypeCheckingFunction(entityName, applicationSettings);
92
- if (!jdlObject.hasEnum(jdlField.type) && !typeCheckingFunction(jdlField.type)) {
92
+ const isAnEnum = jdlObject.hasEnum(jdlField.type);
93
+ if (!isAnEnum && !typeCheckingFunction(jdlField.type)) {
93
94
  throw new Error(`The type '${jdlField.type}' is an unknown field type for field '${fieldName}' of entity '${entityName}'.`);
94
95
  }
95
- const isAnEnum = jdlObject.hasEnum(jdlField.type);
96
96
  checkForValidationErrors(jdlField, isAnEnum);
97
97
  });
98
98
  }
@@ -0,0 +1,25 @@
1
+ import unusedImports from 'eslint-plugin-unused-imports';
2
+ import imports from 'eslint-plugin-import';
3
+ export const baseRules = {
4
+ 'no-unused-vars': 'off',
5
+ 'import/no-duplicates': 'error',
6
+ 'import/order': 'error',
7
+ 'unused-imports/no-unused-imports': 'error',
8
+ 'unused-imports/no-unused-vars': [
9
+ 'warn',
10
+ {
11
+ vars: 'all',
12
+ varsIgnorePattern: '^_',
13
+ args: 'after-used',
14
+ argsIgnorePattern: '^_',
15
+ },
16
+ ],
17
+ };
18
+ const baseConfig = {
19
+ plugins: {
20
+ 'unused-imports': unusedImports,
21
+ import: imports,
22
+ },
23
+ rules: baseRules,
24
+ };
25
+ export default baseConfig;
@@ -0,0 +1,22 @@
1
+ import js from '@eslint/js';
2
+ import baseConfig from './base.js';
3
+ const recommended = {
4
+ languageOptions: {
5
+ ecmaVersion: 2022,
6
+ sourceType: 'module',
7
+ },
8
+ settings: {
9
+ 'import/parsers': {
10
+ espree: ['.js', '.cjs', '.mjs', '.jsx'],
11
+ },
12
+ 'import/resolver': {
13
+ node: true,
14
+ },
15
+ },
16
+ ...baseConfig,
17
+ rules: {
18
+ ...js.configs.recommended.rules,
19
+ ...baseConfig.rules,
20
+ },
21
+ };
22
+ export default recommended;
@@ -0,0 +1,32 @@
1
+ import axios from 'axios';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { appendFileSync, existsSync } from 'node:fs';
4
+ import { EOL } from 'node:os';
5
+ export const parseIssue = (issue) => {
6
+ if (issue.includes('#')) {
7
+ const split = issue.split('/');
8
+ const split2 = split[1].split('#');
9
+ return { owner: split[0], repository: split2[0], issue: split2[1] };
10
+ }
11
+ return undefined;
12
+ };
13
+ export const setGithubTaskOutput = (name, value) => {
14
+ const delimiter = `delimiter_${randomUUID()}`;
15
+ const output = `${name}<<${delimiter}${EOL}${value}${EOL}${delimiter}${EOL}`;
16
+ const filePath = process.env.GITHUB_OUTPUT;
17
+ if (filePath && existsSync(filePath)) {
18
+ appendFileSync(filePath, output, { encoding: 'utf8' });
19
+ }
20
+ else {
21
+ // eslint-disable-next-line no-console
22
+ console.log(output);
23
+ }
24
+ };
25
+ export const getGithubIssue = async ({ owner, repository, issue }) => {
26
+ const response = await axios.get(`https://api.github.com/repos/${owner}/${repository}/issues/${issue}`, {
27
+ headers: {
28
+ 'X-GitHub-Api-Version': '2022-11-28',
29
+ },
30
+ });
31
+ return response.data;
32
+ };
@@ -53,6 +53,7 @@ const createFiles = (workspaceFolder, configuration, entities) => {
53
53
  ...entityFiles,
54
54
  };
55
55
  };
56
+ export const createJHipsterConfigFiles = (configuration, entities) => createFiles('', configuration, entities);
56
57
  export const createBlueprintFiles = (blueprintPackage, { packageJson, generator = 'test-blueprint', generatorContent, files = {} } = {}) => {
57
58
  generatorContent =
58
59
  generatorContent ??
@@ -85,6 +86,9 @@ class JHipsterRunContext extends RunContext {
85
86
  workspaceApplications = [];
86
87
  commonWorkspacesConfig;
87
88
  generateApplicationsSet = false;
89
+ withOptions(options) {
90
+ return super.withOptions(options);
91
+ }
88
92
  withJHipsterConfig(configuration, entities) {
89
93
  return this.withFiles(createFiles('', { baseName: 'jhipster', creationTimestamp: parseCreationTimestamp('2020-01-01'), ...configuration }, entities));
90
94
  }
@@ -179,7 +183,16 @@ class JHipsterRunContext extends RunContext {
179
183
  merge(this.sharedApplication, sharedApplication);
180
184
  return this.withSharedData({ sharedApplication: this.sharedApplication });
181
185
  }
186
+ /**
187
+ * Mock every built-in generators except the ones in the exceptList and bootstrap-* generators.
188
+ * Note: Boostrap generator is mocked by default.
189
+ * @example
190
+ * withMockedJHipsterGenerators(['jhipster:bootstrap'])
191
+ * @example
192
+ * withMockedJHipsterGenerators(['bootstrap', 'server'])
193
+ */
182
194
  withMockedJHipsterGenerators(exceptList = []) {
195
+ exceptList = exceptList.map(gen => (gen.startsWith('jhipster:') ? gen : `jhipster:${gen}`));
183
196
  return this.withMockedGenerators(mockedGenerators.filter(gen => !exceptList.includes(gen) && this.Generator !== gen));
184
197
  }
185
198
  withGradleBuildTool() {
@@ -1,5 +1,7 @@
1
1
  export { default as getGenerator } from './get-generator.js';
2
2
  export * from './helpers.js';
3
+ export * from './github.js';
4
+ export * from './sample-config.js';
3
5
  // test matrix
4
6
  export * from './support/application-samples.js';
5
7
  export * from './support/client-samples.js';
@@ -0,0 +1,31 @@
1
+ import { lstat, readFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { GENERATOR_JHIPSTER } from '../generators/generator-constants.js';
4
+ import { mutateData } from '../generators/base/support/config.js';
5
+ const isFile = async (filename) => {
6
+ try {
7
+ return (await lstat(filename)).isFile();
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ };
13
+ export const prepareSample = async (projectFolder, files, { removeBlueprints } = {}) => {
14
+ return Promise.all(files.map(async ({ filename, content }) => {
15
+ filename = join(projectFolder, filename);
16
+ if (filename.endsWith('.yo-rc.json')) {
17
+ if (await isFile(filename)) {
18
+ const { jwtSecretKey, rememberMeKey } = JSON.parse(await readFile(filename, 'utf-8'))[GENERATOR_JHIPSTER];
19
+ if (jwtSecretKey || rememberMeKey) {
20
+ const newContent = JSON.parse(content);
21
+ mutateData(newContent[GENERATOR_JHIPSTER], { jwtSecretKey, rememberMeKey });
22
+ if (removeBlueprints) {
23
+ delete newContent[GENERATOR_JHIPSTER].blueprints;
24
+ }
25
+ content = JSON.stringify(newContent, null, 2);
26
+ }
27
+ }
28
+ }
29
+ return { filename, content };
30
+ }));
31
+ };
@@ -2,6 +2,7 @@ export default defaultCommands;
2
2
  declare const defaultCommands: {
3
3
  add: {
4
4
  desc: string;
5
+ removed: string;
5
6
  };
6
7
  app: {
7
8
  desc: string;
@@ -93,6 +94,7 @@ declare const defaultCommands: {
93
94
  };
94
95
  page: {
95
96
  desc: string;
97
+ removed: string;
96
98
  };
97
99
  'project-name': {
98
100
  desc: string;
@@ -26,6 +26,7 @@ export default class EnvironmentBuilder {
26
26
  * @return {EnvironmentBuilder} envBuilder
27
27
  */
28
28
  static createDefaultBuilder(...args: any[]): EnvironmentBuilder;
29
+ static run(args: any, generatorOptions?: {}, envOptions?: {}): Promise<void>;
29
30
  /**
30
31
  * Class to manipulate yeoman environment for jhipster needs.
31
32
  * - Registers jhipster generators.
@@ -1,5 +1,5 @@
1
1
  import type { BaseOptions, BaseFeatures, ArgumentSpec, CliOptionSpec } from 'yeoman-generator';
2
- import type { SetOptional } from 'type-fest';
2
+ import type { RequireAtLeastOne, SetOptional } from 'type-fest';
3
3
  import type CoreGenerator from '../base-core/index.js';
4
4
 
5
5
  export type ApplicationWithConfig = {
@@ -70,7 +70,7 @@ export type JHipsterGeneratorFeatures = BaseFeatures & {
70
70
  /**
71
71
  * Wraps write context and shows removed fields and replacements if exists.
72
72
  */
73
- jhipster7Migration?: boolean;
73
+ jhipster7Migration?: boolean | 'verbose' | 'silent';
74
74
  sbsBlueprint?: boolean;
75
75
  checkBlueprint?: boolean;
76
76
  /**
@@ -114,13 +114,13 @@ export type WriteFileTemplate<Generator = CoreGenerator, DataType = any> =
114
114
  | ((this: Generator, data: DataType, filePath: string) => string)
115
115
  | {
116
116
  /** source file */
117
- sourceFile?: ((this: Generator, data: DataType) => string) | string;
117
+ sourceFile?: string | ((this: Generator, data: DataType) => string);
118
118
  /** destination file */
119
- destinationFile?: (this: Generator, destinationFile: DataType) => string | string;
119
+ destinationFile?: string | ((this: Generator, destinationFile: DataType) => string);
120
120
  /** @deprecated, use sourceFile instead */
121
- file?: ((this: Generator, data: DataType) => string) | string;
121
+ file?: string | ((this: Generator, data: DataType) => string);
122
122
  /** @deprecated, use destinationFile instead */
123
- renameTo?: ((this: Generator, data: DataType, filePath: string) => string) | string;
123
+ renameTo?: string | ((this: Generator, data: DataType, filePath: string) => string);
124
124
  /** transforms (files processing) to be applied */
125
125
  transform?: boolean | (() => string)[];
126
126
  /** binary files skips ejs render, ejs extension and file transform */
@@ -159,6 +159,13 @@ export type WriteFileOptions<Generator = CoreGenerator, DataType = any> = {
159
159
  * Single absolute path or relative path(s) between the templates folder and template path.
160
160
  */
161
161
  rootTemplatesPath?: string | string[];
162
+
163
+ /** @experimental Customize templates sourceFile and destinationFile */
164
+ customizeTemplatePath?: (file: {
165
+ sourceFile: string;
166
+ resolvedSourceFile: string;
167
+ destinationFile: string;
168
+ }) => undefined | { sourceFile: string; resolvedSourceFile: string; destinationFile: string };
162
169
  } & (
163
170
  | {
164
171
  sections: WriteFileSection<Generator, DataType>;
@@ -207,7 +214,7 @@ export type ConfigSpec = {
207
214
 
208
215
  cli?: SetOptional<CliOptionSpec, 'name'> & { env?: string };
209
216
  argument?: JHipsterArgumentConfig;
210
- prompt?: PromptSpec | ((CoreGenerator) => PromptSpec);
217
+ prompt?: PromptSpec | ((gen: CoreGenerator & { jhipsterConfigWithDefaults: Record<string, any> }, config: ConfigSpec) => PromptSpec);
211
218
  scope?: 'storage' | 'blueprint' | 'generator';
212
219
  /**
213
220
  * The callback receives the generator as input for 'generator' scope.
@@ -215,13 +222,17 @@ export type ConfigSpec = {
215
222
  * The callback receives blueprintStorage contents as input for 'blueprint' scope.
216
223
  */
217
224
  default?: string | boolean | string[] | ((any) => string | boolean | string[]);
225
+ /**
226
+ * Configure the generator according to the selected configuration.
227
+ */
228
+ configure?: (gen: CoreGenerator) => void;
218
229
  };
219
230
 
220
231
  export type JHipsterArguments = Record<string, JHipsterArgumentConfig>;
221
232
 
222
233
  export type JHipsterOptions = Record<string, JHipsterOption>;
223
234
 
224
- export type JHipsterConfigs = Record<string, ConfigSpec>;
235
+ export type JHipsterConfigs = Record<string, RequireAtLeastOne<ConfigSpec, 'argument' | 'cli' | 'prompt'>>;
225
236
 
226
237
  export type JHipsterCommandDefinition = {
227
238
  arguments?: JHipsterArguments;
@@ -76,6 +76,16 @@ export default class JHipsterBaseBlueprintGenerator<Definition extends BaseGener
76
76
  * Utility method to get typed objects for autocomplete.
77
77
  */
78
78
  asComposingTaskGroup(taskGroup: GenericTaskGroup<this, Definition['composingTaskParam']>): GenericTaskGroup<this, Definition['composingTaskParam']>;
79
+ /**
80
+ * Priority API stub for blueprints.
81
+ *
82
+ * ComposingComponent priority should be used to handle component configuration order.
83
+ */
84
+ get composingComponent(): GenericTaskGroup<this, Definition['composingTaskParam']>;
85
+ /**
86
+ * Utility method to get typed objects for autocomplete.
87
+ */
88
+ asComposingComponentTaskGroup(taskGroup: GenericTaskGroup<this, Definition['composingTaskParam']>): GenericTaskGroup<this, Definition['composingTaskParam']>;
79
89
  /**
80
90
  * Priority API stub for blueprints.
81
91
  *
@@ -207,10 +217,6 @@ export default class JHipsterBaseBlueprintGenerator<Definition extends BaseGener
207
217
  * Utility method to get typed objects for autocomplete.
208
218
  */
209
219
  asEndTaskGroup(taskGroup: GenericTaskGroup<this, Definition['endTaskParam']>): GenericTaskGroup<this, Definition['endTaskParam']>;
210
- /**
211
- * JHipster config with default values fallback
212
- */
213
- get jhipsterConfigWithDefaults(): any;
214
220
  /**
215
221
  * @protected
216
222
  * Composes with blueprint generators, if any.
@@ -0,0 +1,2 @@
1
+ import { JHipsterArguments, JHipsterConfigs } from '../api.js';
2
+ export declare const extractArgumentsFromConfigs: (configs: JHipsterConfigs | undefined) => JHipsterArguments;
@@ -17,3 +17,4 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  export * from './blueprint.js';
20
+ export * from './command.js';
@@ -45,6 +45,7 @@ export namespace PRIORITY_NAMES {
45
45
  export { PROMPTING };
46
46
  export { CONFIGURING };
47
47
  export { COMPOSING };
48
+ export { COMPOSING_COMPONENT };
48
49
  export { LOADING };
49
50
  export { PREPARING };
50
51
  export { POST_PREPARING };
@@ -64,6 +65,7 @@ export namespace QUEUES {
64
65
  export { PROMPTING as PROMPTING_QUEUE };
65
66
  export { CONFIGURING as CONFIGURING_QUEUE };
66
67
  export { COMPOSING_QUEUE };
68
+ export { COMPOSING_COMPONENT_QUEUE };
67
69
  export { LOADING_QUEUE };
68
70
  export { PREPARING_QUEUE };
69
71
  export { POST_PREPARING_QUEUE };
@@ -83,6 +85,7 @@ declare const PROMPTING: "prompting";
83
85
  declare const CONFIGURING: "configuring";
84
86
  /** Custom priorities */
85
87
  declare const COMPOSING: "composing";
88
+ declare const COMPOSING_COMPONENT: "composingComponent";
86
89
  declare const LOADING: "loading";
87
90
  declare const PREPARING: "preparing";
88
91
  declare const POST_PREPARING: "postPreparing";
@@ -97,6 +100,7 @@ declare const INSTALL: "install";
97
100
  declare const POST_INSTALL: "postInstall";
98
101
  declare const END: "end";
99
102
  declare const COMPOSING_QUEUE: "jhipster:composing";
103
+ declare const COMPOSING_COMPONENT_QUEUE: "jhipster:composingComponent";
100
104
  declare const LOADING_QUEUE: "jhipster:loading";
101
105
  declare const PREPARING_QUEUE: "jhipster:preparing";
102
106
  declare const POST_PREPARING_QUEUE: "jhipster:postPreparing";
@@ -1,12 +1,21 @@
1
+ import { MemFsEditor } from 'mem-fs-editor';
1
2
  import { type BaseApplication } from '../base-application/types.js';
2
3
  import { type Control } from './types.js';
3
4
  export default class SharedData<ApplicationType extends BaseApplication = BaseApplication> {
4
5
  _storage: any;
5
- constructor(storage: any, initialControl?: Partial<Control>);
6
+ _editor: MemFsEditor;
7
+ _log: any;
8
+ _logCwd: string;
9
+ constructor(storage: any, { memFs, destinationPath, log, logCwd }: {
10
+ memFs: any;
11
+ destinationPath: any;
12
+ log: any;
13
+ logCwd: any;
14
+ }, initialControl?: Partial<Control>);
6
15
  getSource(): any;
7
16
  getControl(): Control;
8
17
  getApplication(): ApplicationType;
9
- setEntity(entityName: any, entity: any): void;
18
+ setEntity(entityName: string, entity: any): void;
10
19
  hasEntity(entityName: any): boolean;
11
20
  getEntity(entityName: any): any;
12
21
  getEntities(entityNames?: string[]): {
@@ -1,3 +1,5 @@
1
+ import type { Entity } from '../base-application/index.ts';
2
+
1
3
  export type Control = {
2
4
  existingProject: boolean;
3
5
  ignoreNeedlesError: boolean;
@@ -9,4 +11,14 @@ export type Control = {
9
11
  */
10
12
  blueprintConfigured?: boolean;
11
13
  reproducibleLiquibaseTimestamp?: Date;
14
+ filterEntitiesForClient?: (entity: Entity[]) => Entity[];
15
+ filterEntitiesAndPropertiesForClient?: (entity: Entity[]) => Entity[];
16
+ customizeRemoveFiles: Array<(file: string) => string | undefined>;
17
+ removeFiles: (options: { removedInVersion: string } | string, ...files: string[]) => Promise<void>;
18
+ /**
19
+ * Cleanup files conditionally based on version and condition.
20
+ * @example
21
+ * cleanupFiles({ '6.0.0': ['file1', 'file2', [application.shouldRemove, 'file3']] })
22
+ */
23
+ cleanupFiles: (cleanup: Record<string, Array<string | [boolean, ...string[]]>>) => Promise<void>;
12
24
  };
@@ -27,6 +27,7 @@ export const PRIORITY_NAMES: {
27
27
  PROMPTING: string;
28
28
  CONFIGURING: string;
29
29
  COMPOSING: string;
30
+ COMPOSING_COMPONENT: string;
30
31
  LOADING: string;
31
32
  PREPARING: string;
32
33
  POST_PREPARING: string;
@@ -54,6 +55,7 @@ export const QUEUES: {
54
55
  PROMPTING_QUEUE: string;
55
56
  CONFIGURING_QUEUE: string;
56
57
  COMPOSING_QUEUE: string;
58
+ COMPOSING_COMPONENT_QUEUE: string;
57
59
  LOADING_QUEUE: string;
58
60
  PREPARING_QUEUE: string;
59
61
  POST_PREPARING_QUEUE: string;
@@ -16,5 +16,5 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { Entity } from '../../../jdl/converters/types.js';
20
- export declare const findEntityInEntities: (entityName: string, entities: Entity[]) => Entity | undefined;
19
+ import { JSONEntity } from '../../../jdl/converters/types.js';
20
+ export declare const findEntityInEntities: (entityName: string, entities: JSONEntity[]) => JSONEntity | undefined;
@@ -2,10 +2,10 @@ import type BaseGenerator from '../../base-core/index.js';
2
2
  import { Entity } from '../types/index.js';
3
3
  import type CoreGenerator from '../../base-core/generator.js';
4
4
  export declare const entityDefaultConfig: {
5
- pagination: string;
5
+ pagination: any;
6
6
  anyPropertyHasValidation: boolean;
7
- dto: string;
8
- service: string;
7
+ dto: any;
8
+ service: any;
9
9
  jpaMetamodelFiltering: boolean;
10
10
  readOnly: boolean;
11
11
  embedded: boolean;
@@ -16,12 +16,12 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { Relationship, Entity } from '../../../jdl/converters/types.js';
19
+ import { JSONRelationship, JSONEntity } from '../../../jdl/converters/types.js';
20
20
  import { ValidationResult } from '../../base/api.js';
21
21
  export declare const otherRelationshipType: (relationshipType: any) => any;
22
- export declare const findOtherRelationshipInRelationships: (entityName: string, relationship: Relationship, inRelationships: Relationship[]) => Relationship | undefined;
23
- export declare const loadEntitiesAnnotations: (entities: Entity[]) => void;
24
- export declare const loadEntitiesOtherSide: (entities: Entity[], { application }?: {
22
+ export declare const findOtherRelationshipInRelationships: (entityName: string, relationship: JSONRelationship, inRelationships: JSONRelationship[]) => JSONRelationship | undefined;
23
+ export declare const loadEntitiesAnnotations: (entities: JSONEntity[]) => void;
24
+ export declare const loadEntitiesOtherSide: (entities: JSONEntity[], { application }?: {
25
25
  application?: any;
26
26
  }) => ValidationResult;
27
- export declare const addOtherRelationship: (entity: Entity, otherEntity: Entity, relationship: Relationship) => Relationship;
27
+ export declare const addOtherRelationship: (entity: JSONEntity, otherEntity: JSONEntity, relationship: JSONRelationship) => JSONRelationship;
@@ -32,6 +32,17 @@ export type BaseApplication = {
32
32
 
33
33
  skipClient?: boolean;
34
34
  skipServer?: boolean;
35
+
36
+ /** Customize templates sourceFile and destinationFile */
37
+ customizeTemplatePaths: Array<
38
+ (file: {
39
+ namespace: string;
40
+ sourceFile: string;
41
+ resolvedSourceFile: string;
42
+ destinationFile: string;
43
+ templatesRoots: string[];
44
+ }) => undefined | { sourceFile: string; resolvedSourceFile: string; destinationFile: string; templatesRoots: string[] }
45
+ >;
35
46
  } & I18nApplication;
36
47
 
37
48
  /* ApplicationType Start */