generator-jhipster 7.7.0 → 7.8.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 (177) hide show
  1. package/README.md +1 -2
  2. package/generators/app/index.js +10 -0
  3. package/generators/ci-cd/index.js +1 -1
  4. package/generators/ci-cd/templates/github-actions.yml.ejs +4 -4
  5. package/generators/client/files-common.js +1 -2
  6. package/generators/client/files-react.js +25 -2
  7. package/generators/client/index.js +1 -1
  8. package/generators/client/needle-api/needle-client-react.js +11 -8
  9. package/generators/client/templates/angular/angular.json.ejs +1 -9
  10. package/generators/client/templates/angular/jest.conf.js.ejs +1 -1
  11. package/generators/client/templates/angular/package.json +17 -18
  12. package/generators/client/templates/angular/package.json.ejs +1 -1
  13. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -1
  14. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
  15. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  16. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +12 -1
  17. package/generators/client/templates/common/package.json +7 -6
  18. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
  19. package/generators/client/templates/react/.eslintrc.json.ejs +1 -1
  20. package/generators/client/templates/react/jest.conf.js.ejs +1 -1
  21. package/generators/client/templates/react/package.json +30 -31
  22. package/generators/client/templates/react/package.json.ejs +1 -0
  23. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
  24. package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
  25. package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
  26. package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
  27. package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
  28. package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +47 -0
  29. package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
  30. package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
  31. package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
  32. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +2 -1
  33. package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
  34. package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +24 -7
  35. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +15 -0
  36. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +34 -6
  37. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
  38. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
  39. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
  40. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
  41. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
  42. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
  43. package/generators/client/templates/react/tsconfig.json.ejs +3 -3
  44. package/generators/client/templates/react/tsconfig.test.json.ejs +9 -1
  45. package/generators/client/templates/react/webpack/webpack.common.js.ejs +6 -13
  46. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
  47. package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
  48. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
  49. package/generators/client/templates/vue/package.json +16 -17
  50. package/generators/client/templates/vue/package.json.ejs +1 -1
  51. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +1 -0
  52. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
  53. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +2 -2
  54. package/generators/client/templates/vue/tsconfig.json.ejs +0 -3
  55. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
  56. package/generators/common/templates/package.json +2 -2
  57. package/generators/docker-compose/index.js +9 -5
  58. package/generators/entity/index.js +34 -19
  59. package/generators/entity-client/index.js +8 -0
  60. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
  61. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +1 -1
  62. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +1 -0
  63. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +3 -3
  64. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -4
  65. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +19 -18
  66. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
  67. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +21 -20
  68. package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
  69. package/generators/entity-server/files.js +30 -10
  70. package/generators/entity-server/index.js +19 -1
  71. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +1 -1
  72. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +31 -8
  73. package/generators/entity-server/templates/partials/update_template.ejs +77 -0
  74. package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
  75. package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
  76. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +5 -5
  77. package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
  78. package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +13 -4
  79. package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +2 -2
  80. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +2 -1
  81. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
  82. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
  83. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
  84. package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
  85. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +6 -6
  86. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +13 -16
  87. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +4 -3
  88. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +15 -23
  89. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
  90. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +2 -2
  91. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +12 -25
  92. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
  93. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +21 -5
  94. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
  95. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +6 -4
  96. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +28 -15
  97. package/generators/generator-base-private.js +1 -1
  98. package/generators/generator-base.js +29 -0
  99. package/generators/generator-constants.js +5 -5
  100. package/generators/generator-transforms.js +0 -1
  101. package/generators/gradle/constants.cjs +1 -1
  102. package/generators/maven/files.cjs +0 -1
  103. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  104. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  105. package/generators/maven/templates/mvnw +13 -7
  106. package/generators/maven/templates/mvnw.cmd +19 -13
  107. package/generators/maven/templates/pom.xml.jhi.ejs +1 -1
  108. package/generators/server/cleanup.js +19 -3
  109. package/generators/server/files.js +101 -17
  110. package/generators/server/index.js +11 -5
  111. package/generators/server/needle-api/needle-server-gradle.js +38 -0
  112. package/generators/server/templates/.mvn/jvm.config +1 -0
  113. package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  114. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  115. package/generators/server/templates/build.gradle.ejs +7 -5
  116. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +24 -1
  117. package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
  118. package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
  119. package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
  120. package/generators/server/templates/gradle.properties.ejs +4 -4
  121. package/generators/server/templates/mvnw +13 -7
  122. package/generators/server/templates/mvnw.cmd +19 -13
  123. package/generators/server/templates/pom.xml.ejs +19 -17
  124. package/generators/server/templates/settings.gradle.ejs +6 -4
  125. package/generators/server/templates/src/main/docker/app.yml.ejs +2 -6
  126. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -1
  127. package/generators/server/templates/src/main/docker/mysql.yml.ejs +1 -0
  128. package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +6 -0
  129. package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
  130. package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
  131. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +12 -10
  132. package/generators/server/templates/src/main/java/package/repository/EntityManager.java.ejs +3 -3
  133. package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
  134. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
  135. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
  136. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
  137. package/generators/server/templates/src/main/resources/config/application.yml.ejs +26 -22
  138. package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
  139. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +9 -3
  140. package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +0 -3
  141. package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +122 -0
  142. package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +11 -0
  143. package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +11 -0
  144. package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +11 -0
  145. package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +38 -0
  146. package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
  147. package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +114 -0
  148. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
  149. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +1 -4
  150. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
  151. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +2 -4
  152. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +1 -4
  153. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +3 -3
  154. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
  155. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -4
  156. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
  157. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
  158. package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
  159. package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
  160. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +2 -5
  161. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
  162. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -4
  163. package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
  164. package/generators/server/templates/src/test/resources/config/application.yml.ejs +21 -20
  165. package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
  166. package/generators/workspaces/index.js +2 -1
  167. package/package.json +15 -15
  168. package/utils/entity.js +2 -0
  169. package/utils/field.js +8 -3
  170. package/utils/relationship.js +10 -1
  171. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToSortBuilderListConverter.java.ejs +0 -25
  172. package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  173. package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  174. package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
  175. package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
  176. package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
  177. package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![NPM version][npm-image]][npm-url] [![Downloads][npmcharts-image]][npmcharts-url] [![Gitter][gitter-badge-image]][gitter-badge-url] [![Known Vulnerabilities][snyk-image]][snyk-url]
