generator-jhipster 7.2.0 → 7.4.1

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 (313) hide show
  1. package/cli/environment-builder.js +1 -0
  2. package/cli/import-jdl.js +3 -2
  3. package/cli/jdl.js +1 -0
  4. package/cli/jhipster-command.js +2 -2
  5. package/cli/program.js +32 -29
  6. package/generators/app/index.js +35 -26
  7. package/generators/aws/index.js +8 -8
  8. package/generators/aws/lib/eb.js +1 -1
  9. package/generators/azure-app-service/index.js +16 -9
  10. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
  11. package/generators/azure-spring-cloud/index.js +16 -9
  12. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
  13. package/generators/bootstrap/index.js +57 -61
  14. package/generators/ci-cd/index.js +11 -8
  15. package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
  16. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  17. package/generators/client/__workflow/devserver-angular.json +1 -1
  18. package/generators/client/__workflow/devserver-react.json +1 -1
  19. package/generators/client/__workflow/devserver-vue.json +1 -1
  20. package/generators/client/files-angular.js +6 -0
  21. package/generators/client/files-common.js +6 -2
  22. package/generators/client/files-react.js +13 -2
  23. package/generators/client/files-vue.js +56 -6
  24. package/generators/client/index.js +114 -32
  25. package/generators/client/needle-api/needle-client-angular.js +1 -1
  26. package/generators/client/needle-api/needle-client-vue.js +57 -7
  27. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  28. package/generators/client/templates/angular/package.json +19 -19
  29. package/generators/client/templates/angular/package.json.ejs +2 -1
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  31. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  33. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
  34. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  38. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  39. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
  40. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  41. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  42. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  58. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -0
  59. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +178 -180
  60. package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
  61. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
  62. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
  63. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  64. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
  65. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  66. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
  67. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  68. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  69. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +2 -3
  70. package/generators/client/templates/common/README.md.jhi.client.ejs +34 -0
  71. package/generators/client/templates/common/package.json +7 -7
  72. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  73. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  74. package/generators/client/templates/react/package.json +57 -56
  75. package/generators/client/templates/react/package.json.ejs +5 -2
  76. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  77. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  78. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
  79. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  80. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  81. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  82. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  83. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  84. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  85. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  86. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  87. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -1
  88. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
  89. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  90. package/generators/client/templates/vue/package.json +40 -49
  91. package/generators/client/templates/vue/package.json.ejs +14 -18
  92. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +6 -5
  93. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  94. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  95. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  96. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  97. package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
  98. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
  99. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
  100. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +5 -0
  101. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
  102. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
  103. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  104. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  105. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  106. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  107. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +14 -0
  108. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  109. package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
  110. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
  111. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +23 -11
  112. package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
  113. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
  114. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
  115. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
  116. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
  117. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
  118. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
  119. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
  120. package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
  121. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
  122. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
  123. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
  124. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +5 -1
  125. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
  126. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +5 -1
  127. package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
  128. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  129. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  130. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  131. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  132. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
  133. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
  134. package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
  135. package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
  136. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  137. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  138. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +152 -126
  139. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
  140. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  141. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
  142. package/generators/cloudfoundry/index.js +9 -9
  143. package/generators/common/index.js +12 -10
  144. package/generators/common/templates/.husky/pre-commit +1 -1
  145. package/generators/common/templates/.prettierrc.ejs +1 -1
  146. package/generators/common/templates/README.md.jhi.ejs +21 -0
  147. package/generators/common/templates/package.json +4 -4
  148. package/generators/cypress/index.js +12 -9
  149. package/generators/cypress/templates/cypress.json.ejs +9 -2
  150. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
  151. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
  152. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  153. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
  154. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  155. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  156. package/generators/database-changelog/index.js +33 -22
  157. package/generators/database-changelog-liquibase/index.js +12 -8
  158. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
  159. package/generators/docker-compose/index.js +11 -12
  160. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +13 -12
  161. package/generators/entities/index.js +35 -26
  162. package/generators/entities-client/index.js +10 -7
  163. package/generators/entity/index.js +49 -29
  164. package/generators/entity-client/files.js +7 -16
  165. package/generators/entity-client/index.js +74 -11
  166. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  167. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
  168. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -1
  169. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
  170. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +8 -1
  171. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
  172. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  173. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
  174. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
  175. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
  176. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
  177. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +269 -109
  178. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
  179. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
  180. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
  181. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
  182. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -8
  183. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  184. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
  185. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  186. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  187. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
  188. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +8 -1
  189. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +8 -2
  190. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  191. package/generators/entity-i18n/index.js +7 -4
  192. package/generators/entity-server/files-couchbase.js +2 -2
  193. package/generators/entity-server/files.js +35 -30
  194. package/generators/entity-server/index.js +12 -8
  195. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
  196. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +1 -1
  197. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +6 -2
  198. package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +1 -1
  199. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +2 -2
  200. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
  201. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +5 -5
  202. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  203. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  204. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +2 -2
  205. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +8 -8
  206. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
  207. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +4 -4
  208. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +7 -3
  209. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +8 -8
  210. package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
  211. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
  212. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +51 -53
  213. package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
  214. package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
  215. package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
  216. package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
  217. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +17 -14
  218. package/generators/gae/index.js +10 -10
  219. package/generators/generator-base-blueprint.js +14 -46
  220. package/generators/generator-base-private.js +42 -22
  221. package/generators/generator-base.js +57 -20
  222. package/generators/generator-constants.js +29 -21
  223. package/generators/generator-transforms.js +39 -27
  224. package/generators/heroku/index.js +27 -48
  225. package/generators/init/constants.cjs +1 -1
  226. package/generators/init/templates/.husky/pre-commit +1 -1
  227. package/generators/java/constants.cjs +1 -1
  228. package/generators/kubernetes/files.js +3 -0
  229. package/generators/kubernetes/index.js +10 -10
  230. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
  231. package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
  232. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  233. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  234. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  235. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  236. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  237. package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
  238. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  239. package/generators/kubernetes-base.js +1 -0
  240. package/generators/kubernetes-helm/files.js +3 -8
  241. package/generators/kubernetes-helm/index.js +10 -10
  242. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
  243. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
  244. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
  245. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +7 -2
  246. package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
  247. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
  248. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +2 -2
  249. package/generators/kubernetes-knative/index.js +10 -10
  250. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
  251. package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
  252. package/generators/languages/index.js +13 -13
  253. package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
  254. package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
  255. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  256. package/generators/openapi-client/index.js +13 -10
  257. package/generators/openshift/index.js +10 -11
  258. package/generators/openshift/templates/deployment.yml.ejs +1 -1
  259. package/generators/page/index.js +12 -10
  260. package/generators/server/__snapshots__/generator.spec.mjs.snap +12 -0
  261. package/generators/server/files-sql.js +52 -0
  262. package/generators/server/files.js +15 -0
  263. package/generators/server/index.js +100 -33
  264. package/generators/server/needle-api/needle-server-cache.js +4 -6
  265. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  266. package/generators/server/templates/build.gradle.ejs +17 -1
  267. package/generators/server/templates/gradle.properties.ejs +11 -11
  268. package/generators/server/templates/npmw +1 -1
  269. package/generators/server/templates/npmw.cmd +1 -1
  270. package/generators/server/templates/pom.xml.ejs +128 -9
  271. package/generators/server/templates/settings.gradle.ejs +9 -0
  272. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  273. package/generators/server/templates/src/main/docker/app.yml.ejs +2 -1
  274. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +13 -12
  275. package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
  276. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +0 -6
  277. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +2 -2
  278. package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +1 -1
  279. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +0 -2
  280. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +2 -5
  281. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +9 -1
  282. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -1
  283. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  284. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -23
  285. package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +0 -2
  286. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +29 -4
  287. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +21 -9
  288. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +13 -5
  289. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  290. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +1 -1
  291. package/generators/server/templates/src/main/resources/config/application.yml.ejs +7 -7
  292. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  293. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  294. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
  295. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  296. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  297. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
  298. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
  299. package/generators/spring-controller/index.js +9 -7
  300. package/generators/spring-service/index.js +10 -7
  301. package/generators/upgrade/index.js +4 -5
  302. package/generators/utils.js +2 -2
  303. package/generators/workspaces/index.js +16 -7
  304. package/jdl/jhipster/default-application-options.js +9 -7
  305. package/package.json +23 -23
  306. package/utils/entity.js +21 -4
  307. package/utils/field.js +12 -2
  308. package/utils/multi-step-transform/index.js +8 -8
  309. package/generators/client/templates/react/.npmrc.ejs +0 -1
  310. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
  311. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  312. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  313. package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -15
