generator-jhipster 8.2.1 → 8.3.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/dist/cli/environment-builder.mjs +3 -3
- package/dist/cli/jhipster-command.mjs +1 -2
- package/dist/cli/jhipster.cjs +0 -0
- package/dist/generators/angular/command.js +5 -0
- package/dist/generators/angular/generator.js +36 -9
- package/dist/generators/angular/index.js +1 -0
- package/dist/generators/angular/needle-api/needle-client-angular.js +3 -3
- package/dist/generators/angular/resources/package.json +13 -10
- package/dist/generators/angular/support/index.js +0 -1
- package/dist/generators/angular/support/translate-angular.js +142 -8
- package/dist/generators/angular/templates/package.json.ejs +0 -10
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +18 -26
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +18 -25
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +10 -15
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +31 -46
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -8
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +20 -31
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +7 -12
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.model.ts.ejs +9 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +5 -9
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +12 -12
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +36 -36
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +33 -33
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +8 -8
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +13 -13
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +6 -6
- package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +2 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +26 -26
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -18
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +1 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +20 -34
- 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/auth/account.service.spec.ts.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +25 -25
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +14 -14
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +1 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +17 -24
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +14 -15
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +1 -5
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +11 -18
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +11 -12
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +1 -2
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.ts.ejs +1 -1
- package/dist/generators/app/generator.js +4 -4
- package/dist/generators/base/generator.js +21 -2
- package/dist/generators/base/shared-data.js +1 -2
- package/dist/generators/base/support/basename.js +1 -2
- package/dist/generators/base/support/needles.js +3 -5
- package/dist/generators/base/support/string.js +2 -2
- package/dist/generators/base-application/generator.js +4 -4
- package/dist/generators/base-application/support/entity.js +1 -2
- package/dist/generators/base-application/support/enum.js +2 -2
- package/dist/generators/base-application/support/prepare-entity.js +1 -1
- package/dist/generators/base-application/support/prepare-field.js +5 -6
- package/dist/generators/base-application/support/relationship.js +1 -2
- package/dist/generators/base-application/support/task-type-inference.js +6 -0
- package/dist/generators/base-core/generator.js +83 -14
- package/dist/generators/base-workspaces/internal/deployments.js +2 -2
- package/dist/generators/base-workspaces/internal/docker-dependencies.js +2 -2
- package/dist/generators/bootstrap/generator.js +4 -5
- package/dist/generators/bootstrap/internal/transform-utils.js +4 -0
- package/dist/generators/bootstrap/support/eslint-transform.js +2 -1
- package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -1
- package/dist/generators/bootstrap/support/prettier-worker.js +2 -4
- package/dist/generators/bootstrap-application/generator.js +3 -4
- package/dist/generators/bootstrap-application-base/generator.js +4 -5
- package/dist/generators/bootstrap-application-base/utils.js +3 -3
- package/dist/generators/bootstrap-application-client/generator.js +2 -3
- package/dist/generators/bootstrap-application-server/generator.js +21 -15
- package/dist/generators/bootstrap-workspaces/generator.js +1 -2
- package/dist/generators/ci-cd/command.js +1 -2
- package/dist/generators/ci-cd/generator.js +3 -3
- package/dist/generators/client/command.js +1 -2
- package/dist/generators/client/generator.js +12 -12
- package/dist/generators/client/needle-api/needle-client-vue.js +2 -2
- package/dist/generators/client/resources/package.json +4 -4
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
- package/dist/generators/common/generator.js +5 -5
- package/dist/generators/common/resources/package.json +1 -1
- package/dist/generators/cucumber/generator.js +17 -10
- package/dist/generators/cucumber/templates/buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle.ejs +1 -5
- package/dist/generators/cypress/generator.js +2 -3
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/administration/administration.cy.ts.ejs +10 -0
- package/dist/generators/docker/generator.js +4 -6
- package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +0 -32
- package/dist/generators/docker/utils.js +2 -3
- package/dist/generators/docker-compose/generator.js +4 -5
- package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +0 -32
- package/dist/generators/entities/generator.js +4 -4
- package/dist/generators/entity/generator.js +10 -9
- package/dist/generators/entity/prompts.js +12 -12
- package/dist/generators/feign-client/generator.js +3 -4
- package/dist/generators/gatling/generator.js +2 -3
- package/dist/generators/generate-blueprint/files.js +1 -0
- package/dist/generators/generate-blueprint/generator.js +3 -4
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +3 -2
- package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +19 -1
- package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +6 -0
- package/dist/generators/generator-constants.js +5 -2
- package/dist/generators/git/generator.js +3 -5
- package/dist/generators/gradle/command.js +32 -0
- package/dist/generators/gradle/constants.js +0 -1
- package/dist/generators/gradle/files.js +2 -8
- package/dist/generators/gradle/generator.js +85 -13
- package/dist/generators/gradle/generators/code-quality/generator.js +86 -0
- package/dist/generators/{java/cleanup.js → gradle/generators/code-quality/index.js} +1 -5
- package/dist/generators/gradle/generators/jib/generator.js +64 -0
- package/dist/generators/gradle/generators/jib/index.js +19 -0
- package/dist/generators/gradle/generators/node-gradle/generator.js +64 -0
- package/dist/generators/gradle/generators/node-gradle/index.js +19 -0
- package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +101 -0
- package/dist/generators/gradle/index.js +1 -0
- package/dist/generators/gradle/internal/needles.js +9 -3
- package/dist/generators/gradle/templates/buildSrc/build.gradle.ejs +3 -2
- package/dist/generators/gradle/templates/buildSrc/gradle/libs.versions.toml.ejs +8 -1
- package/dist/generators/gradle/templates/gradle/wrapper/{gradle-wrapper.properties.ejs → gradle-wrapper.properties} +1 -1
- package/dist/generators/heroku/generator.js +3 -3
- package/dist/generators/init/generator.js +3 -4
- package/dist/generators/init/resources/.node-version +1 -0
- package/dist/generators/java/command.js +2 -38
- package/dist/generators/java/generator.js +5 -260
- package/dist/generators/java/generators/bootstrap/command.js +35 -0
- package/dist/generators/java/generators/bootstrap/generator.js +178 -0
- package/dist/generators/java/generators/bootstrap/index.js +20 -0
- package/dist/generators/java/generators/build-tool/command.js +42 -0
- package/dist/generators/java/generators/build-tool/generator.js +143 -0
- package/dist/generators/java/generators/build-tool/index.js +20 -0
- package/dist/generators/java/generators/code-quality/command.js +5 -0
- package/dist/generators/java/generators/code-quality/generator.js +91 -0
- package/dist/generators/java/generators/code-quality/index.js +20 -0
- package/dist/generators/java/generators/domain/command.js +30 -0
- package/dist/generators/java/{entity-files.js → generators/domain/entity-files.js} +1 -1
- package/dist/generators/java/generators/domain/generator.js +153 -0
- package/dist/generators/java/generators/domain/index.js +20 -0
- package/dist/generators/java/generators/jib/command.js +5 -0
- package/dist/generators/java/generators/jib/generator.js +97 -0
- package/dist/generators/java/generators/jib/index.js +20 -0
- package/dist/generators/{server → java/generators/jib}/templates/src/main/docker/jib/entrypoint.sh.ejs +2 -0
- package/dist/generators/java/generators/node/command.js +5 -0
- package/dist/generators/java/generators/node/generator.js +97 -0
- package/dist/generators/java/generators/node/index.js +20 -0
- package/dist/generators/java/support/index.js +1 -0
- package/dist/generators/jdl/generator.js +6 -9
- package/dist/generators/kubernetes/generator.js +1 -1
- package/dist/generators/kubernetes/kubernetes-base.js +3 -3
- package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +0 -32
- package/dist/generators/kubernetes-helm/generator.js +1 -1
- package/dist/generators/kubernetes-knative/generator.js +1 -1
- package/dist/generators/languages/entity-files.js +3 -2
- package/dist/generators/languages/generator.js +7 -10
- package/dist/generators/languages/support/translate.js +34 -9
- package/dist/generators/languages/translation-data.js +4 -5
- package/dist/generators/liquibase/generator.js +68 -25
- package/dist/generators/liquibase/support/maven-plugin.js +6 -0
- package/dist/generators/liquibase/templates/gradle/liquibase.gradle.ejs +3 -6
- package/dist/generators/maven/generator.js +14 -6
- package/dist/generators/maven/generators/code-quality/command.js +5 -0
- package/dist/generators/maven/generators/code-quality/generator.js +268 -0
- package/dist/generators/maven/generators/code-quality/index.js +20 -0
- package/dist/generators/maven/generators/frontend-plugin/command.js +5 -0
- package/dist/generators/maven/generators/frontend-plugin/generator.js +295 -0
- package/dist/generators/maven/generators/frontend-plugin/index.js +20 -0
- package/dist/generators/maven/generators/jib/command.js +5 -0
- package/dist/generators/maven/generators/jib/generator.js +136 -0
- package/dist/generators/maven/generators/jib/index.js +20 -0
- package/dist/generators/maven/internal/xml-store.js +1 -2
- package/dist/generators/maven/support/dependabot-maven.js +12 -2
- package/dist/generators/maven/support/pom-store.js +1 -2
- package/dist/generators/project-name/generator.js +9 -11
- package/dist/generators/react/generator.js +25 -6
- package/dist/generators/react/needle-api/needle-client-react.js +2 -2
- package/dist/generators/react/resources/package.json +18 -15
- package/dist/generators/react/templates/package.json.ejs +1 -7
- package/dist/generators/react/templates/src/main/webapp/app/modules/administration/tracker/tracker.tsx.ejs +2 -2
- package/dist/generators/server/command.js +2 -34
- package/dist/generators/server/generator.js +20 -154
- package/dist/generators/server/jdl/application-definition.js +1 -2
- package/dist/generators/server/prompts.js +4 -46
- package/dist/generators/server/resources/Dockerfile +7 -7
- package/dist/generators/server/resources/build.gradle +1 -0
- package/dist/generators/server/resources/gradle/libs.versions.toml +25 -7
- package/dist/generators/server/resources/pom.xml +4 -22
- package/dist/generators/server/support/prepare-field.js +1 -2
- package/dist/generators/server/templates/build.gradle.ejs +29 -143
- package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -1
- package/dist/generators/server/templates/gradle.properties.ejs +0 -7
- package/dist/generators/server/templates/pom.xml.ejs +23 -444
- package/dist/generators/server/templates/settings.gradle.ejs +0 -4
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +15 -3
- package/dist/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs +4 -1
- package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +15 -4
- package/dist/generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs +0 -2
- package/dist/generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs +71 -46
- package/dist/generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs +0 -3
- package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +1 -1
- package/dist/generators/spring-boot/command.js +31 -2
- package/dist/generators/spring-boot/entity-files.js +2 -2
- package/dist/generators/spring-boot/files.js +3 -38
- package/dist/generators/spring-boot/generator.js +98 -37
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +105 -105
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +2 -2
- package/dist/generators/spring-cache/generator.js +11 -6
- package/dist/generators/spring-cache/internal/dependencies.js +5 -0
- package/dist/generators/spring-cache/resources/build.gradle +1 -0
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +15 -0
- package/dist/generators/spring-cache/templates/src/test/java/_package_/config/RedisTestContainersSpringContextCustomizerFactory.java.ejs +29 -13
- package/dist/generators/spring-cloud/generators/gateway/command.js +5 -0
- package/dist/generators/spring-cloud/generators/gateway/generator.js +146 -0
- package/dist/generators/spring-cloud/generators/gateway/index.js +20 -0
- package/dist/generators/spring-cloud-stream/generator.js +2 -3
- package/dist/generators/spring-cloud-stream/generators/kafka/generator.js +2 -2
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainersSpringContextCustomizerFactory.java.ejs +28 -12
- package/dist/generators/spring-cloud-stream/generators/pulsar/generator.js +2 -2
- package/dist/generators/spring-cloud-stream/generators/pulsar/templates/src/test/java/_package_/config/PulsarTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
- package/dist/generators/spring-data-cassandra/generator.js +5 -6
- package/dist/generators/spring-data-cassandra/templates/src/test/java/_package_/config/CassandraTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
- package/dist/generators/spring-data-couchbase/generator.js +3 -4
- package/dist/generators/spring-data-elasticsearch/generator.js +3 -5
- package/dist/generators/spring-data-mongodb/generator.js +5 -5
- package/dist/generators/spring-data-neo4j/generator.js +11 -5
- package/dist/generators/spring-data-neo4j/templates/src/test/java/_package_/config/Neo4jTestContainersSpringContextCustomizerFactory.java.ejs +32 -16
- package/dist/generators/spring-data-relational/generator.js +6 -7
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +47 -32
- package/dist/generators/spring-websocket/generator.js +2 -3
- package/dist/generators/statistics.js +2 -2
- package/dist/generators/upgrade/generator.js +4 -3
- package/dist/generators/vue/generator.js +4 -4
- package/dist/generators/vue/resources/package.json +18 -15
- package/dist/generators/vue/templates/package.json.ejs +3 -3
- package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +3 -3
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +4 -3
- package/dist/generators/vue/templates/vite.config.mts.ejs +6 -0
- package/dist/generators/workspaces/generator.js +5 -4
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +2 -2
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +3 -3
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +2 -2
- package/dist/jdl/jdl-importer.js +1 -2
- package/dist/jdl/jhipster/default-application-options.js +1 -1
- package/dist/jdl/jhipster/field-types.js +2 -2
- package/dist/jdl/jhipster/relationship-types.js +1 -2
- package/dist/jdl/models/jdl-deployment.js +1 -2
- package/dist/jdl/parsing/api.js +2 -2
- package/dist/jdl/parsing/lexer/token-creator.js +1 -2
- package/dist/jdl/parsing/self-checks/parsing-system-checker.js +13 -13
- package/dist/jdl/parsing/validator.js +5 -5
- package/dist/testing/get-generator.js +1 -1
- package/dist/testing/helpers.js +34 -9
- package/dist/types/generators/angular/support/index.d.ts +0 -1
- package/dist/types/generators/angular/support/translate-angular.d.ts +7 -4
- package/dist/types/generators/app/support/config.d.ts +1 -1
- package/dist/types/generators/base/api.d.ts +7 -0
- package/dist/types/generators/base/generator.d.ts +1 -1
- package/dist/types/generators/base-application/generator.d.ts +4 -4
- package/dist/types/generators/base-application/support/task-type-inference.d.ts +3 -0
- package/dist/types/generators/base-application/support/update-application-entities-transform.d.ts +1 -1
- package/dist/types/generators/base-core/generator.d.ts +33 -1
- package/dist/types/generators/bootstrap/internal/transform-utils.d.ts +1 -0
- package/dist/types/generators/bootstrap/support/java-unused-imports-transform.d.ts +1 -1
- package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.ts +2 -2
- package/dist/types/generators/docker/utils.d.ts +7 -0
- package/dist/types/generators/generator-constants.d.ts +2 -20
- package/dist/types/generators/gradle/types.d.ts +21 -7
- package/dist/types/generators/java/support/index.d.ts +1 -0
- package/dist/types/generators/java/types.d.ts +37 -22
- package/dist/types/generators/languages/support/translate.d.ts +29 -0
- package/dist/types/generators/maven/support/dependabot-maven.d.ts +17 -1
- package/dist/types/generators/project-name/support/name-resolver.d.ts +1 -1
- package/dist/types/generators/server/types.d.ts +2 -0
- package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +0 -18
- package/dist/types/testing/helpers.d.ts +6 -0
- package/dist/types/testing/support/matrix-utils.d.ts +1 -1
- package/package.json +15 -27
- package/dist/generators/java/files.js +0 -20
- /package/dist/generators/{server → gradle/generators/code-quality}/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs +0 -0
- /package/dist/generators/{server → gradle/generators/jib}/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs +0 -0
- /package/dist/generators/java/{templates → generators/bootstrap/templates}/src/main/java/_package_/GeneratedByJHipster.java.ejs +0 -0
- /package/dist/generators/{server → java/generators/code-quality}/templates/checkstyle.xml.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/_global_partials_entity_/field_validators.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +0 -0
- /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/domain/AssertUtils.java.ejs +0 -0
- /package/dist/generators/{server → java/generators/node}/templates/npmw +0 -0
- /package/dist/generators/{server → java/generators/node}/templates/npmw.cmd +0 -0
- /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/security/jwt/JWTRelayGatewayFilterFactory.java.ejs +0 -0
- /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/filter/ModifyServersOpenApiFilter.java.ejs +0 -0
- /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/GatewayResource.java.ejs +0 -0
- /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/vm/RouteVM.java.ejs +0 -0
- /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/test/java/_package_/web/filter/ModifyServersOpenApiFilterTest.java.ejs +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2024 the original author or authors from the JHipster project.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
* for more information.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import BaseApplicationGenerator from '../../../base-application/index.js';
|
|
20
|
+
export default class NodeGenerator extends BaseApplicationGenerator {
|
|
21
|
+
async beforeQueue() {
|
|
22
|
+
if (!this.fromBlueprint) {
|
|
23
|
+
await this.composeWithBlueprints();
|
|
24
|
+
}
|
|
25
|
+
if (!this.delegateToBlueprint) {
|
|
26
|
+
await this.dependsOnBootstrapApplication();
|
|
27
|
+
await this.dependsOnJHipster('jhipster:java:build-tool');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
get initializing() {
|
|
31
|
+
return this.asInitializingTaskGroup({
|
|
32
|
+
async parseCommand() {
|
|
33
|
+
await this.parseCurrentJHipsterCommand();
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
get [BaseApplicationGenerator.INITIALIZING]() {
|
|
38
|
+
return this.delegateTasksToBlueprint(() => this.initializing);
|
|
39
|
+
}
|
|
40
|
+
get prompting() {
|
|
41
|
+
return this.asPromptingTaskGroup({
|
|
42
|
+
async promptCommand({ control }) {
|
|
43
|
+
if (control.existingProject && this.options.askAnswered !== true)
|
|
44
|
+
return;
|
|
45
|
+
await this.promptCurrentJHipsterCommand();
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
get [BaseApplicationGenerator.PROMPTING]() {
|
|
50
|
+
return this.delegateTasksToBlueprint(() => this.prompting);
|
|
51
|
+
}
|
|
52
|
+
get composing() {
|
|
53
|
+
return this.asComposingTaskGroup({
|
|
54
|
+
async compose() {
|
|
55
|
+
const { buildTool } = this.jhipsterConfigWithDefaults;
|
|
56
|
+
if (buildTool === 'maven') {
|
|
57
|
+
await this.composeWithJHipster('jhipster:maven:frontend-plugin');
|
|
58
|
+
}
|
|
59
|
+
else if (buildTool === 'gradle') {
|
|
60
|
+
await this.composeWithJHipster('jhipster:gradle:node-gradle');
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
get [BaseApplicationGenerator.COMPOSING]() {
|
|
66
|
+
return this.delegateTasksToBlueprint(() => this.composing);
|
|
67
|
+
}
|
|
68
|
+
get loading() {
|
|
69
|
+
return this.asLoadingTaskGroup({
|
|
70
|
+
async loadConfig({ application }) {
|
|
71
|
+
await this.loadCurrentJHipsterCommandConfig(application);
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
get [BaseApplicationGenerator.LOADING]() {
|
|
76
|
+
return this.delegateTasksToBlueprint(() => this.loading);
|
|
77
|
+
}
|
|
78
|
+
get writing() {
|
|
79
|
+
return this.asWritingTaskGroup({
|
|
80
|
+
async writing({ application }) {
|
|
81
|
+
await this.writeFiles({
|
|
82
|
+
blocks: [
|
|
83
|
+
{
|
|
84
|
+
condition: (ctx) => ctx.useNpmWrapper,
|
|
85
|
+
transform: false,
|
|
86
|
+
templates: ['npmw', 'npmw.cmd'],
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
context: application,
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
get [BaseApplicationGenerator.WRITING]() {
|
|
95
|
+
return this.delegateTasksToBlueprint(() => this.writing);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2024 the original author or authors from the JHipster project.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
* for more information.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
export { default } from './generator.js';
|
|
20
|
+
export { default as command } from './command.js';
|
|
@@ -25,5 +25,6 @@ export { default as generatedAnnotationTransform } from './generated-annotation-
|
|
|
25
25
|
export * from './java-formatting.js';
|
|
26
26
|
export * from './key-store.js';
|
|
27
27
|
export { default as packageInfoTransform } from './package-info-transform.js';
|
|
28
|
+
export * from './package-info-transform.js';
|
|
28
29
|
export * from './reserved-keywords.js';
|
|
29
30
|
export * from './util.js';
|
|
@@ -17,12 +17,11 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import { extname } from 'path';
|
|
20
|
-
import
|
|
20
|
+
import { upperFirst } from 'lodash-es';
|
|
21
21
|
import { create as createMemFs } from 'mem-fs';
|
|
22
22
|
import { create as createMemFsEditor } from 'mem-fs-editor';
|
|
23
23
|
import { readFile } from 'fs/promises';
|
|
24
24
|
import BaseGenerator from '../base/index.js';
|
|
25
|
-
import command from './command.js';
|
|
26
25
|
import { downloadJdlFile } from '../../cli/download.mjs';
|
|
27
26
|
import EnvironmentBuilder from '../../cli/environment-builder.mjs';
|
|
28
27
|
import { CLI_NAME } from '../../cli/utils.mjs';
|
|
@@ -34,7 +33,6 @@ import { addApplicationIndex, allNewApplications, customizeForMicroservices } fr
|
|
|
34
33
|
import { mergeYoRcContent } from '../../jdl/index.js';
|
|
35
34
|
import { normalizeBlueprintName } from '../base/internal/blueprint.js';
|
|
36
35
|
import { updateApplicationEntitiesTransform } from '../base-application/support/update-application-entities-transform.js';
|
|
37
|
-
const { upperFirst } = _;
|
|
38
36
|
/**
|
|
39
37
|
* Add jdl extension to the file
|
|
40
38
|
*/
|
|
@@ -66,25 +64,24 @@ export default class JdlGenerator extends BaseGenerator {
|
|
|
66
64
|
exportedDeployments;
|
|
67
65
|
async beforeQueue() {
|
|
68
66
|
if (!this.fromBlueprint) {
|
|
69
|
-
await this.composeWithBlueprints(
|
|
67
|
+
await this.composeWithBlueprints();
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
70
|
get initializing() {
|
|
73
71
|
return this.asInitializingTaskGroup({
|
|
72
|
+
async parseCommand() {
|
|
73
|
+
await this.parseCurrentJHipsterCommand();
|
|
74
|
+
},
|
|
74
75
|
loadArguments() {
|
|
75
|
-
this.parseJHipsterArguments(command.arguments);
|
|
76
76
|
if (this.jdlFiles) {
|
|
77
77
|
this.log.verboseInfo('Generating jdls', ...this.jdlFiles);
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
|
-
loadOptions() {
|
|
81
|
-
this.parseJHipsterOptions(command.options);
|
|
82
|
-
},
|
|
83
80
|
existingProject() {
|
|
84
81
|
this.existingProject = this.jhipsterConfig.baseName !== undefined && this.config.existed;
|
|
85
82
|
},
|
|
86
83
|
checkOptions() {
|
|
87
|
-
if (!this.inline && !this.jdlFiles?.length) {
|
|
84
|
+
if (!this.skipChecks && !this.inline && !this.jdlFiles?.length) {
|
|
88
85
|
throw new Error('At least one jdl file is required.');
|
|
89
86
|
}
|
|
90
87
|
},
|
|
@@ -41,7 +41,7 @@ const { MAVEN } = buildToolTypes;
|
|
|
41
41
|
export default class KubernetesGenerator extends BaseWorkspacesGenerator {
|
|
42
42
|
async beforeQueue() {
|
|
43
43
|
if (!this.fromBlueprint) {
|
|
44
|
-
await this.composeWithBlueprints(
|
|
44
|
+
await this.composeWithBlueprints();
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
get initializing() {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import crypto from 'crypto';
|
|
20
|
-
import
|
|
20
|
+
import { defaults } from 'lodash-es';
|
|
21
21
|
import { defaultKubernetesConfig } from './kubernetes-constants.js';
|
|
22
22
|
import { loadFromYoRc } from '../base-workspaces/internal/docker-base.js';
|
|
23
23
|
import { KUBERNETES_CORE_API_VERSION, KUBERNETES_BATCH_API_VERSION, KUBERNETES_DEPLOYMENT_API_VERSION, KUBERNETES_STATEFULSET_API_VERSION, KUBERNETES_INGRESS_API_VERSION, KUBERNETES_ISTIO_NETWORKING_API_VERSION, KUBERNETES_RBAC_API_VERSION, HELM_KAFKA, HELM_ELASTICSEARCH, HELM_PROMETHEUS, HELM_GRAFANA, HELM_MARIADB, HELM_MYSQL, HELM_POSTGRESQL, HELM_MONGODB_REPLICASET, HELM_COUCHBASE_OPERATOR, } from '../generator-constants.js';
|
|
@@ -54,7 +54,7 @@ export function loadConfig() {
|
|
|
54
54
|
if (!this.jhipsterConfig.dbRandomPassword) {
|
|
55
55
|
this.jhipsterConfig.dbRandomPassword = this.options.reproducibleTests ? 'SECRET-PASSWORD' : crypto.randomBytes(30).toString('hex');
|
|
56
56
|
}
|
|
57
|
-
const kubernetesWithDefaults =
|
|
57
|
+
const kubernetesWithDefaults = defaults({}, this.jhipsterConfig, defaultKubernetesConfig);
|
|
58
58
|
this.kubernetesNamespace = kubernetesWithDefaults.kubernetesNamespace;
|
|
59
59
|
this.kubernetesServiceType = kubernetesWithDefaults.kubernetesServiceType;
|
|
60
60
|
this.ingressType = kubernetesWithDefaults.ingressType;
|
|
@@ -66,7 +66,7 @@ export function loadConfig() {
|
|
|
66
66
|
this.generatorType = kubernetesWithDefaults.generatorType;
|
|
67
67
|
}
|
|
68
68
|
export function saveConfig() {
|
|
69
|
-
this.config.set(
|
|
69
|
+
this.config.set(defaults({
|
|
70
70
|
appsFolders: this.appsFolders,
|
|
71
71
|
directoryPath: this.directoryPath,
|
|
72
72
|
clusteredDbApps: this.clusteredDbApps,
|
|
@@ -1855,22 +1855,6 @@ data:
|
|
|
1855
1855
|
"topLevel": false,
|
|
1856
1856
|
"builtIn": true,
|
|
1857
1857
|
"authenticationExecutions": [
|
|
1858
|
-
{
|
|
1859
|
-
"authenticator": "basic-auth",
|
|
1860
|
-
"authenticatorFlow": false,
|
|
1861
|
-
"requirement": "REQUIRED",
|
|
1862
|
-
"priority": 10,
|
|
1863
|
-
"userSetupAllowed": false,
|
|
1864
|
-
"autheticatorFlow": false
|
|
1865
|
-
},
|
|
1866
|
-
{
|
|
1867
|
-
"authenticator": "basic-auth-otp",
|
|
1868
|
-
"authenticatorFlow": false,
|
|
1869
|
-
"requirement": "DISABLED",
|
|
1870
|
-
"priority": 20,
|
|
1871
|
-
"userSetupAllowed": false,
|
|
1872
|
-
"autheticatorFlow": false
|
|
1873
|
-
},
|
|
1874
1858
|
{
|
|
1875
1859
|
"authenticator": "auth-spnego",
|
|
1876
1860
|
"authenticatorFlow": false,
|
|
@@ -2261,14 +2245,6 @@ data:
|
|
|
2261
2245
|
"topLevel": true,
|
|
2262
2246
|
"builtIn": true,
|
|
2263
2247
|
"authenticationExecutions": [
|
|
2264
|
-
{
|
|
2265
|
-
"authenticator": "no-cookie-redirect",
|
|
2266
|
-
"authenticatorFlow": false,
|
|
2267
|
-
"requirement": "REQUIRED",
|
|
2268
|
-
"priority": 10,
|
|
2269
|
-
"userSetupAllowed": false,
|
|
2270
|
-
"autheticatorFlow": false
|
|
2271
|
-
},
|
|
2272
2248
|
{
|
|
2273
2249
|
"authenticatorFlow": true,
|
|
2274
2250
|
"requirement": "REQUIRED",
|
|
@@ -2314,14 +2290,6 @@ data:
|
|
|
2314
2290
|
"userSetupAllowed": false,
|
|
2315
2291
|
"autheticatorFlow": false
|
|
2316
2292
|
},
|
|
2317
|
-
{
|
|
2318
|
-
"authenticator": "registration-profile-action",
|
|
2319
|
-
"authenticatorFlow": false,
|
|
2320
|
-
"requirement": "REQUIRED",
|
|
2321
|
-
"priority": 40,
|
|
2322
|
-
"userSetupAllowed": false,
|
|
2323
|
-
"autheticatorFlow": false
|
|
2324
|
-
},
|
|
2325
2293
|
{
|
|
2326
2294
|
"authenticator": "registration-password-action",
|
|
2327
2295
|
"authenticatorFlow": false,
|
|
@@ -40,7 +40,7 @@ const { KAFKA } = messageBrokerTypes;
|
|
|
40
40
|
export default class KubernetesHelmGenerator extends BaseWorkspacesGenerator {
|
|
41
41
|
async beforeQueue() {
|
|
42
42
|
if (!this.fromBlueprint) {
|
|
43
|
-
await this.composeWithBlueprints(
|
|
43
|
+
await this.composeWithBlueprints();
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
get initializing() {
|
|
@@ -43,7 +43,7 @@ const { K8S } = GeneratorTypes;
|
|
|
43
43
|
export default class KubernetesKnativeGenerator extends BaseWorkspacesGenerator {
|
|
44
44
|
async beforeQueue() {
|
|
45
45
|
if (!this.fromBlueprint) {
|
|
46
|
-
await this.composeWithBlueprints(
|
|
46
|
+
await this.composeWithBlueprints();
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
get initializing() {
|
|
@@ -59,8 +59,9 @@ export const enumClientI18nFiles = {
|
|
|
59
59
|
export function writeEntityFiles() {
|
|
60
60
|
return {
|
|
61
61
|
async writeEnumFiles({ entities, application }) {
|
|
62
|
-
if (
|
|
62
|
+
if (application.skipClient)
|
|
63
63
|
return;
|
|
64
|
+
const languagesToApply = application.enableTranslation ? this.languagesToApply : [...new Set([application.nativeLanguage, 'en'])];
|
|
64
65
|
entities = entities.filter(entity => !entity.skipClient && !entity.builtInUser);
|
|
65
66
|
const { clientSrcDir, packageName, frontendAppName } = application;
|
|
66
67
|
await Promise.all(entities
|
|
@@ -68,7 +69,7 @@ export function writeEntityFiles() {
|
|
|
68
69
|
.map(field => {
|
|
69
70
|
if (!field.fieldIsEnum)
|
|
70
71
|
return undefined;
|
|
71
|
-
return
|
|
72
|
+
return languagesToApply.map(lang => this.writeFiles({
|
|
72
73
|
sections: enumClientI18nFiles,
|
|
73
74
|
context: {
|
|
74
75
|
...getEnumInfo(field, entity.clientRootFolder),
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
*/
|
|
19
19
|
/* eslint-disable consistent-return */
|
|
20
20
|
import chalk from 'chalk';
|
|
21
|
-
import
|
|
21
|
+
import { padEnd, startCase } from 'lodash-es';
|
|
22
22
|
import BaseApplicationGenerator from '../base-application/index.js';
|
|
23
23
|
import { askForLanguages, askI18n } from './prompts.js';
|
|
24
24
|
import statistics from '../statistics.js';
|
|
25
|
-
import { GENERATOR_LANGUAGES
|
|
25
|
+
import { GENERATOR_LANGUAGES } from '../generator-list.js';
|
|
26
26
|
import { clientI18nFiles } from './files.js';
|
|
27
27
|
import { writeEntityFiles } from './entity-files.js';
|
|
28
28
|
import TranslationData, { createTranslationsFileFilter, createTranslationsFilter } from './translation-data.js';
|
|
@@ -32,10 +32,8 @@ import { updateLanguagesTask as updateLanguagesInReact } from '../react/support/
|
|
|
32
32
|
import { updateLanguagesTask as updateLanguagesInVue } from '../vue/support/index.js';
|
|
33
33
|
import { updateLanguagesTask as updateLanguagesInJava } from '../server/support/index.js';
|
|
34
34
|
import { SERVER_MAIN_RES_DIR, SERVER_TEST_RES_DIR } from '../generator-constants.js';
|
|
35
|
-
import command from './command.js';
|
|
36
35
|
import { QUEUES } from '../base-application/priorities.js';
|
|
37
36
|
import { PRIORITY_NAMES } from '../base/priorities.js';
|
|
38
|
-
const { startCase } = _;
|
|
39
37
|
/**
|
|
40
38
|
* This is the base class for a generator that generates entities.
|
|
41
39
|
*
|
|
@@ -62,10 +60,10 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
62
60
|
async beforeQueue() {
|
|
63
61
|
this.supportedLanguages = supportedLanguages;
|
|
64
62
|
if (!this.fromBlueprint) {
|
|
65
|
-
this.composedBlueprints = await this.composeWithBlueprints(
|
|
63
|
+
this.composedBlueprints = await this.composeWithBlueprints();
|
|
66
64
|
}
|
|
67
65
|
if (!this.delegateToBlueprint) {
|
|
68
|
-
await this.
|
|
66
|
+
await this.dependsOnBootstrapApplication();
|
|
69
67
|
}
|
|
70
68
|
if (!this.jhipsterConfigWithDefaults.skipClient &&
|
|
71
69
|
this.jhipsterConfigWithDefaults.clientFramework !== 'no' &&
|
|
@@ -79,9 +77,8 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
79
77
|
// Public API method used by the getter and also by Blueprints
|
|
80
78
|
get initializing() {
|
|
81
79
|
return this.asInitializingTaskGroup({
|
|
82
|
-
|
|
83
|
-
this.
|
|
84
|
-
this.parseJHipsterOptions(command.options);
|
|
80
|
+
async parseCommand() {
|
|
81
|
+
await this.parseCurrentJHipsterCommand();
|
|
85
82
|
},
|
|
86
83
|
languagesToApply() {
|
|
87
84
|
// Validate languages passed as argument.
|
|
@@ -99,7 +96,7 @@ export default class LanguagesGenerator extends BaseApplicationGenerator {
|
|
|
99
96
|
if (unsupportedLanguage) {
|
|
100
97
|
throw new Error(`Unsupported language "${unsupportedLanguage}" passed as argument to language generator.` +
|
|
101
98
|
`\nSupported languages: ${this.supportedLanguages
|
|
102
|
-
.map(language => `\n ${
|
|
99
|
+
.map(language => `\n ${padEnd(language.languageTag, 5)} (${language.name})`)
|
|
103
100
|
.join('')}`);
|
|
104
101
|
}
|
|
105
102
|
}
|
|
@@ -17,17 +17,19 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
const TRANSLATE_FUNCTION_ARGS = /\(\s*'(?<key>[^']+)'(?:,\s*(?<interpolate>\{(?:(?!\}\))[\s\S])*\}))?\)/gs.source;
|
|
20
|
+
export const escapeHtmlTranslationValue = (translation) => translation.replace(/'/g, ''').replace(/"/g, '"').replace(/@/g, '@');
|
|
21
|
+
export const escapeTsTranslationValue = (translation) => translation.replace(/'/g, "\\'").replace(/\\/g, '\\\\');
|
|
20
22
|
function getTranslationValue(getWebappTranslation, key, data) {
|
|
21
23
|
return getWebappTranslation(key, data) || undefined;
|
|
22
24
|
}
|
|
23
25
|
export const replaceTranslationKeysWithText = (getWebappTranslation, body, regexp, { keyPattern, interpolatePattern, wrapTranslation, escapeHtml, stringify } = {}) => {
|
|
24
|
-
const matches = body.matchAll(new RegExp(regexp, 'g'));
|
|
26
|
+
const matches = [...body.matchAll(new RegExp(regexp, 'g'))].reverse();
|
|
25
27
|
if (typeof wrapTranslation === 'string') {
|
|
26
28
|
wrapTranslation = [wrapTranslation, wrapTranslation];
|
|
27
29
|
}
|
|
28
30
|
for (const match of matches) {
|
|
29
31
|
const target = match[0];
|
|
30
|
-
let key = match
|
|
32
|
+
let key = match.groups?.key;
|
|
31
33
|
if (!key && keyPattern) {
|
|
32
34
|
const keyMatch = target.match(new RegExp(keyPattern));
|
|
33
35
|
key = keyMatch?.groups?.key;
|
|
@@ -35,7 +37,7 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
|
|
|
35
37
|
if (!key) {
|
|
36
38
|
throw new Error(`Translation key not found for ${target}`);
|
|
37
39
|
}
|
|
38
|
-
let interpolate = match.groups
|
|
40
|
+
let interpolate = match.groups?.interpolate;
|
|
39
41
|
if (!interpolate && interpolatePattern) {
|
|
40
42
|
const interpolateMatch = target.match(new RegExp(interpolatePattern));
|
|
41
43
|
interpolate = interpolateMatch?.groups?.interpolate;
|
|
@@ -44,10 +46,7 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
|
|
|
44
46
|
if (interpolate) {
|
|
45
47
|
data = {};
|
|
46
48
|
try {
|
|
47
|
-
|
|
48
|
-
for (const [field, value] of Object.entries(interpolateValues)) {
|
|
49
|
-
data[field] = value;
|
|
50
|
-
}
|
|
49
|
+
data = JSON.parse(interpolate);
|
|
51
50
|
}
|
|
52
51
|
catch {
|
|
53
52
|
throw new Error(`Translation interpolations values should be a JSON, ${interpolate}`);
|
|
@@ -63,12 +62,12 @@ export const replaceTranslationKeysWithText = (getWebappTranslation, body, regex
|
|
|
63
62
|
}
|
|
64
63
|
else if (escapeHtml) {
|
|
65
64
|
// Escape specific chars
|
|
66
|
-
replacement = replacement
|
|
65
|
+
replacement = escapeHtmlTranslationValue(replacement);
|
|
67
66
|
}
|
|
68
67
|
else if (stringify) {
|
|
69
68
|
replacement = JSON.stringify(replacement);
|
|
70
69
|
}
|
|
71
|
-
body = body.
|
|
70
|
+
body = `${body.slice(0, match.index)}${replacement}${body.slice(match.index + target.length)}`;
|
|
72
71
|
}
|
|
73
72
|
return body;
|
|
74
73
|
};
|
|
@@ -76,3 +75,29 @@ export const createJhiTransformTranslateReplacer = (getWebappTranslation, transl
|
|
|
76
75
|
export const createJhiTransformTranslateStringifyReplacer = getWebappTranslation => (body) => replaceTranslationKeysWithText(getWebappTranslation, body, `__jhiTransformTranslateStringify__${TRANSLATE_FUNCTION_ARGS}`, {
|
|
77
76
|
stringify: true,
|
|
78
77
|
});
|
|
78
|
+
export const replaceTranslateContents = (body, filePath, regexp, converter) => {
|
|
79
|
+
const matches = [...body.matchAll(new RegExp(regexp, 'g'))].reverse();
|
|
80
|
+
for (const match of matches) {
|
|
81
|
+
const target = match[0];
|
|
82
|
+
const { key, interpolate, type, prefix = '', suffix = '' } = match.groups ?? {};
|
|
83
|
+
if (!type) {
|
|
84
|
+
throw new Error(`Translation type not found for ${target}`);
|
|
85
|
+
}
|
|
86
|
+
if (!key) {
|
|
87
|
+
throw new Error(`Translation key not found for ${target}`);
|
|
88
|
+
}
|
|
89
|
+
let parsedInterpolate;
|
|
90
|
+
if (interpolate) {
|
|
91
|
+
parsedInterpolate = {};
|
|
92
|
+
try {
|
|
93
|
+
parsedInterpolate = JSON.parse(interpolate);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
throw new Error(`Translation interpolations values should be a JSON, ${interpolate}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
body = `${body.slice(0, match.index)}${converter({ filePath, key, interpolate, parsedInterpolate, type, prefix, suffix })}${body.slice(match.index + target.length)}`;
|
|
100
|
+
}
|
|
101
|
+
return body;
|
|
102
|
+
};
|
|
103
|
+
export const createJhiTranslateReplacer = (converter, { prefixPattern = '', suffixPattern = '' } = {}) => (body, filePath) => replaceTranslateContents(body, filePath, `${prefixPattern ? `(?<prefix>(${prefixPattern}))?` : ''}__jhiTranslate(?<type>(\\w+))__${TRANSLATE_FUNCTION_ARGS}${suffixPattern ? `(?<suffix>(${suffixPattern}))?` : ''}`, converter);
|
|
@@ -17,10 +17,9 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import { inspect } from 'node:util';
|
|
20
|
-
import
|
|
20
|
+
import { defaultsDeep, get, merge, template } from 'lodash-es';
|
|
21
21
|
import { transform } from '@yeoman/transform';
|
|
22
22
|
import { Minimatch } from 'minimatch';
|
|
23
|
-
const { get } = _;
|
|
24
23
|
export const createTranslationsFilter = ({ clientSrcDir, nativeLanguage, fallbackLanguage }) => {
|
|
25
24
|
const pattern = !fallbackLanguage || nativeLanguage === fallbackLanguage
|
|
26
25
|
? `**/${clientSrcDir}i18n/${nativeLanguage}/*.json`
|
|
@@ -57,10 +56,10 @@ export default class TranslationData {
|
|
|
57
56
|
}
|
|
58
57
|
mergeTranslation(translation, fallback) {
|
|
59
58
|
if (fallback) {
|
|
60
|
-
|
|
59
|
+
defaultsDeep(this.translations, translation);
|
|
61
60
|
}
|
|
62
61
|
else {
|
|
63
|
-
|
|
62
|
+
merge(this.translations, translation);
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
/**
|
|
@@ -90,7 +89,7 @@ export default class TranslationData {
|
|
|
90
89
|
if (translatedValue.includes('{{ login }}') && !data.login) {
|
|
91
90
|
data.login = data.id;
|
|
92
91
|
}
|
|
93
|
-
const compiledTemplate =
|
|
92
|
+
const compiledTemplate = template(translatedValue, { interpolate: /{{([\s\S]+?)}}/g });
|
|
94
93
|
return compiledTemplate(data);
|
|
95
94
|
}
|
|
96
95
|
}
|