generator-jhipster 8.9.0 → 8.11.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.
- package/README.md +1 -1
- package/dist/cli/cli.mjs +0 -13
- package/dist/cli/download.mjs +2 -3
- package/dist/cli/environment-builder.mjs +5 -3
- package/dist/generators/angular/generator.d.ts +10 -1
- package/dist/generators/angular/resources/package.json +27 -27
- package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
- package/dist/generators/angular/templates/eslint.config.js.jhi.angular.ejs +4 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +6 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +8 -13
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -3
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +1 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +0 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +8 -6
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +8 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +3 -3
- package/dist/generators/app/generator.d.ts +4 -1
- package/dist/generators/base/api.d.ts +3 -1
- package/dist/generators/base/shared-data.js +1 -0
- package/dist/generators/base/support/contents.d.ts +10 -1
- package/dist/generators/base/support/contents.js +9 -0
- package/dist/generators/base/support/index.d.ts +1 -0
- package/dist/generators/base/support/index.js +1 -0
- package/dist/generators/base/support/needles.d.ts +14 -5
- package/dist/generators/base/support/needles.js +21 -17
- package/dist/generators/base/support/os.d.ts +1 -0
- package/dist/generators/base/support/os.js +20 -0
- package/dist/generators/base/support/write-files.d.ts +18 -0
- package/dist/generators/base/support/write-files.js +0 -26
- package/dist/generators/base-application/support/prepare-entity.js +14 -26
- package/dist/generators/base-application/support/update-application-entities-transform.js +3 -2
- package/dist/generators/base-application/types.d.ts +5 -0
- package/dist/generators/base-core/generator.js +7 -4
- package/dist/generators/bootstrap/generator.d.ts +6 -1
- package/dist/generators/bootstrap/generator.js +31 -2
- package/dist/generators/bootstrap/support/auto-crlf-transform.js +2 -2
- package/dist/generators/bootstrap/support/eslint-worker.js +5 -2
- package/dist/generators/bootstrap-application/generator.d.ts +4 -1
- package/dist/generators/bootstrap-application-base/generator.d.ts +12 -2
- package/dist/generators/bootstrap-application-base/generator.js +4 -3
- package/dist/generators/bootstrap-application-client/generator.d.ts +3 -1
- package/dist/generators/bootstrap-application-server/generator.d.ts +8 -1
- package/dist/generators/bootstrap-workspaces/generator.d.ts +9 -1
- package/dist/generators/ci-cd/generator.d.ts +6 -1
- package/dist/generators/client/generator.d.ts +13 -1
- package/dist/generators/client/generators/common/generator.d.ts +1 -1
- package/dist/generators/client/resources/package.json +5 -5
- package/dist/generators/client/templates/src/main/webapp/swagger-ui/index.html.ejs +8 -6
- package/dist/generators/common/generator.d.ts +8 -1
- package/dist/generators/common/resources/package.json +2 -2
- package/dist/generators/cucumber/generator.d.ts +2 -1
- package/dist/generators/cypress/generator.d.ts +7 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +11 -3
- package/dist/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +4 -4
- package/dist/generators/docker/generator.d.ts +4 -1
- package/dist/generators/docker-compose/generator.d.ts +23 -1
- package/dist/generators/entities/generator.d.ts +4 -1
- package/dist/generators/entity/generator.d.ts +5 -1
- package/dist/generators/export-jdl/generator.d.ts +3 -1
- package/dist/generators/feign-client/generator.d.ts +2 -1
- package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +1 -1
- package/dist/generators/gatling/generator.d.ts +3 -1
- package/dist/generators/generate-blueprint/constants.d.ts +1 -1
- package/dist/generators/generate-blueprint/constants.js +1 -1
- package/dist/generators/generate-blueprint/files.js +2 -2
- package/dist/generators/generate-blueprint/generator.d.ts +10 -1
- package/dist/generators/generate-blueprint/generator.js +16 -16
- package/dist/generators/generate-blueprint/resources/package.json +3 -3
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +1 -1
- package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +1 -0
- package/dist/generators/generator-constants.d.ts +1 -1
- package/dist/generators/generator-constants.js +2 -2
- package/dist/generators/git/generator.d.ts +5 -1
- package/dist/generators/gradle/generator.d.ts +5 -1
- package/dist/generators/gradle/generators/code-quality/generator.d.ts +2 -1
- package/dist/generators/gradle/generators/jib/generator.d.ts +2 -1
- package/dist/generators/gradle/generators/node-gradle/generator.d.ts +2 -1
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/heroku/generator.d.ts +6 -1
- package/dist/generators/info/generator.d.ts +1 -1
- package/dist/generators/init/generator.d.ts +2 -1
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/java/generators/bootstrap/generator.d.ts +8 -2
- package/dist/generators/java/generators/bootstrap/generator.js +17 -3
- package/dist/generators/java/generators/build-tool/generator.d.ts +2 -1
- package/dist/generators/java/generators/code-quality/generator.d.ts +2 -1
- package/dist/generators/java/generators/domain/generator.d.ts +6 -1
- package/dist/generators/java/generators/graalvm/generator.d.ts +6 -1
- package/dist/generators/java/generators/graalvm/internal/constants.d.ts +1 -1
- package/dist/generators/java/generators/graalvm/internal/constants.js +2 -2
- package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/java/generators/jib/generator.d.ts +2 -1
- package/dist/generators/java/generators/node/generator.d.ts +4 -1
- package/dist/generators/java/generators/node/generator.js +2 -1
- package/dist/generators/java/generators/openapi-generator/generator.d.ts +2 -1
- package/dist/generators/java/generators/server/generator.d.ts +1 -1
- package/dist/generators/java/support/index.d.ts +2 -0
- package/dist/generators/java/support/index.js +2 -0
- package/dist/generators/java/support/java-enum.d.ts +8 -0
- package/dist/generators/java/support/java-enum.js +20 -0
- package/dist/generators/java/support/java-file-edit.d.ts +18 -0
- package/dist/generators/java/support/java-file-edit.js +94 -0
- package/dist/generators/java/types.d.ts +37 -1
- package/dist/generators/javascript/generators/bootstrap/generator.d.ts +4 -1
- package/dist/generators/javascript/generators/eslint/generator.d.ts +4 -1
- package/dist/generators/javascript/generators/eslint/templates/eslint.config.js.jhi.ejs +8 -0
- package/dist/generators/javascript/generators/husky/generator.d.ts +3 -1
- package/dist/generators/javascript/generators/prettier/generator.d.ts +4 -1
- package/dist/generators/javascript/resources/package.json +3 -3
- package/dist/generators/jdl/generator.d.ts +3 -1
- package/dist/generators/kubernetes/generator.d.ts +25 -19
- package/dist/generators/kubernetes-helm/generator.d.ts +18 -12
- package/dist/generators/kubernetes-knative/generator.d.ts +14 -8
- package/dist/generators/languages/generator.d.ts +9 -1
- package/dist/generators/languages/support/languages.js +1 -0
- package/dist/generators/languages/templates/entity/i18n/entity_he.json.ejs +78 -0
- package/dist/generators/languages/templates/src/main/resources/i18n/messages_he.properties.ejs +41 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/activate.json.ejs +27 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/configuration.json +11 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/error.json +15 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/gateway.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/global.json.ejs +172 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/health.json.ejs +75 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/home.json.ejs +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/login.json +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/logs.json +12 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/metrics.json +103 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/password.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/register.json +25 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/reset.json.ejs +45 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/sessions.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/settings.json +33 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/tracker.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/user-management.json +32 -0
- package/dist/generators/languages/templates/src/test/resources/i18n/messages_he.properties.ejs +4 -0
- package/dist/generators/liquibase/generator.d.ts +9 -1
- package/dist/generators/liquibase/generator.js +3 -19
- package/dist/generators/maven/generator.d.ts +6 -1
- package/dist/generators/maven/generators/code-quality/generator.d.ts +1 -1
- package/dist/generators/maven/generators/frontend-plugin/generator.d.ts +1 -1
- package/dist/generators/maven/generators/jib/generator.d.ts +1 -1
- package/dist/generators/project-name/generator.d.ts +3 -1
- package/dist/generators/react/generator.d.ts +15 -1
- package/dist/generators/react/resources/package.json +34 -34
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-delete-dialog.tsx.ejs +2 -1
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +4 -4
- package/dist/generators/react/templates/src/main/webapp/app/entities/menu.tsx.ejs +2 -2
- package/dist/generators/react/templates/src/main/webapp/app/entities/routes.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/application-profile.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +0 -47
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/entity-utils.ts.ejs +1 -1
- package/dist/generators/server/generator.d.ts +7 -1
- package/dist/generators/server/resources/Dockerfile +17 -17
- package/dist/generators/server/resources/gradle/libs.versions.toml +15 -15
- package/dist/generators/server/resources/pom.xml +16 -16
- package/dist/generators/server/types.d.ts +22 -0
- package/dist/generators/spring-boot/generator.d.ts +14 -2
- package/dist/generators/spring-boot/generator.js +35 -4
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +158 -148
- package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +11 -0
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +12 -23
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +61 -5
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +29 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +7 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +8 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +8 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +17 -11
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +8 -3
- package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +3 -0
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +3 -3
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +4 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +4 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +3 -3
- package/dist/generators/spring-boot/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs +0 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +2 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs +35 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs +35 -6
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs +3 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs +5 -5
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs +2 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs +1 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs +1 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +9 -15
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +8 -17
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs +6 -15
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
- package/dist/generators/spring-cache/cleanup.d.ts +2 -20
- package/dist/generators/spring-cache/cleanup.js +24 -2
- package/dist/generators/spring-cache/files.js +0 -6
- package/dist/generators/spring-cache/generator.d.ts +5 -1
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +0 -14
- package/dist/generators/spring-cloud/generators/gateway/generator.d.ts +5 -1
- package/dist/generators/spring-cloud-stream/generator.d.ts +2 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/generator.d.ts +2 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/pulsar/generator.d.ts +2 -1
- package/dist/generators/spring-data-cassandra/generator.d.ts +4 -1
- package/dist/generators/spring-data-couchbase/generator.d.ts +9 -1
- package/dist/generators/spring-data-elasticsearch/generator.d.ts +10 -1
- package/dist/generators/spring-data-mongodb/generator.d.ts +9 -1
- package/dist/generators/spring-data-neo4j/generator.d.ts +11 -1
- package/dist/generators/spring-data-relational/generator.d.ts +11 -1
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/timezone/HibernateTimeZoneIT.java.ejs +2 -2
- package/dist/generators/spring-websocket/generator.d.ts +2 -1
- package/dist/generators/upgrade/generator.d.ts +3 -1
- package/dist/generators/vue/cleanup.js +7 -1
- package/dist/generators/vue/files-vue.js +3 -8
- package/dist/generators/vue/generator.d.ts +9 -1
- package/dist/generators/vue/resources/package.json +31 -31
- package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +9 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +21 -7
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.spec.ts.ejs +22 -10
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +24 -5
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-modal.ts.ejs +38 -0
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.spec.ts.ejs +0 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.ts.ejs +3 -25
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +24 -8
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.spec.ts.ejs +20 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +23 -13
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/gateway/gateway.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +10 -10
- package/dist/generators/vue/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics-modal.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +6 -6
- package/dist/generators/vue/templates/src/main/webapp/app/app.component.ts.ejs +29 -7
- package/dist/generators/vue/templates/src/main/webapp/app/app.vue.ejs +19 -1
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.spec.ts.ejs +66 -51
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.ts.ejs +30 -8
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.spec.ts.ejs +41 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.ts.ejs +10 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +43 -16
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +14 -9
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +7 -7
- package/dist/generators/vue/templates/src/main/webapp/app/entities/user/user.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/locale/translation.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +18 -14
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.ts.ejs +4 -4
- package/dist/generators/workspaces/generator.d.ts +7 -1
- package/dist/generators/workspaces/support/applications-lookup.js +2 -2
- package/dist/lib/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +1 -1
- package/dist/lib/jdl/core/built-in-options/binary-options.d.ts +12 -1
- package/dist/lib/testing/apply-patch-to-template.d.ts +13 -0
- package/dist/lib/testing/apply-patch-to-template.js +90 -0
- package/dist/lib/testing/github.js +6 -3
- package/dist/lib/testing/helpers.d.ts +1 -0
- package/dist/lib/testing/helpers.js +15 -0
- package/dist/lib/utils/yo-rc.d.ts +3 -219
- package/package.json +36 -37
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +0 -49
|
@@ -2,7 +2,12 @@ import { computed, <% if (applicationTypeGateway && microfrontend) { %>defineAsy
|
|
|
2
2
|
<%_ if (enableTranslation) { _%>
|
|
3
3
|
import { useI18n } from 'vue-i18n';
|
|
4
4
|
<%_ } _%>
|
|
5
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
5
6
|
import type LoginService from '@/account/login.service';
|
|
7
|
+
<%_ } %>
|
|
8
|
+
<%_ if (generateUserManagement) { %>
|
|
9
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
10
|
+
<%_ } _%>
|
|
6
11
|
import type AccountService from '@/account/account.service';
|
|
7
12
|
<%_ if (enableTranslation) { _%>
|
|
8
13
|
import languages from '@/shared/config/languages';
|
|
@@ -30,7 +35,15 @@ export default defineComponent({
|
|
|
30
35
|
<%_ } _%>
|
|
31
36
|
},
|
|
32
37
|
setup() {
|
|
38
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
33
39
|
const loginService = inject<LoginService>('loginService');
|
|
40
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
41
|
+
const { login } = loginService;
|
|
42
|
+
<%_ } %>
|
|
43
|
+
<%_ } %>
|
|
44
|
+
<%_ if (generateUserManagement) { %>
|
|
45
|
+
const { showLogin } = useLoginModal();
|
|
46
|
+
<%_ } _%>
|
|
34
47
|
const accountService = inject<AccountService>('accountService');
|
|
35
48
|
const currentLanguage = inject('currentLanguage', () => computed(() => navigator.language ?? '<%- nativeLanguage %>'), true);
|
|
36
49
|
<%_ if (enableTranslation) { _%>
|
|
@@ -51,14 +64,6 @@ export default defineComponent({
|
|
|
51
64
|
const inProduction = computed(() => store.activeProfiles.indexOf('prod') > -1);
|
|
52
65
|
const authenticated = computed(() => store.authenticated);
|
|
53
66
|
|
|
54
|
-
const openLogin = () => {
|
|
55
|
-
<%_ if (!authenticationTypeOauth2) { _%>
|
|
56
|
-
loginService.openLogin();
|
|
57
|
-
<%_ } else { %>
|
|
58
|
-
loginService.login();
|
|
59
|
-
<%_ } _%>
|
|
60
|
-
};
|
|
61
|
-
|
|
62
67
|
const subIsActive = (input: string | string[]) => {
|
|
63
68
|
const paths = Array.isArray(input) ? input : [input];
|
|
64
69
|
return paths.some(path => {
|
|
@@ -95,7 +100,7 @@ export default defineComponent({
|
|
|
95
100
|
logout,
|
|
96
101
|
subIsActive,
|
|
97
102
|
accountService,
|
|
98
|
-
|
|
103
|
+
<% if (authenticationTypeOauth2) { %>login<% } else { %>showLogin<% } %>,
|
|
99
104
|
<%_ if (enableTranslation) { _%>
|
|
100
105
|
changeLanguage,
|
|
101
106
|
languages: languages(),
|
package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs
CHANGED
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
<font-awesome-icon icon="sign-out-alt" />
|
|
153
153
|
<span v-text="t$('global.menu.account.logout')">Sign out</span>
|
|
154
154
|
</b-dropdown-item>
|
|
155
|
-
<b-dropdown-item data-cy="login" v-if="!authenticated" @click="
|
|
155
|
+
<b-dropdown-item data-cy="login" v-if="!authenticated" @click="showLogin()" id="login" active-class="active">
|
|
156
156
|
<font-awesome-icon icon="sign-in-alt" />
|
|
157
157
|
<span v-text="t$('global.menu.account.login')">Sign in</span>
|
|
158
158
|
</b-dropdown-item>
|
|
@@ -11,7 +11,7 @@ const baseSearchApiUrl = '<%= entityApi %>api/<%= entityApiUrl %>/_search?query=
|
|
|
11
11
|
|
|
12
12
|
export default class <%= entityAngularName %>Service {
|
|
13
13
|
<%_ if (searchEngineAny) { _%>
|
|
14
|
-
|
|
14
|
+
search(query<% if (!paginationNo) { %>, paginationQuery<% } %>) : Promise<any> {
|
|
15
15
|
return new Promise<any>((resolve, reject) => {
|
|
16
16
|
axios.get(`${baseSearchApiUrl}${query}<% if (!paginationNo) { %>&${buildPaginationQueryOpts(paginationQuery)}<% } %>`).then(res => {
|
|
17
17
|
resolve(<% if (!paginationNo) { %>res<% } else { %>res.data<% } %>);
|
|
@@ -20,7 +20,7 @@ export default class <%= entityAngularName %>Service {
|
|
|
20
20
|
}
|
|
21
21
|
<%_ } _%>
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
find(<%= primaryKey.name %>: <%- primaryKey.tsType %>) : Promise<I<%= entityAngularName %>> {
|
|
24
24
|
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
|
|
25
25
|
axios.get(`${baseApiUrl}/${<%= primaryKey.name %>}`).then(res => {
|
|
26
26
|
resolve(res.data);
|
|
@@ -28,7 +28,7 @@ export default class <%= entityAngularName %>Service {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
retrieve(<% if (!paginationNo) { %>paginationQuery?: any<% } %>) : Promise<any> {
|
|
32
32
|
return new Promise<any>((resolve, reject) => {
|
|
33
33
|
axios.get(baseApiUrl<% if (!paginationNo) { %> + `?${buildPaginationQueryOpts(paginationQuery)}` <% } %>).then(res => {
|
|
34
34
|
resolve(res);
|
|
@@ -37,7 +37,7 @@ export default class <%= entityAngularName %>Service {
|
|
|
37
37
|
}
|
|
38
38
|
<%_ if (!readOnly) { _%>
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
delete(<%= primaryKey.name %>: <%- primaryKey.tsType %>) : Promise<any> {
|
|
41
41
|
return new Promise<any>((resolve, reject) => {
|
|
42
42
|
axios.delete(`${baseApiUrl}/${<%= primaryKey.name %>}`).then(res => {
|
|
43
43
|
resolve(res);
|
|
@@ -45,7 +45,7 @@ export default class <%= entityAngularName %>Service {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
create(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
|
|
49
49
|
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
|
|
50
50
|
axios.post(`${baseApiUrl}`, entity).then(res => {
|
|
51
51
|
resolve(res.data);
|
|
@@ -53,7 +53,7 @@ export default class <%= entityAngularName %>Service {
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
update(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
|
|
57
57
|
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
|
|
58
58
|
axios.put(`${baseApiUrl}/${entity.<%= primaryKey.name %>}`, entity).then(res => {
|
|
59
59
|
resolve(res.data);
|
|
@@ -61,7 +61,7 @@ export default class <%= entityAngularName %>Service {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
partialUpdate(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
|
|
65
65
|
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
|
|
66
66
|
axios.patch(`${baseApiUrl}/${entity.<%= primaryKey.name %>}`, entity).then(res => {
|
|
67
67
|
resolve(res.data);
|
|
@@ -12,7 +12,7 @@ export default class TranslationService {
|
|
|
12
12
|
}
|
|
13
13
|
<%_ if (microfrontend) { _%>
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
loadTranslations({ currentLanguage, urlPrefix, hash }: { currentLanguage: string; urlPrefix: string; hash: string }) {
|
|
16
16
|
if (!this.i18n) return;
|
|
17
17
|
axios.get(`${urlPrefix}i18n/${currentLanguage}.json?_=${hash}`).then((res: any) => {
|
|
18
18
|
if (res.data) {
|
|
@@ -22,7 +22,7 @@ export default class TranslationService {
|
|
|
22
22
|
}
|
|
23
23
|
<%_ } _%>
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
async refreshTranslation(newLanguage: string) {
|
|
26
26
|
if (this.i18n && !this.i18n.messages[newLanguage]) {
|
|
27
27
|
<%_ if (microfrontend) { _%>
|
|
28
28
|
const res = await axios.get(`i18n/${newLanguage}.json?_=${I18N_HASH}`);
|
|
@@ -34,7 +34,7 @@ export default class TranslationService {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
setLocale(lang: string) {
|
|
38
38
|
dayjs.locale(lang);
|
|
39
39
|
this.i18n.locale.value = lang;
|
|
40
40
|
axios.defaults.headers.common['Accept-Language'] = lang;
|
|
@@ -54,11 +54,11 @@ export default class TranslationService {
|
|
|
54
54
|
}
|
|
55
55
|
<%_ } _%>
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
isLanguageSupported(lang: string) {
|
|
58
58
|
return Boolean(this.languages[lang]);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
getLocalStoreLanguage(): string | null {
|
|
62
62
|
return localStorage.getItem('currentLanguage');
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -11,12 +11,17 @@ import { setupAxiosInterceptors } from '@/shared/config/axios-interceptor';
|
|
|
11
11
|
|
|
12
12
|
import App from './app.vue';
|
|
13
13
|
import router<% if (applicationTypeGateway && microfrontend) { %>, { lazyRoutes }<% } %> from './router';
|
|
14
|
-
import { initFortAwesome<% if (enableTranslation) { %>, initI18N<% } %> } from '
|
|
15
|
-
import { initBootstrapVue } from '
|
|
16
|
-
import JhiItemCountComponent from '
|
|
17
|
-
import JhiSortIndicatorComponent from '
|
|
18
|
-
|
|
19
|
-
import
|
|
14
|
+
import { initFortAwesome<% if (enableTranslation) { %>, initI18N<% } %> } from '@/shared/config/config';
|
|
15
|
+
import { initBootstrapVue } from '@/shared/config/config-bootstrap-vue';
|
|
16
|
+
import JhiItemCountComponent from '@/shared/jhi-item-count.vue';
|
|
17
|
+
import JhiSortIndicatorComponent from '@/shared/sort/jhi-sort-indicator.vue';
|
|
18
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
19
|
+
import LoginService from '@/account/login.service';
|
|
20
|
+
<%_ } _%>
|
|
21
|
+
<%_ if (generateUserManagement) { _%>
|
|
22
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
23
|
+
<%_ } _%>
|
|
24
|
+
import AccountService from '@/account/account.service';
|
|
20
25
|
|
|
21
26
|
import '../content/scss/global.scss';
|
|
22
27
|
import '../content/scss/vendor.scss';
|
|
@@ -85,14 +90,12 @@ const i18n = initI18N();
|
|
|
85
90
|
const app = createApp({
|
|
86
91
|
compatConfig: { MODE: 3 },
|
|
87
92
|
components: { App },
|
|
88
|
-
template: '<App/>',
|
|
89
|
-
<%_ if (!authenticationTypeOauth2) { _%>
|
|
90
|
-
setup(_props, { emit }) {
|
|
91
|
-
const loginService = new LoginService({ emit });
|
|
92
|
-
provide('loginService', loginService);
|
|
93
|
-
<%_ } else { _%>
|
|
94
93
|
setup() {
|
|
94
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
95
95
|
provide('loginService', new LoginService());
|
|
96
|
+
<%_ } _%>
|
|
97
|
+
<%_ if (generateUserManagement) { _%>
|
|
98
|
+
const { hideLogin, showLogin } = useLoginModal();
|
|
96
99
|
<%_ } _%>
|
|
97
100
|
const store = useStore();
|
|
98
101
|
const accountService = new AccountService(store);
|
|
@@ -143,7 +146,7 @@ const app = createApp({
|
|
|
143
146
|
router.beforeResolve(async (to, from, next) => {
|
|
144
147
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
145
148
|
// Make sure login modal is closed
|
|
146
|
-
|
|
149
|
+
hideLogin();
|
|
147
150
|
|
|
148
151
|
<%_ } _%>
|
|
149
152
|
if (!store.authenticated) {
|
|
@@ -173,7 +176,7 @@ const app = createApp({
|
|
|
173
176
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
174
177
|
window.location.reload();
|
|
175
178
|
<%_ } else { _%>
|
|
176
|
-
|
|
179
|
+
showLogin();
|
|
177
180
|
<%_ } _%>
|
|
178
181
|
return;
|
|
179
182
|
}
|
|
@@ -205,6 +208,7 @@ const app = createApp({
|
|
|
205
208
|
provide('microfrontendI18n', false);
|
|
206
209
|
<%_ } _%>
|
|
207
210
|
},
|
|
211
|
+
template: '<App/>',
|
|
208
212
|
});
|
|
209
213
|
|
|
210
214
|
initFortAwesome(app);
|
|
@@ -43,7 +43,7 @@ export default class AlertService {
|
|
|
43
43
|
<%_ } _%>
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
showInfo(toastMessage: string, toastOptions?: any) {
|
|
47
47
|
this.bvToast.toast(toastMessage, {
|
|
48
48
|
toaster: 'b-toaster-top-center',
|
|
49
49
|
title: 'Info',
|
|
@@ -54,7 +54,7 @@ export default class AlertService {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
showSuccess(toastMessage: string) {
|
|
58
58
|
this.bvToast.toast(toastMessage, {
|
|
59
59
|
toaster: 'b-toaster-top-center',
|
|
60
60
|
title: 'Success',
|
|
@@ -64,7 +64,7 @@ export default class AlertService {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
showError(toastMessage: string) {
|
|
68
68
|
this.bvToast.toast(toastMessage, {
|
|
69
69
|
toaster: 'b-toaster-top-center',
|
|
70
70
|
title: 'Error',
|
|
@@ -74,7 +74,7 @@ export default class AlertService {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
showHttpError(httpErrorResponse: any) {
|
|
78
78
|
let errorMessage: string | null = null;
|
|
79
79
|
switch (httpErrorResponse.status) {
|
|
80
80
|
case 0:
|
|
@@ -18,7 +18,13 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import BaseWorkspacesGenerator from '../base-workspaces/index.js';
|
|
20
20
|
export default class WorkspacesGenerator extends BaseWorkspacesGenerator {
|
|
21
|
-
[
|
|
21
|
+
[BaseWorkspacesGenerator.INITIALIZING]: any;
|
|
22
|
+
[BaseWorkspacesGenerator.CONFIGURING]: any;
|
|
23
|
+
[BaseWorkspacesGenerator.COMPOSING]: any;
|
|
24
|
+
[BaseWorkspacesGenerator.LOADING]: any;
|
|
25
|
+
[BaseWorkspacesGenerator.LOADING_WORKSPACES]: any;
|
|
26
|
+
[BaseWorkspacesGenerator.WRITING]: any;
|
|
27
|
+
[BaseWorkspacesGenerator.POST_WRITING]: any;
|
|
22
28
|
workspaces: boolean;
|
|
23
29
|
generateApplications: () => Promise<undefined>;
|
|
24
30
|
generateWith: string;
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { readFile } from 'node:fs/promises';
|
|
20
20
|
import { dirname } from 'node:path';
|
|
21
|
-
import {
|
|
21
|
+
import { glob } from 'tinyglobby';
|
|
22
22
|
const isApplication = async (cwd) => {
|
|
23
23
|
const content = await readFile(cwd, { encoding: 'utf-8' });
|
|
24
24
|
const jsonContent = JSON.parse(content);
|
|
25
25
|
return Boolean(jsonContent?.['generator-jhipster']?.baseName);
|
|
26
26
|
};
|
|
27
27
|
export const applicationsLookup = async (cwd) => {
|
|
28
|
-
const yoRcFiles = await
|
|
28
|
+
const yoRcFiles = await glob('**/.yo-rc.json', { cwd });
|
|
29
29
|
const result = await Promise.all(yoRcFiles.map(async (file) => ({ file, isApp: await isApplication(file) })));
|
|
30
30
|
return result.filter(({ isApp }) => isApp).map(({ file }) => dirname(file));
|
|
31
31
|
};
|
package/dist/lib/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js
CHANGED
|
@@ -128,7 +128,7 @@ function convertAnnotationsToOptions(annotations) {
|
|
|
128
128
|
const result = {};
|
|
129
129
|
annotations.forEach(annotation => {
|
|
130
130
|
const annotationName = lowerFirst(annotation.optionName);
|
|
131
|
-
const value = annotation.optionValue
|
|
131
|
+
const value = annotation.optionValue ?? true;
|
|
132
132
|
if (annotationName in result) {
|
|
133
133
|
const previousValue = result[annotationName];
|
|
134
134
|
if (Array.isArray(previousValue)) {
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
declare const Options: {
|
|
2
|
+
DTO: string;
|
|
3
|
+
SERVICE: string;
|
|
4
|
+
PAGINATION: string;
|
|
5
|
+
MICROSERVICE: string;
|
|
6
|
+
SEARCH: string;
|
|
7
|
+
ANGULAR_SUFFIX: string;
|
|
8
|
+
CLIENT_ROOT_FOLDER: string;
|
|
9
|
+
};
|
|
1
10
|
declare function getOptionName(optionValue: any): string | undefined;
|
|
2
11
|
declare function forEach(passedFunction: any): void;
|
|
3
12
|
declare function exists(passedOption: any, passedValue?: any): boolean;
|
|
@@ -12,7 +21,9 @@ declare const _default: {
|
|
|
12
21
|
CLIENT_ROOT_FOLDER: string;
|
|
13
22
|
};
|
|
14
23
|
DefaultValues: {
|
|
15
|
-
[
|
|
24
|
+
[Options.DTO]: any;
|
|
25
|
+
[Options.SERVICE]: any;
|
|
26
|
+
[Options.PAGINATION]: any;
|
|
16
27
|
};
|
|
17
28
|
OptionValues: {
|
|
18
29
|
mapstruct: string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type ApplyOptions = {
|
|
2
|
+
templateFile: string;
|
|
3
|
+
oldFileContents: string;
|
|
4
|
+
newFileContents: string;
|
|
5
|
+
contextSize?: number;
|
|
6
|
+
fuzzFactor?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const applyChangesToFile: ({ templateFile, oldFileContents, newFileContents, contextSize, fuzzFactor }: ApplyOptions) => {
|
|
9
|
+
success: number;
|
|
10
|
+
failures: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const applyChangesToFileOrCopy: ({ templateFile, oldFileContents, ...opts }: ApplyOptions) => void;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
2
|
+
import { applyPatch, structuredPatch } from 'diff';
|
|
3
|
+
const splitHunk = ({ lines, ...hunk }, contextSize) => {
|
|
4
|
+
let contextLines = [];
|
|
5
|
+
// let nextHunkContextLines = [];
|
|
6
|
+
let hunkLines = [];
|
|
7
|
+
const hunks = [];
|
|
8
|
+
for (const line of lines) {
|
|
9
|
+
if (line.startsWith(' ')) {
|
|
10
|
+
contextLines.push(line);
|
|
11
|
+
if (contextLines.length >= contextSize && hunkLines.length > 0) {
|
|
12
|
+
hunks.push({ lines: [...hunkLines, ...contextLines], ...hunk });
|
|
13
|
+
hunkLines = [];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
hunkLines.push(...contextLines);
|
|
18
|
+
hunkLines.push(line);
|
|
19
|
+
contextLines = [];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (hunkLines.length > 0) {
|
|
23
|
+
hunks.push({ lines: [...contextLines, ...hunkLines], ...hunk });
|
|
24
|
+
}
|
|
25
|
+
return hunks;
|
|
26
|
+
};
|
|
27
|
+
export const applyChangesToFile = ({ templateFile, oldFileContents, newFileContents, contextSize = 2, fuzzFactor = 0 }) => {
|
|
28
|
+
const patch = structuredPatch(templateFile, templateFile, oldFileContents, newFileContents, undefined, undefined, {
|
|
29
|
+
context: contextSize,
|
|
30
|
+
newlineIsToken: false,
|
|
31
|
+
// ignoreWhitespace: true,
|
|
32
|
+
// oneChangePerToken: true,
|
|
33
|
+
// maxEditLength: 3,
|
|
34
|
+
});
|
|
35
|
+
patch.hunks = patch.hunks
|
|
36
|
+
.map(({ lines, ...remainning }) => ({
|
|
37
|
+
...remainning,
|
|
38
|
+
lines: lines
|
|
39
|
+
.map(line => (line === '-' ? ' ' : line.replace('-import', ' import').replace('+import', ' import')))
|
|
40
|
+
.filter(line => line !== '+'),
|
|
41
|
+
}))
|
|
42
|
+
.filter(({ lines }) => lines.some(line => line.startsWith('+') || line.startsWith('-')));
|
|
43
|
+
// apply hunk by hunk, since if a hunk fails, the rest of the file will be skipped
|
|
44
|
+
const content = readFileSync(templateFile, 'utf8').toString();
|
|
45
|
+
let applied = content;
|
|
46
|
+
let failures = 0;
|
|
47
|
+
let success = 0;
|
|
48
|
+
for (const hunk of patch.hunks.map(hunk => splitHunk(hunk, contextSize)).flat()) {
|
|
49
|
+
const result = applyPatch(applied, { ...patch, hunks: [hunk] }, { fuzzFactor });
|
|
50
|
+
if (result) {
|
|
51
|
+
applied = result;
|
|
52
|
+
success++;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
failures++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (content !== applied) {
|
|
59
|
+
writeFileSync(templateFile, applied);
|
|
60
|
+
}
|
|
61
|
+
return { success, failures };
|
|
62
|
+
};
|
|
63
|
+
export const applyChangesToFileOrCopy = ({ templateFile, oldFileContents, ...opts }) => {
|
|
64
|
+
const result = applyChangesToFile({ templateFile, oldFileContents, ...opts });
|
|
65
|
+
if (result.success === 0 && result.failures > 0) {
|
|
66
|
+
let diskContents;
|
|
67
|
+
if (templateFile.endsWith('.ejs')) {
|
|
68
|
+
diskContents = `<%#
|
|
69
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
70
|
+
|
|
71
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
72
|
+
for more information.
|
|
73
|
+
|
|
74
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
75
|
+
you may not use this file except in compliance with the License.
|
|
76
|
+
You may obtain a copy of the License at
|
|
77
|
+
|
|
78
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
79
|
+
|
|
80
|
+
Unless required by applicable law or agreed to in writing, software
|
|
81
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
82
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
83
|
+
See the License for the specific language governing permissions and
|
|
84
|
+
limitations under the License.
|
|
85
|
+
-%>
|
|
86
|
+
${oldFileContents}`;
|
|
87
|
+
}
|
|
88
|
+
writeFileSync(templateFile, diskContents ?? oldFileContents, { encoding: 'utf-8' });
|
|
89
|
+
}
|
|
90
|
+
};
|
|
@@ -2,7 +2,6 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { appendFileSync, existsSync } from 'node:fs';
|
|
3
3
|
import { EOL } from 'node:os';
|
|
4
4
|
import process from 'node:process';
|
|
5
|
-
import axios from 'axios';
|
|
6
5
|
export const parseIssue = (issue) => {
|
|
7
6
|
const result = /^(((?<owner>[^/]*)\/)?(?<repository>[^#]+)#)?(?<issue>\d+)$/.exec(issue);
|
|
8
7
|
const groups = result?.groups;
|
|
@@ -29,13 +28,17 @@ export const setGithubTaskOutput = (name, value) => {
|
|
|
29
28
|
};
|
|
30
29
|
export const getGithubIssue = async ({ owner, repository, issue }) => {
|
|
31
30
|
const token = process.env.GITHUB_TOKEN;
|
|
32
|
-
const response = await
|
|
31
|
+
const response = await fetch(`https://api.github.com/repos/${owner}/${repository}/issues/${issue}`, {
|
|
32
|
+
method: 'GET',
|
|
33
33
|
headers: {
|
|
34
34
|
'X-GitHub-Api-Version': '2022-11-28',
|
|
35
35
|
Authorization: token ? `Bearer ${token}` : undefined,
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
|
-
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
throw new Error(`Response status: ${response.status}`);
|
|
40
|
+
}
|
|
41
|
+
return await response.json();
|
|
39
42
|
};
|
|
40
43
|
export const getGithubSummaryFile = () => {
|
|
41
44
|
const filePath = process.env.GITHUB_STEP_SUMMARY;
|
|
@@ -124,6 +124,7 @@ declare class JHipsterRunContext extends RunContext<GeneratorTestType> {
|
|
|
124
124
|
withGradleBuildTool(): this;
|
|
125
125
|
private withSharedData;
|
|
126
126
|
run(): Promise<RunResult<GeneratorTestType>>;
|
|
127
|
+
withTask(priorityName: string, method: (...args: any[]) => any): this;
|
|
127
128
|
}
|
|
128
129
|
declare class JHipsterTest extends YeomanTest {
|
|
129
130
|
constructor();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
|
+
import { randomInt } from 'node:crypto';
|
|
2
3
|
import { basename, dirname, isAbsolute, join } from 'node:path';
|
|
3
4
|
import { mock } from 'node:test';
|
|
4
5
|
import { merge, set, snakeCase } from 'lodash-es';
|
|
@@ -337,6 +338,20 @@ plugins {
|
|
|
337
338
|
};
|
|
338
339
|
return runResult;
|
|
339
340
|
}
|
|
341
|
+
withTask(priorityName, method) {
|
|
342
|
+
return this.onGenerator(async (gen) => {
|
|
343
|
+
const generator = gen;
|
|
344
|
+
generator.on('queueOwnTasks', () => {
|
|
345
|
+
const priority = generator._queues[priorityName];
|
|
346
|
+
const queueName = priority.queueName ?? priority.priorityName;
|
|
347
|
+
generator.queueTask({
|
|
348
|
+
taskName: `test-task${randomInt(1000)}`,
|
|
349
|
+
queueName,
|
|
350
|
+
method,
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
}
|
|
340
355
|
}
|
|
341
356
|
class JHipsterTest extends YeomanTest {
|
|
342
357
|
constructor() {
|