@@ -5,14 +5,17 @@ import { shallowMount, createLocalVue, Wrapper } from '@vue/test-utils';
5
5
  import axios from 'axios';
6
6
  import sinon from 'sinon';
7
7
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
8
+ import { ToastPlugin } from 'bootstrap-vue';
8
9
 
9
10
  import * as config from '@/shared/config/config';
10
11
  import UserManagement from '@/admin/user-management/user-management.vue';
11
12
  import UserManagementClass from '@/admin/user-management/user-management.component';
12
13
  import UserManagementService from '@/admin/user-management/user-management.service';
14
+ import AlertService from '@/shared/alert/alert.service';
13
15
 
14
16
  const localVue = createLocalVue();
15
17
 
18
+ localVue.use(ToastPlugin);
16
19
  config.initVueApp(localVue);
17
20
  <%_ if (enableTranslation) { _%>
18
21
  const i18n = config.initI18N(localVue);
@@ -57,7 +60,8 @@ describe('UserManagement Component', () => {
57
60
  bModal: true
58
61
  },
59
62
  provide: {
60
- userService: () => new UserManagementService()
63
+ userService: () => new UserManagementService(),
64
+ alertService: () => new AlertService(),
61
65
  }
62
66
  });
63
67
  userManagement = wrapper.vm;