4
4
 
5
- [![Generator Build Status][github-actions-generator-image]][github-actions-url] [![Angular Build Status][github-actions-angular-image]][github-actions-url] [![React Build Status][github-actions-react-image]][github-actions-url] [![Vue Build Status][github-actions-vue-image]][github-actions-url] [![Webflux Build Status][github-actions-webflux-image]][github-actions-url] [![Revved up by Gradle Enterprise](https://img.shields.io/badge/Revved%20up%20by-Gradle%20Enterprise-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.jhipster.tech/scans)
5
+ [![Generator Build Status][github-actions-generator-image]][github-actions-url] [![Angular Build Status][github-actions-angular-image]][github-actions-url] [![React Build Status][github-actions-react-image]][github-actions-url] [![Vue Build Status][github-actions-vue-image]][github-actions-url] [![Revved up by Gradle Enterprise](https://img.shields.io/badge/Revved%20up%20by-Gradle%20Enterprise-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.jhipster.tech/scans)
6
6
 
7
7
  Greetings, Java Hipster!
8
8
 
@@ -133,7 +133,6 @@ Additional builds at [hipster-labs/jhipster-daily-builds](https://github.com/hip
133
133
  [github-actions-angular-image]: https://github.com/jhipster/generator-jhipster/workflows/Angular/badge.svg
134
134
  [github-actions-react-image]: https://github.com/jhipster/generator-jhipster/workflows/React/badge.svg
135
135
  [github-actions-vue-image]: https://github.com/jhipster/generator-jhipster/workflows/Vue/badge.svg
136
- [github-actions-webflux-image]: https://github.com/jhipster/generator-jhipster/workflows/Webflux/badge.svg
137
136
  [github-actions-url]: https://github.com/jhipster/generator-jhipster/actions
138
137
  [backers-image]: https://opencollective.com/generator-jhipster/tiers/backer.svg?avatarHeight=70&width=890
139
138
  [backers-url]: https://opencollective.com/generator-jhipster
@@ -280,6 +280,16 @@ module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator {
280
280
  type: Boolean,
281
281
  });
282
282
 
283
+ this.option('cache-provider', {
284
+ desc: 'Cache provider',
285
+ type: String,
286
+ });
287
+
288
+ this.option('enable-hibernate-cache', {
289
+ desc: 'Enable hibernate cache',
290
+ type: Boolean,
291
+ });
292
+
283
293
  // Just constructing help, stop here
284
294
  if (this.options.help) {
285
295
  return;
@@ -234,7 +234,7 @@ module.exports = class extends BaseBlueprintGenerator {
234
234
  this.template('azure-pipelines.yml.ejs', 'azure-pipelines.yml');
235
235
  }
236
236
  if (this.pipeline === 'github') {
237
- this.template('github-actions.yml.ejs', '.github/workflows/github-actions.yml');
237
+ this.template('github-actions.yml.ejs', '.github/workflows/main.yml');
238
238
  }
239
239
 
240
240
  if (this.cicdIntegrations.includes('deploy')) {
@@ -24,7 +24,7 @@ jobs:
24
24
  name: "Gradle Wrapper Validation"
25
25
  runs-on: ubuntu-latest
26
26
  steps:
27
- - uses: actions/checkout@v2
27
+ - uses: actions/checkout@v3
28
28
  - uses: gradle/wrapper-validation-action@v1
29
29
  <%_ } _%>
30
30
  pipeline:
@@ -52,14 +52,14 @@ if (!databaseTypeNo && !skipServer ) { _%>
52
52
  GRADLE_ENTERPRISE_ACCESS_KEY: ${{secrets.GRADLE_ENTERPRISE_ACCESS_KEY}}
53
53
  <%_ } _%>
54
54
  steps:
55
- - uses: actions/checkout@v2
55
+ - uses: actions/checkout@v3
56
56
  <%_ if (!skipClient) { _%>
57
- - uses: actions/setup-node@v1
57
+ - uses: actions/setup-node@v3
58
58
  with:
59
59
  node-version: <%= NODE_VERSION %>
60
60
  <%_ }
61
61
  if (!skipServer) { _%>
62
- - uses: actions/setup-java@v2
62
+ - uses: actions/setup-java@v3
63
63
  with:
64
64
  distribution: 'temurin'
65
65
  java-version: <%= JAVA_VERSION %>
@@ -63,13 +63,12 @@ const files = {
63
63
  templates: ['content/scss/rtl.scss'],
64
64
  },
65
65
  {
66
- condition: generator => generator.microfrontend && generator.clientFrameworkVue,
66
+ condition: generator => generator.microfrontend && (generator.clientFrameworkVue || generator.clientFrameworkReact),
67
67
  templates: ['webpack/webpack.microfrontend.js.jhi'],
68
68
  },
69
69
  ],
70
70
  swagger: [
71
71
  {
72
- condition: generator => !generator.applicationTypeMicroservice || generator.microfrontend,
73
72
  path: CLIENT_MAIN_SRC_DIR,
74
73
  templates: ['swagger-ui/index.html', { file: 'swagger-ui/dist/images/throbber.gif', method: 'copy' }],
75
74
  },
@@ -76,7 +76,7 @@ const files = {
76
76
  {
77
77
  condition: generator => generator.enableTranslation,
78
78
  path: REACT_DIR,
79
- templates: ['config/translation.ts'],
79
+ templates: ['config/translation.ts', 'config/translation-middleware.ts'],
80
80
  },
81
81
  {
82
82
  condition: generator => generator.websocket === SPRING_WEBSOCKET,
@@ -91,7 +91,11 @@ const files = {
91
91
  reactEntities: [
92
92
  {
93
93
  path: REACT_DIR,
94
- templates: [{ file: 'entities/index.tsx', method: 'processJsx' }],
94
+ templates: [
95
+ 'entities/reducers.ts',
96
+ { file: 'entities/menu.tsx', method: 'processJsx' },
97
+ { file: 'entities/routes.tsx', method: 'processJsx' },
98
+ ],
95
99
  },
96
100
  ],
97
101
  reactMain: [
@@ -263,6 +267,22 @@ const files = {
263
267
  ],
264
268
  },
265
269
  ],
270
+ microfrontend: [
271
+ {
272
+ condition: generator => generator.microfrontend,
273
+ templates: ['webpack/webpack.microfrontend.js.jhi.react'],
274
+ },
275
+ {
276
+ condition: generator => generator.microfrontend,
277
+ path: REACT_DIR,
278
+ templates: ['main.tsx', 'shared/error/error-loading.tsx'],
279
+ },
280
+ {
281
+ condition: generator => generator.microfrontend && generator.applicationTypeGateway,
282
+ path: CLIENT_MAIN_SRC_DIR,
283
+ templates: ['microfrontends/entities-menu.tsx', 'microfrontends/entities-routes.tsx'],
284
+ },
285
+ ],
266
286
  clientTestFw: [
267
287
  {
268
288
  path: REACT_DIR,
@@ -349,6 +369,9 @@ function cleanup() {
349
369
  if (this.isJhipsterVersionLessThan('7.4.1')) {
350
370
  this.removeFile('.npmrc');
351
371
  }
372
+ if (this.isJhipsterVersionLessThan('7.7.1')) {
373
+ this.removeFile(`${CLIENT_MAIN_SRC_DIR}app/entities/index.tsx`);
374
+ }
352
375
  }
353
376
 
354
377
  function writeFiles() {
@@ -408,7 +408,7 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
408
408
  if (this.clientFrameworkAngular) {
409
409
  const conditional = this.applicationTypeMicroservice ? "targetOptions.target === 'serve' ? {} : " : '';
410
410
  this.addWebpackConfig(`${conditional}require('./webpack.microfrontend')(config, options, targetOptions)`);
411
- } else if (this.clientFrameworkVue) {
411
+ } else if (this.clientFrameworkVue || this.clientFrameworkReact) {
412
412
  this.addWebpackConfig("require('./webpack.microfrontend')({ serve: options.env.WEBPACK_SERVE })");
413
413
  } else {
414
414
  throw new Error(`Client framework ${this.clientFramework} doesn't support microfrontends`);
@@ -29,20 +29,20 @@ module.exports = class extends needleClientBase {
29
29
 
30
30
  addEntityToMenu(routerName, enableTranslation, entityTranslationKeyMenu, entityTranslationValue = _.startCase(routerName)) {
31
31
  const errorMessage = `${chalk.yellow('Reference to ') + routerName} ${chalk.yellow('not added to menu.\n')}`;
32
- const entityMenuPath = `${this.CLIENT_MAIN_SRC_DIR}app/shared/layout/menus/entities.tsx`;
32
+ const entityMenuPath = `${this.CLIENT_MAIN_SRC_DIR}app/entities/menu.tsx`;
33
33
  const entityEntry =
34
34
  // prettier-ignore
35
35
  this.generator.stripMargin(`|<MenuItem icon="asterisk" to="/${routerName}">
36
- | ${enableTranslation ? `<Translate contentKey="global.menu.entities.${entityTranslationKeyMenu}" />` : `${entityTranslationValue}`}
37
- | </MenuItem>`);
36
+ | ${enableTranslation ? `<Translate contentKey="global.menu.entities.${entityTranslationKeyMenu}" />` : `${entityTranslationValue}`}
37
+ | </MenuItem>`);
38
38
  const rewriteFileModel = this.generateFileModel(entityMenuPath, 'jhipster-needle-add-entity-to-menu', entityEntry);
39
39
 
40
40
  this.addBlockContentToFile(rewriteFileModel, errorMessage);
41
41
  }
42
42
 
43
43
  addEntityToModule(entityInstance, entityClass, entityName, entityFolderName, entityFileName) {
44
- const indexModulePath = `${this.CLIENT_MAIN_SRC_DIR}app/entities/index.tsx`;
45
- const indexReducerPath = `${this.CLIENT_MAIN_SRC_DIR}app/shared/reducers/index.ts`;
44
+ const indexModulePath = `${this.CLIENT_MAIN_SRC_DIR}app/entities/routes.tsx`;
45
+ const indexReducerPath = `${this.CLIENT_MAIN_SRC_DIR}app/entities/reducers.ts`;
46
46
 
47
47
  const errorMessage = path =>
48
48
  `${chalk.yellow('Reference to ') + entityInstance + entityClass + entityFolderName + entityFileName} ${chalk.yellow(
@@ -59,15 +59,18 @@ module.exports = class extends needleClientBase {
59
59
  const indexAddRoutePathRewriteFileModel = this.generateFileModel(
60
60
  indexModulePath,
61
61
  'jhipster-needle-add-route-path',
62
- this.generator.stripMargin(`|<ErrorBoundaryRoute path={\`\${match.url}${entityFileName}\`} component={${entityName}} />`)
62
+ this.generator.stripMargin(
63
+ `|<ErrorBoundaryRoute path={\`\${match.url}${
64
+ this.generator.microfrontend && this.generator.applicationTypeMicroservice ? '/' : ''
65
+ }${entityFileName}\`} component={${entityName}} />`
66
+ )
63
67
  );
64
68
  this.addBlockContentToFile(indexAddRoutePathRewriteFileModel, errorMessage(indexModulePath));
65
69
 
66
70
  const reducerAddImportRewriteFileModel = this.generateFileModel(
67
71
  indexReducerPath,
68
72
  'jhipster-needle-add-reducer-import', // prettier-ignore
69
- this.generator.stripMargin(`|// prettier-ignore
70
- |import ${entityInstance} from 'app/entities/${entityFolderName}/${entityFileName}.reducer';`)
73
+ this.generator.stripMargin(`import ${entityInstance} from 'app/entities/${entityFolderName}/${entityFileName}.reducer';`)
71
74
  );
72
75
  this.addBlockContentToFile(reducerAddImportRewriteFileModel, errorMessage(indexReducerPath));
73
76
 
@@ -51,15 +51,7 @@
51
51
  "<%= MAIN_SRC_DIR %>content",
52
52
  "<%= MAIN_SRC_DIR %>favicon.ico",
53
53
  "<%= MAIN_SRC_DIR %>manifest.webapp",
54
- "<%= MAIN_SRC_DIR %>robots.txt",
55
- {
56
- "glob": "*.{js,css,html,png}",
57
- "input": "./node_modules/swagger-ui-dist",
58
- "output": "swagger-ui",
59
- "ignore": ["**/index.html"]
60
- },
61
- { "glob": "axios.min.js", "input": "./node_modules/axios/dist", "output": "swagger-ui" },
62
- { "glob": "**/*", "input": "<%= MAIN_SRC_DIR %>swagger-ui/", "output": "swagger-ui" }
54
+ "<%= MAIN_SRC_DIR %>robots.txt"
63
55
  ],
64
56
  "styles": ["<%= MAIN_SRC_DIR %>content/scss/vendor.scss", "<%= MAIN_SRC_DIR %>content/scss/global.scss"],
65
57
  "scripts": []
@@ -16,7 +16,7 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- const { pathsToModuleNameMapper } = require('ts-jest/utils')
19
+ const { pathsToModuleNameMapper } = require('ts-jest')
20
20
 
21
21
  const { compilerOptions: { paths = {}, baseUrl = './' } } = require('./tsconfig.json');
22
22
  const environment = require('./webpack/environment');
@@ -1,36 +1,35 @@
1
1
  {
2
2
  "dependencies": {
3
- "@angular/common": "13.2.4",
4
- "@fortawesome/angular-fontawesome": "0.10.1",
5
- "@fortawesome/fontawesome-svg-core": "1.3.0",
6
- "@fortawesome/free-solid-svg-icons": "6.0.0",
7
- "@ng-bootstrap/ng-bootstrap": "12.0.0",
3
+ "@angular/common": "13.3.1",
4
+ "@fortawesome/angular-fontawesome": "0.10.2",
5
+ "@fortawesome/fontawesome-svg-core": "6.1.1",
6
+ "@fortawesome/free-solid-svg-icons": "6.1.1",
7
+ "@ng-bootstrap/ng-bootstrap": "12.0.1",
8
8
  "@ngx-translate/core": "14.0.0",
9
9
  "@ngx-translate/http-loader": "7.0.0",
10
- "@popperjs/core": "2.11.2",
10
+ "@popperjs/core": "2.11.4",
11
11
  "bootstrap": "5.1.3",
12
12
  "bootswatch": "5.1.3",
13
13
  "ngx-cookie-service": "13.1.2",
14
- "ngx-infinite-scroll": "10.0.1",
14
+ "ngx-infinite-scroll": "13.0.1",
15
15
  "ngx-webstorage": "9.0.0",
16
- "rxjs": "7.5.4",
17
- "swagger-ui-dist": "4.5.2",
16
+ "rxjs": "7.5.5",
18
17
  "tslib": "2.3.1",
19
18
  "zone.js": "0.11.4"
20
19
  },
21
20
  "devDependencies": {
22
- "@angular/cli": "13.2.5",
21
+ "@angular/cli": "13.3.1",
23
22
  "@angular-builders/custom-webpack": "13.1.0",
24
23
  "@angular-builders/jest": "13.0.3",
25
24
  "@angular-eslint/eslint-plugin": "13.1.0",
26
25
  "@types/node": "16.11.26",
27
26
  "@types/jest": "27.4.1",
28
- "@typescript-eslint/eslint-plugin": "5.12.1",
29
- "browser-sync": "2.27.7",
27
+ "@typescript-eslint/eslint-plugin": "5.17.0",
28
+ "browser-sync": "2.27.9",
30
29
  "browser-sync-webpack-plugin": "2.3.0",
31
30
  "copy-webpack-plugin": "10.2.4",
32
- "eslint": "8.9.0",
33
- "eslint-config-prettier": "8.4.0",
31
+ "eslint": "8.12.0",
32
+ "eslint-config-prettier": "8.5.0",
34
33
  "eslint-webpack-plugin": "3.1.1",
35
34
  "folder-hash": "4.0.2",
36
35
  "jest": "27.5.1",
@@ -39,11 +38,11 @@
39
38
  "jest-junit": "13.0.0",
40
39
  "jest-sonar-reporter": "2.0.0",
41
40
  "merge-jsons-webpack-plugin": "2.0.1",
42
- "postcss-rtlcss": "3.5.2",
41
+ "postcss-rtlcss": "3.5.4",
43
42
  "rimraf": "3.0.2",
44
- "ts-jest": "27.1.3",
45
- "typescript": "4.5.5",
46
- "webpack": "5.69.1",
43
+ "ts-jest": "27.1.4",
44
+ "typescript": "4.6.3",
45
+ "webpack": "5.70.0",
47
46
  "webpack-bundle-analyzer": "4.5.0",
48
47
  "webpack-merge": "5.8.0",
49
48
  "webpack-notifier": "1.15.0"
@@ -55,7 +55,6 @@
55
55
  "ngx-webstorage": "<%= dependabotPackageJson.dependencies['ngx-webstorage'] %>",
56
56
  "@popperjs/core": "<%= dependabotPackageJson.dependencies['@popperjs/core'] %>",
57
57
  "rxjs": "<%= dependabotPackageJson.dependencies['rxjs'] %>",
58
- "swagger-ui-dist": "<%= dependabotPackageJson.dependencies['swagger-ui-dist'] %>",
59
58
  <%_ if (websocket === 'spring-websocket') { _%>
60
59
  "sockjs-client": "1.5.0",
61
60
  "webstomp-client": "1.2.6",
@@ -127,6 +126,7 @@
127
126
  "postcss-rtlcss": "<%= dependabotPackageJson.devDependencies['postcss-rtlcss'] %>",
128
127
  <%_ } _%>
129
128
  "rimraf": "<%= dependabotPackageJson.devDependencies['rimraf'] %>",
129
+ "swagger-ui-dist": "<%= dependabotPackageJson.devDependencies['swagger-ui-dist'] %>",
130
130
  "ts-jest": "<%= dependabotPackageJson.devDependencies['ts-jest'] %>",
131
131
  "typescript": "<%= dependabotPackageJson.devDependencies['typescript'] %>",
132
132
  "webpack-bundle-analyzer": "<%= dependabotPackageJson.devDependencies['webpack-bundle-analyzer'] %>",
@@ -72,7 +72,7 @@ export class UserManagementComponent implements OnInit {
72
72
  this.userService.update({ ...user, activated: isActivated }).subscribe(() => this.loadAll());
73
73
  }
74
74
 
75
- trackIdentity(index: number, item: User): <%= getTypescriptKeyType(user.primaryKey.type) %> {
75
+ trackIdentity(_index: number, item: User): <%= getTypescriptKeyType(user.primaryKey.type) %> {
76
76
  return item.id!;
77
77
  }
78
78
 
@@ -116,7 +116,7 @@ export class DataUtils {
116
116
  const fileReader: FileReader = new FileReader();
117
117
  fileReader.onload = (e: ProgressEvent<FileReader>) => {
118
118
  if (typeof e.target?.result === 'string') {
119
- const base64Data: string = e.target.result.substr(e.target.result.indexOf('base64,') + 'base64,'.length);
119
+ const base64Data: string = e.target.result.substring(e.target.result.indexOf('base64,') + 'base64,'.length);
120
120
  callback(base64Data);
121
121
  }
122
122
  };
@@ -50,7 +50,7 @@ export class ParseLinks {
50
50
 
51
51
  url.replace(
52
52
  /([^?=&]+)(=([^&]*))?/g,
53
- ($0: string, $1: string | undefined, $2: string | undefined, $3: string | undefined) => {
53
+ (_$0: string, $1: string | undefined, _$2: string | undefined, $3: string | undefined) => {
54
54
  if ($1 !== undefined) {
55
55
  queryString[$1] = $3;
56
56
  }
@@ -35,7 +35,6 @@ const ESLintPlugin = require('eslint-webpack-plugin');
35
35
  const environment = require('./environment');
36
36
  const proxyConfig = require('./proxy.conf');
37
37
 
38
-
39
38
  module.exports = async (config, options, targetOptions) => {
40
39
  <%_ if (enableTranslation) { _%>
41
40
  const languagesHash = await hashElement(path.resolve(__dirname, '../<%= MAIN_SRC_DIR %>i18n'), {
@@ -111,6 +110,18 @@ module.exports = async (config, options, targetOptions) => {
111
110
  }
112
111
 
113
112
  const patterns = [
113
+ {
114
+ // https://github.com/swagger-api/swagger-ui/blob/v4.6.1/swagger-ui-dist-package/README.md
115
+ context: require('swagger-ui-dist').getAbsoluteFSPath(),
116
+ from: '*.{js,css,html,png}',
117
+ to: 'swagger-ui/',
118
+ globOptions: { ignore: ['**/index.html'] },
119
+ },
120
+ {
121
+ from: require.resolve('axios/dist/axios.min.js'),
122
+ to: 'swagger-ui/',
123
+ },
124
+ { from: './<%= CLIENT_MAIN_SRC_DIR %>swagger-ui/', to: 'swagger-ui/' },
114
125
  // jhipster-needle-add-assets-to-webpack - JHipster will add/remove third-party resources in this array
115
126
  ];
116
127
 
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "devDependencies": {
3
3
  "@cypress/code-coverage": "3.9.12",
4
- "babel-loader": "8.2.3",
4
+ "babel-loader": "8.2.4",
5
5
  "babel-plugin-istanbul": "6.1.1",
6
- "cypress": "9.5.0",
7
- "eslint-plugin-cypress": "2.12.1",
6
+ "cypress": "9.5.3",
8
7
  "cypress-audit": "1.1.0",
9
- "lighthouse": "9.4.0",
10
- "nyc": "15.1.0"
8
+ "eslint-plugin-cypress": "2.12.1",
9
+ "lighthouse": "9.5.0",
10
+ "nyc": "15.1.0",
11
+ "swagger-ui-dist": "4.10.0"
11
12
  },
12
13
  "dependencies": {
13
- "dayjs": "1.10.7"
14
+ "dayjs": "1.11.0"
14
15
  }
15
16
  }
@@ -34,6 +34,8 @@ module.exports = ({ serve }) => {
34
34
  return {
35
35
  optimization: {
36
36
  moduleIds: 'named',
37
+ chunkIds: 'named',
38
+ runtimeChunk: false,
37
39
  },
38
40
  plugins: [
39
41
  new ModuleFederationPlugin({
@@ -49,8 +51,5 @@ module.exports = ({ serve }) => {
49
51
  output: {
50
52
  publicPath: 'auto',
51
53
  },
52
- optimization: {
53
- runtimeChunk: false,
54
- },
55
54
  };
56
55
  };
@@ -34,7 +34,7 @@
34
34
  "ecmaFeatures": {
35
35
  "jsx": true
36
36
  },
37
- "project": "./<% if (protractorTests) { %>tsconfig.e2e.json<% } else { %>tsconfig.json<% } %>"
37
+ "project": "./<% if (protractorTests) { %>tsconfig.e2e.json<% } else { %>tsconfig.test.json<% } %>"
38
38
  },
39
39
  "settings": {
40
40
  "react": {
@@ -1,4 +1,4 @@
1
- const tsconfig = require('./tsconfig.json');
1
+ const tsconfig = require('./tsconfig.test.json');
2
2
 
3
3
  module.exports = {
4
4
  testEnvironment: 'jsdom',
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "dependencies": {
3
- "@fortawesome/fontawesome-svg-core": "1.3.0",
4
- "@fortawesome/free-solid-svg-icons": "6.0.0",
5
- "@fortawesome/react-fontawesome": "0.1.17",
6
- "@reduxjs/toolkit": "1.7.2",
7
- "axios": "0.26.0",
3
+ "@fortawesome/fontawesome-svg-core": "6.1.1",
4
+ "@fortawesome/free-solid-svg-icons": "6.1.1",
5
+ "@fortawesome/react-fontawesome": "0.1.18",
6
+ "@reduxjs/toolkit": "1.8.1",
7
+ "axios": "0.26.1",
8
8
  "bootstrap": "5.1.3",
9
9
  "bootswatch": "5.1.3",
10
10
  "lodash": "4.17.21",
11
11
  "path-browserify": "1.0.1",
12
12
  "react": "17.0.2",
13
13
  "react-dom": "17.0.2",
14
- "react-hook-form": "7.27.1",
15
- "react-jhipster": "0.19.0",
14
+ "react-hook-form": "7.29.0",
15
+ "react-jhipster": "0.20.0",
16
16
  "react-loadable": "5.5.0",
17
- "react-redux": "7.2.6",
17
+ "react-redux": "7.2.7",
18
18
  "react-redux-loading-bar": "5.0.2",
19
19
  "react-router-dom": "5.3.0",
20
20
  "react-toastify": "8.2.0",
@@ -27,29 +27,29 @@
27
27
  "uuid": "8.3.2"
28
28
  },
29
29
  "devDependencies": {
30
- "@testing-library/react": "12.1.3",
30
+ "@testing-library/react": "12.1.4",
31
31
  "@types/jest": "27.4.1",
32
- "@types/lodash": "4.14.178",
32
+ "@types/lodash": "4.14.181",
33
33
  "@types/node": "16.11.26",
34
- "@types/react": "17.0.39",
35
- "@types/react-dom": "17.0.11",
36
- "@types/react-redux": "7.1.22",
34
+ "@types/react": "17.0.43",
35
+ "@types/react-dom": "17.0.14",
36
+ "@types/react-redux": "7.1.23",
37
37
  "@types/react-router-dom": "5.3.3",
38
38
  "@types/redux": "3.6.31",
39
39
  "@types/webpack-env": "1.16.3",
40
- "@typescript-eslint/eslint-plugin": "5.12.1",
41
- "@typescript-eslint/parser": "5.12.1",
42
- "autoprefixer": "10.4.2",
43
- "browser-sync": "2.27.7",
40
+ "@typescript-eslint/eslint-plugin": "5.17.0",
41
+ "@typescript-eslint/parser": "5.17.0",
42
+ "autoprefixer": "10.4.4",
43
+ "browser-sync": "2.27.9",
44
44
  "browser-sync-webpack-plugin": "2.3.0",
45
45
  "copy-webpack-plugin": "10.2.4",
46
46
  "core-js": "3.21.1",
47
47
  "cross-env": "7.0.3",
48
- "css-loader": "6.6.0",
48
+ "css-loader": "6.7.1",
49
49
  "css-minimizer-webpack-plugin": "3.4.1",
50
- "eslint": "8.9.0",
51
- "eslint-config-prettier": "8.4.0",
52
- "eslint-plugin-react": "7.28.0",
50
+ "eslint": "8.12.0",
51
+ "eslint-config-prettier": "8.5.0",
52
+ "eslint-plugin-react": "7.29.4",
53
53
  "eslint-webpack-plugin": "3.1.1",
54
54
  "folder-hash": "4.0.2",
55
55
  "fork-ts-checker-webpack-plugin": "7.2.1",
@@ -60,30 +60,29 @@
60
60
  "jest-sonar-reporter": "2.0.0",
61
61
  "json-loader": "0.5.7",
62
62
  "merge-jsons-webpack-plugin": "2.0.1",
63
- "mini-css-extract-plugin": "2.5.3",
63
+ "mini-css-extract-plugin": "2.6.0",
64
64
  "postcss-loader": "6.2.1",
65
- "postcss-rtlcss": "3.5.2",
65
+ "postcss-rtlcss": "3.5.4",
66
66
  "react-infinite-scroll-component": "6.1.0",
67
67
  "redux-mock-store": "1.5.4",
68
68
  "rimraf": "3.0.2",
69
- "sass": "1.49.9",
69
+ "sass": "1.49.10",
70
70
  "sass-loader": "12.6.0",
71
71
  "simple-progress-webpack-plugin": "2.0.0",
72
72
  "sinon": "13.0.1",
73
73
  "source-map-loader": "3.0.1",
74
74
  "sourcemap-istanbul-instrumenter-loader": "0.2.0",
75
75
  "style-loader": "3.3.1",
76
- "swagger-ui-dist": "4.5.2",
77
76
  "terser-webpack-plugin": "5.3.1",
78
77
  "thread-loader": "3.0.4",
79
- "ts-jest": "27.1.3",
80
- "ts-loader": "9.2.6",
81
- "typescript": "4.5.5",
82
- "webpack": "5.69.1",
78
+ "ts-jest": "27.1.4",
79
+ "ts-loader": "9.2.8",
80
+ "typescript": "4.6.3",
81
+ "webpack": "5.70.0",
83
82
  "webpack-cli": "4.9.2",
84
83
  "webpack-dev-server": "4.7.4",
85
84
  "webpack-merge": "5.8.0",
86
85
  "webpack-notifier": "1.15.0",
87
- "workbox-webpack-plugin": "6.5.0"
86
+ "workbox-webpack-plugin": "6.5.2"
88
87
  }
89
- }
88
+ }
@@ -212,6 +212,7 @@
212
212
  "test": "<%= clientPackageManager %> run jest --",
213
213
  "test-ci": "<%= clientPackageManager %> run lint && <%= clientPackageManager %> run jest:update --",
214
214
  "test:watch": "<%= clientPackageManager %> run jest -- --watch",
215
+ "watch": "concurrently 'npm run start' npm:backend:start",
215
216
  "webapp:build": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:dev --",
216
217
  "webapp:build:dev": "webpack --config webpack/webpack.dev.js --env stats=minimal",
217
218
  "webapp:build:prod": "webpack --config webpack/webpack.prod.js --progress=profile",
@@ -21,7 +21,7 @@
21
21
  @import "~bootswatch/dist/<%= clientTheme %>/variables";
22
22
  <%_ } _%>
23
23
  // Import Bootstrap source files from node_modules
24
- @import "node_modules/bootstrap/scss/bootstrap";
24
+ @import "~bootstrap/scss/bootstrap";
25
25
  <%_ if (!clientThemeNone) { _%>
26
26
  @import "~bootswatch/dist/<%= clientTheme %>/bootswatch";
27
27
  <%_ } _%>