@@ -94,15 +94,21 @@ let wrapper: Wrapper<JhiNavbarClass>;
94
94
  expect(accountService.hasAnyAuthorityAndCheckAuth).toHaveBeenCalled();
95
95
  });
96
96
 
97
- it('logout should clear credentials', () => {
97
+ it('logout should clear credentials', async () => {
98
98
  store.commit('authenticated', { login: 'test' });
99
- <%_ if (!authenticationTypeJwt) { _%>
100
- loginService.logout.mockReturnValue(Promise.resolve());
99
+ <%_ if (authenticationTypeOauth2) { _%>
100
+ const logoutUrl = '/to-match';
101
+ loginService.logout.mockReturnValue(Promise.resolve({ data: { logoutUrl } }));
102
+ <%_ } else if (!authenticationTypeJwt) { _%>
103
+ loginService.logout.mockReturnValue(Promise.resolve({}));
101
104
  <%_ } _%>
102
- jhiNavbar.logout();
105
+ await jhiNavbar.logout();
103
106
 
104
107
  <%_ if (!authenticationTypeJwt) { _%>
105
108
  expect(loginService.logout).toHaveBeenCalled();
109
+ <%_ if (authenticationTypeOauth2) { _%>
110
+ expect(router.currentRoute.path).toBe(logoutUrl);
111
+ <%_ } _%>
106
112
  <%_ } else { _%>
107
113
  expect(jhiNavbar.authenticated).toBeFalsy();
108
114
  <%_ } _%>
@@ -0,0 +1,52 @@
1
+ import { createLocalVue, shallowMount, Wrapper } from '@vue/test-utils';
2
+ import EntitiesMenu from '@/entities/entities-menu.vue';
3
+ import EntitiesMenuClass from '@/entities/entities-menu.component';
4
+ import * as config from '@/shared/config/config';
5
+
6
+ const localVue = createLocalVue();
7
+ config.initVueApp(localVue);
8
+ const i18n = config.initI18N(localVue);
9
+ localVue.component('b-dropdown-item', {});
10
+ localVue.component('font-awesome-icon', {});
11
+
12
+ describe('EntitiesMenu', () => {
13
+ let translationService;
14
+
15
+ beforeEach(() => {
16
+ translationService = { loadTranslations: jest.fn() };
17
+ });
18
+
19
+ describe('using microfrontendI18n', () => {
20
+ beforeEach(() => {
21
+ shallowMount<EntitiesMenuClass>(EntitiesMenu, {
22
+ i18n,
23
+ localVue,
24
+ provide: {
25
+ translationService: () => translationService,
26
+ microfrontendI18n: true,
27
+ },
28
+ });
29
+ });
30
+
31
+ it('should load translations', () => {
32
+ expect(translationService.loadTranslations).toHaveBeenCalled();
33
+ });
34
+ });
35
+
36
+ describe('not using microfrontendI18n', () => {
37
+ beforeEach(() => {
38
+ shallowMount<EntitiesMenuClass>(EntitiesMenu, {
39
+ i18n,
40
+ localVue,
41
+ provide: {
42
+ translationService: () => translationService,
43
+ microfrontendI18n: false,
44
+ },
45
+ });
46
+ });
47
+
48
+ it('should not load translations', () => {
49
+ expect(translationService.loadTranslations).not.toHaveBeenCalled();
50
+ });
51
+ });
52
+ });
@@ -0,0 +1,4 @@
1
+ import { Component, Vue } from 'vue-property-decorator';
2
+
3
+ @Component
4
+ export default class EntitiesMenu extends Vue {}
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <div>
3
+ <!-- jhipster-needle-add-entity-to-menu - JHipster will add entities to the menu here -->
4
+ </div>
5
+ </template>
6
+
7
+ <script lang="ts" src="./entities-menu.component.ts"></script>
@@ -0,0 +1,124 @@
1
+ import sinon from 'sinon';
2
+
3
+ import AlertService from '@/shared/alert/alert.service';
4
+ import Vue from 'vue';
5
+ import { createLocalVue, mount, shallowMount } from '@vue/test-utils';
6
+ <%_ if (enableTranslation) { _%>
7
+ const translationStub = sinon.stub();
8
+ <%_ } _%>
9
+ const toastStub = sinon.stub();
10
+
11
+ const vueInstance = {
12
+ <% if (enableTranslation) { %>$t: translationStub,<% } %>
13
+ $root: {
14
+ $bvToast: {
15
+ toast: toastStub,
16
+ },
17
+ },
18
+ };
19
+
20
+ describe('Alert Service test suite', () => {
21
+ let alertService: AlertService;
22
+
23
+ beforeEach(() => {
24
+ <%_ if (enableTranslation) { _%>
25
+ translationStub.reset();
26
+ <%_ } _%>
27
+ toastStub.reset();
28
+ alertService = new AlertService();
29
+ });
30
+
31
+ it('should show error toast with translation/message', async () => {
32
+ const message = 'translatedMessage';
33
+ <%_ if (enableTranslation) { _%>
34
+ const translationKey = 'err.code';
35
+
36
+ // GIVEN
37
+ translationStub.withArgs(translationKey).returns(message);
38
+ <%_ } _%>
39
+
40
+ // WHEN
41
+ alertService.showError((<any>vueInstance) as Vue, <% if (enableTranslation) { %>translationKey<%} else {%>message<% } %>);
42
+
43
+ //THEN
44
+ <%_ if (enableTranslation) { _%>
45
+ expect(translationStub.withArgs(translationKey).callCount).toEqual(1);
46
+ <%_ } _%>
47
+ expect(
48
+ toastStub.calledOnceWith(message, {
49
+ toaster: 'b-toaster-top-center',
50
+ title: 'Error',
51
+ variant: 'danger',
52
+ solid: true,
53
+ autoHideDelay: 5000,
54
+ })
55
+ ).toBeTruthy();
56
+ });
57
+
58
+ it('should show not reachable toast when http status = 0', async () => {
59
+ <%_ if (enableTranslation) { _%>
60
+ const translationKey = 'error.server.not.reachable';
61
+ <%_ } _%>
62
+ const message = 'Server not reachable';
63
+ const httpErrorResponse = {
64
+ status: 0,
65
+ };
66
+ <%_ if (enableTranslation) { _%>
67
+ // GIVEN
68
+ translationStub.withArgs(translationKey).returns(message);
69
+ <%_ } _%>
70
+
71
+ // WHEN
72
+ alertService.showHttpError((<any>vueInstance) as Vue, httpErrorResponse);
73
+
74
+ //THEN
75
+ <%_ if (enableTranslation) { _%>
76
+ expect(translationStub.withArgs(translationKey).callCount).toEqual(1);
77
+ <%_ } _%>
78
+ expect(
79
+ toastStub.calledOnceWith(message, {
80
+ toaster: 'b-toaster-top-center',
81
+ title: 'Error',
82
+ variant: 'danger',
83
+ solid: true,
84
+ autoHideDelay: 5000,
85
+ })
86
+ ).toBeTruthy();
87
+ });
88
+
89
+ it('should show parameterized error toast when http status = 400 and entity headers', async () => {
90
+ <%_ if (enableTranslation) { _%>
91
+ const translationKey = 'error.update';
92
+ <%_ } _%>
93
+ const message = 'Updation Error';
94
+ const httpErrorResponse = {
95
+ status: 400,
96
+ headers: {
97
+ 'x-jhipsterapp-error': <% if (enableTranslation) { %>translationKey<% } else {%>message<% } %>,
98
+ 'x-jhipsterapp-params': 'dummyEntity',
99
+ },
100
+ };
101
+ <%_ if (enableTranslation) { _%>
102
+ // GIVEN
103
+ translationStub.withArgs(translationKey).returns(message);
104
+ translationStub.withArgs('global.menu.entities.dummyEntity').returns('DummyEntity');
105
+ <%_ } _%>
106
+
107
+ // WHEN
108
+ alertService.showHttpError((<any>vueInstance) as Vue, httpErrorResponse);
109
+
110
+ //THEN
111
+ <%_ if (enableTranslation) { _%>
112
+ expect(translationStub.withArgs(translationKey, { entityName: 'DummyEntity' }).callCount).toEqual(1);
113
+ <%_ } _%>
114
+ expect(
115
+ toastStub.calledOnceWith(message, {
116
+ toaster: 'b-toaster-top-center',
117
+ title: 'Error',
118
+ variant: 'danger',
119
+ solid: true,
120
+ autoHideDelay: 5000,
121
+ })
122
+ ).toBeTruthy();
123
+ });
124
+ });
@@ -1,5 +1,4 @@
1
1
  import * as setupAxiosConfig from '@/shared/config/axios-interceptor';
2
- import { SERVER_API_URL } from '@/constants';
3
2
  import * as sinon from 'sinon';
4
3
  import axios from 'axios';
5
4
  import MockAdapter from "axios-mock-adapter";
@@ -1,5 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
+ "baseUrl": "<%= CLIENT_MAIN_SRC_DIR %>app",
4
+ "outDir": "<%= BUILD_DIR %>out-tsc/dist",
3
5
  "target": "es5",
4
6
  "esModuleInterop": true,
5
7
  "allowSyntheticDefaultImports": true,
@@ -8,25 +10,19 @@
8
10
  "sourceMap": true,
9
11
  "emitDecoratorMetadata": true,
10
12
  "experimentalDecorators": true,
11
- "removeComments": false,
12
- "noImplicitAny": false,
13
- "skipLibCheck": true,
14
- "suppressImplicitAnyIndexErrors": true,
15
- "outDir": "<%= DIST_DIR %>app",
16
13
  "lib": ["es7", "dom"],
17
14
  "typeRoots": [
18
15
  "node_modules/@types"
19
16
  ],
20
- "baseUrl": "./",
21
17
  "paths": {
22
- "@/*": ["<%= CLIENT_MAIN_SRC_DIR %>app/*"]
18
+ "@/*": ["*"]
23
19
  },
20
+ types: ["node"],
24
21
  "importHelpers": false,
25
22
  "allowJs": true
26
23
  },
27
24
  "include": [
28
- "<%= CLIENT_MAIN_SRC_DIR %>app",
29
- "<%= CLIENT_TEST_SRC_DIR %>spec"
25
+ "<%= CLIENT_MAIN_SRC_DIR %>app"
30
26
  ],
31
- "exclude": ["node_modules"<% if (!cypressTests) { %>,"<%= CLIENT_TEST_SRC_DIR %>cypress"<% } %>]
27
+ "exclude": ["node_modules"<% if (cypressTests) { %>,"<%= CLIENT_TEST_SRC_DIR %>cypress"<% } %>]
32
28
  }
@@ -0,0 +1,37 @@
1
+ <%#
2
+ Copyright 2013-2021 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ {
20
+ "extends": "./tsconfig",
21
+ "compilerOptions": {
22
+ "outDir": "<%= BUILD_DIR %>out-tsc/spec",
23
+ <%_ if (microfrontend && applicationTypeGateway) { _%>
24
+ "paths": {
25
+ <%_ for (const remote of microfrontends) { _%>
26
+ "@<%= remote.lowercaseBaseName %>/*": ["<%= CLIENT_TEST_SRC_DIR %>spec/app/microfrontends/*"],
27
+ <%_ } _%>
28
+ "@/*": ["*"]
29
+ },
30
+ <%_ } _%>
31
+ "types": ["jest", "node"]
32
+ },
33
+ "include": [
34
+ "<%= CLIENT_MAIN_SRC_DIR %>app/**/*",
35
+ "<%= CLIENT_TEST_SRC_DIR %>spec/**/*"
36
+ ]
37
+ }
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ const path = require('path');
4
+
5
+ <%_ if (buildToolUnknown) { _%>
6
+ const packageJson = require('./../package.json');
7
+ <%_ } _%>
8
+
9
+ module.exports = {
10
+ serverApiUrl: '',
11
+ <%_ if (buildToolUnknown) { _%>
12
+ version: packageJson.version,
13
+ <%_ } else { _%>
14
+ // APP_VERSION is passed as an environment variable from the Gradle / Maven build tasks.
15
+ version: process.env.hasOwnProperty('APP_VERSION') ? process.env.APP_VERSION : 'UNKNOWN',
16
+ <%_ } _%>
17
+
18
+ dev: {
19
+ hotReload: <%= !microfrontend %>,
20
+
21
+ // https://webpack.js.org/configuration/devtool/#development
22
+ devtool: 'cheap-module-source-map',
23
+
24
+ // If you have problems debugging vue-files in devtools,
25
+ // set this to false - it *may* help
26
+ // https://vue-loader.vuejs.org/en/options.html#cachebusting
27
+ cacheBusting: true,
28
+
29
+ cssSourceMap: true
30
+ },
31
+
32
+ build: {
33
+ productionSourceMap: true,
34
+ // https://webpack.js.org/configuration/devtool/#production
35
+ devtool: 'source-map',
36
+
37
+ // Gzip off by default as many popular static hosts such as
38
+ // Surge or Netlify already gzip all static assets for you.
39
+ // Before setting to `true`, make sure to:
40
+ // npm install --save-dev compression-webpack-plugin
41
+ productionGzip: false,
42
+ productionGzipExtensions: ['js', 'css'],
43
+
44
+ // Run the build command with an extra argument to
45
+ // View the bundle analyzer report after build finishes:
46
+ // `npm run build --report`
47
+ // Set to `true` or `false` to always turn it on or off
48
+ bundleAnalyzerReport: process.env.npm_config_report
49
+ }
50
+ };
@@ -1,17 +1,14 @@
1
1
  'use strict';
2
2
  const path = require('path');
3
- const config = require('./env');
4
3
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
- const packageConfig = require('../package.json');
6
4
  const sass = require('sass');
7
5
 
8
- exports.assetsPath = function(_path) {
9
- const assetsSubDirectory = process.env.NODE_ENV === 'production' ? config.build.assetsSubDirectory : config.dev.assetsSubDirectory;
6
+ const packageConfig = require('../package.json');
7
+ const config = require('./config');
10
8
 
11
- return path.posix.join(assetsSubDirectory, _path);
12
- };
9
+ const sourceMapEnabled = production => (production ? config.build.productionSourceMap : config.dev.cssSourceMap);
13
10
 
14
- exports.cssLoaders = function(options) {
11
+ const cssLoaders = options => {
15
12
  options = options || {};
16
13
 
17
14
  const cssLoader = {
@@ -19,14 +16,14 @@ exports.cssLoaders = function(options) {
19
16
  options: {
20
17
  sourceMap: options.sourceMap,
21
18
  esModule: false,
22
- }
19
+ },
23
20
  };
24
21
 
25
22
  const postcssLoader = {
26
23
  loader: 'postcss-loader',
27
24
  options: {
28
- sourceMap: options.sourceMap
29
- }
25
+ sourceMap: options.sourceMap,
26
+ },
30
27
  };
31
28
 
32
29
  // generate loader string to be used with extract text plugin
@@ -37,8 +34,8 @@ exports.cssLoaders = function(options) {
37
34
  loaders.push({
38
35
  loader: loader + '-loader',
39
36
  options: Object.assign({}, loaderOptions, {
40
- sourceMap: options.sourceMap
41
- })
37
+ sourceMap: options.sourceMap,
38
+ }),
42
39
  });
43
40
  }
44
41
 
@@ -55,40 +52,44 @@ exports.cssLoaders = function(options) {
55
52
  sass: generateLoaders('sass', { indentedSyntax: true, implementation: sass }),
56
53
  scss: generateLoaders('sass', { implementation: sass }),
57
54
  stylus: generateLoaders('stylus'),
58
- styl: generateLoaders('stylus')
55
+ styl: generateLoaders('stylus'),
59
56
  };
60
57
  };
61
58
 
62
59
  // Generate loaders for standalone style files (outside of .vue)
63
- exports.styleLoaders = function(options) {
60
+ const styleLoaders = options => {
64
61
  const output = [];
65
- const loaders = exports.cssLoaders(options);
62
+ const loaders = cssLoaders(options);
66
63
 
67
64
  for (const extension in loaders) {
68
65
  const loader = loaders[extension];
69
66
  output.push({
70
67
  test: new RegExp('\\.' + extension + '$'),
71
- use: loader
68
+ use: loader,
72
69
  });
73
70
  }
74
71
 
75
72
  return output;
76
73
  };
77
74
 
78
- exports.createNotifierCallback = () => {
79
- const notifier = require('node-notifier');
80
-
81
- return (severity, errors) => {
82
- if (severity !== 'error') return;
83
-
84
- const error = errors[0];
85
- const filename = error.file && error.file.split('!').pop();
86
-
87
- notifier.notify({
88
- title: packageConfig.name,
89
- message: severity + ': ' + error.name,
90
- subtitle: filename || '',
91
- icon: path.join(__dirname, 'logo.png')
92
- });
93
- };
75
+ const vueLoaderConfig = production => ({
76
+ loaders: cssLoaders({
77
+ sourceMap: sourceMapEnabled(production),
78
+ extract: production,
79
+ }),
80
+ cssSourceMap: sourceMapEnabled(production),
81
+ cacheBusting: config.dev.cacheBusting,
82
+ transformToRequire: {
83
+ video: ['src', 'poster'],
84
+ source: 'src',
85
+ img: 'src',
86
+ image: 'xlink:href',
87
+ },
88
+ hotReload: config.dev.hotReload,
89
+ });
90
+
91
+ module.exports = {
92
+ cssLoaders,
93
+ styleLoaders,
94
+ vueLoaderConfig,
94
95
  };