generator-jhipster 7.6.0 → 7.7.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 -3
- package/cli/commands.js +3 -0
- package/cli/environment-builder.js +53 -18
- package/cli/import-jdl.js +3 -0
- package/cli/index.mjs +20 -0
- package/cli/jhipster.js +19 -11
- package/cli/program.js +94 -38
- package/generators/app/esm.mjs +1 -3
- package/generators/app/index.js +1 -16
- package/generators/aws/esm.mjs +1 -3
- package/generators/azure-app-service/esm.mjs +1 -3
- package/generators/azure-spring-cloud/esm.mjs +1 -3
- package/generators/base/esm.mjs +1 -3
- package/generators/bootstrap/esm.mjs +1 -3
- package/generators/bootstrap/index.js +36 -86
- package/generators/bootstrap-application/esm.mjs +19 -0
- package/generators/bootstrap-application/generator.mjs +353 -0
- package/generators/bootstrap-application/index.mjs +19 -0
- package/generators/ci-cd/esm.mjs +1 -3
- package/generators/ci-cd/prompts.js +1 -1
- package/generators/ci-cd/templates/github-actions.yml.ejs +2 -2
- package/generators/client/esm.mjs +5 -3
- package/generators/client/files-angular.js +9 -0
- package/generators/client/files-common.js +8 -7
- package/generators/client/files-vue.js +7 -6
- package/generators/client/index.js +2 -1
- package/generators/client/templates/angular/angular.json.ejs +1 -1
- package/generators/client/templates/angular/package.json +25 -22
- package/generators/client/templates/angular/package.json.ejs +5 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +51 -49
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +32 -32
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +18 -18
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +12 -12
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +11 -11
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +4 -2
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +0 -6
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +0 -6
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/content/scss/_bootstrap-variables.scss.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +29 -0
- package/generators/client/templates/angular/src/main/webapp/content/scss/vendor.scss.ejs +0 -4
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +19 -0
- package/generators/client/templates/common/package.json +2 -2
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
- package/generators/client/templates/react/package.json +33 -33
- package/generators/client/templates/vue/package.json +23 -23
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +3 -3
- package/generators/client/templates/vue/src/main/webapp/app/entities/user/user.service.ts.ejs +0 -0
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +29 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +0 -4
- package/generators/cloudfoundry/esm.mjs +1 -3
- package/generators/common/esm.mjs +2 -3
- package/generators/common/files.js +1 -2
- package/generators/common/index.js +6 -0
- package/generators/common/templates/.husky/{pre-commit → pre-commit.ejs} +4 -0
- package/generators/common/templates/README.md.jhi.ejs +3 -1
- package/generators/common/templates/package.json +3 -3
- package/generators/common/templates/sonar-project.properties.ejs +1 -1
- package/generators/cypress/esm.mjs +2 -3
- package/generators/cypress/files.js +2 -1
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +18 -14
- package/generators/database-changelog/esm.mjs +1 -3
- package/generators/database-changelog/index.js +1 -1
- package/generators/database-changelog-liquibase/esm.mjs +2 -3
- package/generators/docker-compose/esm.mjs +1 -3
- package/generators/entities/esm.mjs +1 -3
- package/generators/entities/index.js +2 -2
- package/generators/entities-client/esm.mjs +1 -3
- package/generators/entity/esm.mjs +1 -3
- package/generators/entity/index.js +11 -15
- package/generators/entity/prompts.js +4 -1
- package/generators/entity-client/esm.mjs +2 -3
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +2 -2
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +20 -21
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +14 -16
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +2 -2
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-reducer.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +1 -1
- package/generators/entity-client/templates/react/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
- package/generators/entity-i18n/esm.mjs +2 -3
- package/generators/entity-server/esm.mjs +2 -3
- package/generators/entity-server/files-couchbase.js +23 -2
- package/generators/entity-server/files.js +16 -2
- package/generators/entity-server/index.js +8 -1
- package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +11 -13
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +23 -59
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +5 -6
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.n1ql.ejs +5 -0
- package/generators/entity-server/templates/partials/it_patch_update.partial.java.ejs +2 -2
- package/generators/entity-server/templates/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +4 -4
- package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +31 -18
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +37 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +90 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +3 -5
- package/generators/entity-server/templates/src/main/java/package/repository/search/{SortToFieldSortBuilderConverter.java.ejs → SortToSortBuilderListConverter.java.ejs} +4 -3
- package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +8 -6
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +6 -6
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +5 -5
- package/generators/export-jdl/esm.mjs +1 -3
- package/generators/gae/esm.mjs +1 -3
- package/generators/generate-blueprint/constants.mjs +146 -0
- package/generators/generate-blueprint/esm.mjs +19 -0
- package/generators/generate-blueprint/files.mjs +81 -0
- package/generators/generate-blueprint/generator.mjs +363 -0
- package/generators/generate-blueprint/index.mjs +20 -0
- package/generators/generate-blueprint/templates/.eslintrc.json.ejs +41 -0
- package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +32 -0
- package/generators/generate-blueprint/templates/.mocharc.cjs.ejs +29 -0
- package/generators/{server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs → generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs} +4 -7
- package/generators/generate-blueprint/templates/README.md.ejs +75 -0
- package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +35 -0
- package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +25 -0
- package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +98 -0
- package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +42 -0
- package/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +19 -0
- package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
- package/generators/generate-blueprint/templates/test/utils.mjs.ejs +17 -0
- package/generators/generator-base-blueprint.js +29 -0
- package/generators/generator-base-docker.js +1 -0
- package/generators/generator-base-entities.cjs +368 -0
- package/generators/generator-base.js +128 -23
- package/generators/generator-constants.js +18 -16
- package/generators/generator-list.js +2 -0
- package/generators/gradle/esm.mjs +19 -0
- package/generators/heroku/esm.mjs +1 -3
- package/generators/info/esm.mjs +1 -3
- package/generators/init/esm.mjs +19 -0
- package/generators/init/files.cjs +9 -3
- package/generators/init/index.cjs +5 -0
- package/generators/init/templates/.gitignore.jhi.ejs +5 -0
- package/generators/init/templates/{.lintstagedrc.js.ejs → .lintstagedrc.cjs.ejs} +0 -0
- package/generators/java/esm.mjs +19 -0
- package/generators/java/index.cjs +58 -2
- package/generators/kubernetes/esm.mjs +1 -3
- package/generators/kubernetes-helm/esm.mjs +1 -3
- package/generators/kubernetes-knative/esm.mjs +1 -3
- package/generators/languages/esm.mjs +2 -3
- package/generators/languages/templates/src/test/resources/i18n/messages_fr.properties.ejs +4 -1
- package/generators/maven/esm.mjs +19 -0
- package/generators/openapi-client/esm.mjs +1 -3
- package/generators/openapi-client/index.js +11 -4
- package/generators/openshift/esm.mjs +1 -3
- package/generators/page/esm.mjs +1 -3
- package/generators/project-name/esm.mjs +19 -0
- package/generators/server/esm.mjs +2 -2
- package/generators/server/files-couchbase.js +28 -31
- package/generators/server/files.js +14 -1
- package/generators/server/index.js +13 -13
- package/generators/server/needle-api/needle-server-maven.js +1 -1
- package/generators/server/templates/couchbase/src/main/java/package/repository/CouchbaseSearchRepository.java.ejs +91 -0
- package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +43 -64
- package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_ADMIN.json.ejs +3 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_USER.json.ejs +3 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__admin.json.ejs → user/admin.json.ejs} +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__user.json.ejs → user/user.json.ejs} +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.2__create_indexes.n1ql.ejs +34 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_collections.n1ql.ejs +8 -0
- package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +4 -3
- package/generators/server/templates/couchbase/src/test/java/package/repository/{JHipsterCouchbaseRepositoryTest.java.ejs → CouchbaseSearchRepositoryTest.java.ejs} +2 -2
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +4 -0
- package/generators/server/templates/gradle.properties.ejs +6 -6
- package/generators/server/templates/npmw +14 -5
- package/generators/server/templates/pom.xml.ejs +47 -42
- package/generators/server/templates/src/main/docker/app.yml.ejs +4 -2
- package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration_reactive.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +2 -1
- package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +11 -0
- package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +6 -6
- package/generators/server/templates/src/main/java/package/domain/User.java.ejs +9 -7
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +1 -11
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +48 -72
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +8 -6
- package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +0 -1
- package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +8 -0
- package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +6 -0
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +2 -0
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +3 -1
- package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +21 -15
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs +8 -0
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +17 -3
- package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +13 -6
- package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +1 -6
- package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +40 -42
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
- package/generators/spring-boot/esm.mjs +19 -0
- package/generators/spring-controller/esm.mjs +1 -3
- package/generators/spring-service/esm.mjs +1 -3
- package/generators/upgrade/esm.mjs +1 -3
- package/generators/upgrade-config/esm.mjs +1 -3
- package/generators/workspaces/esm.mjs +1 -3
- package/lib/constants/logo.cjs +30 -0
- package/lib/constants/priorities.cjs +216 -2
- package/lib/constants/priorities.mjs +29 -1
- package/lib/index.mjs +6 -0
- package/lib/support/mixin.cjs +5 -1
- package/lib/support/shared-data.cjs +34 -1
- package/package.json +27 -23
- package/utils/entity.js +19 -2
- package/utils/faker.js +3 -3
- package/utils/field.js +61 -49
- package/utils/relationship.js +5 -3
- package/utils/user.js +109 -0
- package/generators/app/generator.spec.mjs +0 -47
- package/generators/aws/generator.spec.mjs +0 -47
- package/generators/azure-app-service/generator.spec.mjs +0 -47
- package/generators/azure-spring-cloud/generator.spec.mjs +0 -47
- package/generators/base/generator.spec.mjs +0 -44
- package/generators/bootstrap/generator.spec.mjs +0 -44
- package/generators/ci-cd/generator.spec.mjs +0 -47
- package/generators/client/__workflow/devserver-angular.json +0 -13
- package/generators/client/__workflow/devserver-react.json +0 -13
- package/generators/client/__workflow/devserver-vue.json +0 -13
- package/generators/client/generator.spec.mjs +0 -47
- package/generators/cloudfoundry/generator.spec.mjs +0 -47
- package/generators/common/generator.spec.mjs +0 -47
- package/generators/cypress/generator.spec.mjs +0 -47
- package/generators/database-changelog/generator.spec.mjs +0 -47
- package/generators/database-changelog-liquibase/generator.spec.mjs +0 -47
- package/generators/docker-compose/generator.spec.mjs +0 -44
- package/generators/entities/generator.spec.mjs +0 -47
- package/generators/entities-client/generator.spec.mjs +0 -47
- package/generators/entity/generator.spec.mjs +0 -47
- package/generators/entity-client/generator.spec.mjs +0 -47
- package/generators/entity-i18n/generator.spec.mjs +0 -47
- package/generators/entity-server/generator.spec.mjs +0 -47
- package/generators/export-jdl/generator.spec.mjs +0 -44
- package/generators/gae/generator.spec.mjs +0 -47
- package/generators/gradle/__snapshots__/generator.spec.cjs.snap +0 -59
- package/generators/gradle/generator.spec.cjs +0 -71
- package/generators/heroku/generator.spec.mjs +0 -47
- package/generators/info/generator.spec.mjs +0 -44
- package/generators/init/__snapshots__/generator.spec.cjs.snap +0 -65
- package/generators/init/generator.spec.cjs +0 -112
- package/generators/java/__snapshots__/generator.spec.cjs.snap +0 -118
- package/generators/java/generator.spec.cjs +0 -87
- package/generators/kubernetes/generator.spec.mjs +0 -44
- package/generators/kubernetes-helm/generator.spec.mjs +0 -44
- package/generators/kubernetes-knative/generator.spec.mjs +0 -44
- package/generators/languages/generator.spec.mjs +0 -47
- package/generators/maven/__snapshots__/generator.spec.cjs.snap +0 -53
- package/generators/maven/generator.spec.cjs +0 -78
- package/generators/openapi-client/generator.spec.mjs +0 -47
- package/generators/openshift/generator.spec.mjs +0 -44
- package/generators/page/generator.spec.mjs +0 -47
- package/generators/project-name/generator.spec.cjs +0 -43
- package/generators/server/__snapshots__/generator.spec.mjs.snap +0 -1931
- package/generators/server/generator.spec.mjs +0 -52
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +0 -83
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +0 -40
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +0 -44
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +0 -162
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +0 -104
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -3
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -3
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +0 -19
- package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +0 -80
- package/generators/spring-boot/generator.spec.cjs +0 -64
- package/generators/spring-controller/generator.spec.mjs +0 -47
- package/generators/spring-service/generator.spec.mjs +0 -47
- package/generators/upgrade/generator.spec.mjs +0 -44
- package/generators/upgrade-config/generator.spec.mjs +0 -44
- package/generators/workspaces/generator.spec.mjs +0 -47
package/lib/index.mjs
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as constants } from '../generators/generator-constants.js';
|
|
2
|
+
export { default as utils } from '../generators/utils.js';
|
|
3
|
+
|
|
4
|
+
export { default as GeneratorBase } from '../generators/generator-base.js';
|
|
5
|
+
export { default as GeneratorBaseBlueprint } from '../generators/generator-base-blueprint.js';
|
|
6
|
+
export { default as GeneratorBaseEntities } from '../generators/generator-base-entities.cjs';
|
package/lib/support/mixin.cjs
CHANGED
|
@@ -55,9 +55,13 @@ function getChain(...generators) {
|
|
|
55
55
|
* @returns Class
|
|
56
56
|
*/
|
|
57
57
|
module.exports.generateMixedChain = (...generators) => {
|
|
58
|
+
let baseGenerator = GeneratorBaseBlueprint;
|
|
59
|
+
if (typeof generators[0] !== 'string') {
|
|
60
|
+
baseGenerator = generators.shift();
|
|
61
|
+
}
|
|
58
62
|
const mixedChain = getChain(...generators);
|
|
59
63
|
|
|
60
|
-
let MixedClass = class extends
|
|
64
|
+
let MixedClass = class extends baseGenerator {
|
|
61
65
|
constructor(args, options, features) {
|
|
62
66
|
super(args, options, features);
|
|
63
67
|
if (!this.fromBlueprint && this.features.taskPrefix === undefined) {
|
|
@@ -19,9 +19,17 @@
|
|
|
19
19
|
const assert = require('assert');
|
|
20
20
|
|
|
21
21
|
module.exports = class SharedData {
|
|
22
|
-
constructor() {
|
|
22
|
+
constructor(storage) {
|
|
23
|
+
if (!storage) {
|
|
24
|
+
throw new Error('Storage is required for SharedData');
|
|
25
|
+
}
|
|
23
26
|
this._configDefaultValues = {};
|
|
24
27
|
this._configChoices = {};
|
|
28
|
+
|
|
29
|
+
// Backward compatibility sharedData
|
|
30
|
+
this._storage = storage;
|
|
31
|
+
this._storage.sharedEntities = this._storage.sharedEntities || {};
|
|
32
|
+
this._storage.sharedApplication = this._storage.sharedApplication || {};
|
|
25
33
|
}
|
|
26
34
|
|
|
27
35
|
/**
|
|
@@ -71,4 +79,29 @@ module.exports = class SharedData {
|
|
|
71
79
|
assert(Array.isArray(choices), `Choices must be an array for ${configName}`);
|
|
72
80
|
this._configChoices[configName] = choices;
|
|
73
81
|
}
|
|
82
|
+
|
|
83
|
+
getApplication() {
|
|
84
|
+
if (!this._storage.sharedApplication) throw new Error('Shared application not loaded');
|
|
85
|
+
return this._storage.sharedApplication;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
setEntity(entityName, entity) {
|
|
89
|
+
this._storage.sharedEntities[entityName] = entity;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
hasEntity(entityName) {
|
|
93
|
+
return Boolean(this._storage.sharedEntities[entityName]);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
getEntity(entityName) {
|
|
97
|
+
const entity = this._storage.sharedEntities[entityName];
|
|
98
|
+
if (!entity) {
|
|
99
|
+
throw new Error(`Entity definition not loaded for ${entityName}`);
|
|
100
|
+
}
|
|
101
|
+
return entity;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
getEntities(entityNames = Object.keys(this._storage.sharedEntities)) {
|
|
105
|
+
return entityNames.map(entityName => ({ entityName, entity: this.getEntity(entityName) }));
|
|
106
|
+
}
|
|
74
107
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generator-jhipster",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.7.0",
|
|
4
4
|
"description": "Spring Boot + Angular/React/Vue in one handy generator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"yeoman-generator",
|
|
@@ -35,14 +35,17 @@
|
|
|
35
35
|
"url": "https://github.com/jdubois"
|
|
36
36
|
},
|
|
37
37
|
"exports": {
|
|
38
|
-
".":
|
|
38
|
+
".": {
|
|
39
|
+
"import": "./lib/index.mjs",
|
|
40
|
+
"default": "./lib/index.js"
|
|
41
|
+
},
|
|
39
42
|
"./cli/": "./cli/",
|
|
40
43
|
"./generators/": "./generators/",
|
|
41
44
|
"./jdl/": "./jdl/",
|
|
42
45
|
"./lib/": "./lib/",
|
|
43
46
|
"./utils/": "./utils/",
|
|
44
47
|
"./package.json": "./package.json",
|
|
45
|
-
"./esm/cli": "./cli/
|
|
48
|
+
"./esm/cli": "./cli/index.mjs",
|
|
46
49
|
"./esm/generators/*": "./generators/*/esm.mjs",
|
|
47
50
|
"./esm/generators": "./lib/constants/generators.mjs",
|
|
48
51
|
"./esm/priorities": "./lib/constants/priorities.mjs",
|
|
@@ -58,9 +61,9 @@
|
|
|
58
61
|
"jdl",
|
|
59
62
|
"lib",
|
|
60
63
|
"utils",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
+
"!**/__*",
|
|
65
|
+
"!**/*.snap",
|
|
66
|
+
"!**/*.spec.?(c|m)js"
|
|
64
67
|
],
|
|
65
68
|
"scripts": {
|
|
66
69
|
"completion": "tabtab install --name jhipster --auto",
|
|
@@ -80,22 +83,22 @@
|
|
|
80
83
|
"update-snapshots": "npm run update-snapshot -- test generators"
|
|
81
84
|
},
|
|
82
85
|
"dependencies": {
|
|
83
|
-
"
|
|
84
|
-
"
|
|
86
|
+
"@faker-js/faker": "5.5.3",
|
|
87
|
+
"aws-sdk": "2.1077.0",
|
|
88
|
+
"axios": "0.26.0",
|
|
85
89
|
"chalk": "4.1.2",
|
|
86
|
-
"chevrotain": "10.
|
|
87
|
-
"commander": "
|
|
90
|
+
"chevrotain": "10.1.1",
|
|
91
|
+
"commander": "9.0.0",
|
|
88
92
|
"conf": "10.1.1",
|
|
89
93
|
"debug": "4.3.3",
|
|
90
94
|
"didyoumean": "1.2.2",
|
|
91
95
|
"ejs": "3.1.6",
|
|
92
|
-
"faker": "5.5.3",
|
|
93
96
|
"glob": "7.2.0",
|
|
94
97
|
"insight": "0.11.1",
|
|
95
98
|
"js-yaml": "4.1.0",
|
|
96
99
|
"lodash": "4.17.21",
|
|
97
100
|
"mem-fs-editor": "9.4.0",
|
|
98
|
-
"minimatch": "
|
|
101
|
+
"minimatch": "5.0.0",
|
|
99
102
|
"normalize-path": "3.0.0",
|
|
100
103
|
"os-locale": "5.0.0",
|
|
101
104
|
"p-queue": "6.6.2",
|
|
@@ -109,33 +112,34 @@
|
|
|
109
112
|
"randexp": "0.5.3",
|
|
110
113
|
"semver": "7.3.5",
|
|
111
114
|
"shelljs": "0.8.5",
|
|
112
|
-
"simple-git": "3.
|
|
115
|
+
"simple-git": "3.2.6",
|
|
113
116
|
"then-request": "6.0.2",
|
|
114
117
|
"uuid": "8.3.2",
|
|
115
|
-
"winston": "3.
|
|
118
|
+
"winston": "3.6.0",
|
|
116
119
|
"yeoman-environment": "3.9.1",
|
|
117
120
|
"yeoman-generator": "5.6.1"
|
|
118
121
|
},
|
|
119
122
|
"devDependencies": {
|
|
120
|
-
"chai": "4.3.
|
|
123
|
+
"chai": "4.3.6",
|
|
121
124
|
"ejs-lint": "1.2.1",
|
|
122
|
-
"eslint": "8.
|
|
125
|
+
"eslint": "8.9.0",
|
|
123
126
|
"eslint-config-airbnb-base": "15.0.0",
|
|
124
|
-
"eslint-config-prettier": "8.
|
|
127
|
+
"eslint-config-prettier": "8.4.0",
|
|
125
128
|
"eslint-plugin-chai-friendly": "^0.7.1",
|
|
126
129
|
"eslint-plugin-import": "2.25.4",
|
|
127
130
|
"eslint-plugin-mocha": "10.0.3",
|
|
128
131
|
"eslint-plugin-prettier": "4.0.0",
|
|
129
|
-
"expect": "27.
|
|
132
|
+
"expect": "27.5.1",
|
|
130
133
|
"fs-extra": "10.0.0",
|
|
131
|
-
"jsdoc": "3.6.
|
|
132
|
-
"mocha": "9.1
|
|
133
|
-
"mocha-expect-snapshot": "
|
|
134
|
+
"jsdoc": "3.6.10",
|
|
135
|
+
"mocha": "9.2.1",
|
|
136
|
+
"mocha-expect-snapshot": "3.1.0",
|
|
134
137
|
"proxyquire": "2.1.3",
|
|
135
|
-
"sinon": "
|
|
138
|
+
"sinon": "13.0.1",
|
|
136
139
|
"sinon-chai": "3.7.0",
|
|
140
|
+
"sort-keys": "4.2.0",
|
|
137
141
|
"yeoman-assert": "3.1.1",
|
|
138
|
-
"yeoman-test": "6.
|
|
142
|
+
"yeoman-test": "6.3.0"
|
|
139
143
|
},
|
|
140
144
|
"engines": {
|
|
141
145
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0",
|
package/utils/entity.js
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
const _ = require('lodash');
|
|
21
21
|
const pluralize = require('pluralize');
|
|
22
|
+
const path = require('path');
|
|
23
|
+
|
|
22
24
|
const { createFaker } = require('./faker');
|
|
23
25
|
const { parseLiquibaseChangelogDate } = require('./liquibase');
|
|
24
26
|
const { entityDefaultConfig } = require('../generators/generator-defaults');
|
|
@@ -84,7 +86,7 @@ const BASE_TEMPLATE_DATA = {
|
|
|
84
86
|
return [];
|
|
85
87
|
},
|
|
86
88
|
get differentRelationships() {
|
|
87
|
-
return
|
|
89
|
+
return {};
|
|
88
90
|
},
|
|
89
91
|
get i18nToLoad() {
|
|
90
92
|
return [];
|
|
@@ -109,7 +111,9 @@ function prepareEntityForTemplates(entityWithConfig, generator) {
|
|
|
109
111
|
const entityName = _.upperFirst(entityWithConfig.name);
|
|
110
112
|
_.defaults(entityWithConfig, entityDefaultConfig, BASE_TEMPLATE_DATA);
|
|
111
113
|
|
|
112
|
-
|
|
114
|
+
if (entityWithConfig.changelogDate) {
|
|
115
|
+
entityWithConfig.changelogDateForRecent = parseLiquibaseChangelogDate(entityWithConfig.changelogDate);
|
|
116
|
+
}
|
|
113
117
|
entityWithConfig.faker = entityWithConfig.faker || createFaker(generator.jhipsterConfig.nativeLanguage);
|
|
114
118
|
entityWithConfig.resetFakerSeed = (suffix = '') =>
|
|
115
119
|
entityWithConfig.faker.seed(stringHashCode(entityWithConfig.name.toLowerCase() + suffix));
|
|
@@ -238,6 +242,18 @@ function prepareEntityForTemplates(entityWithConfig, generator) {
|
|
|
238
242
|
return entityWithConfig;
|
|
239
243
|
}
|
|
240
244
|
|
|
245
|
+
function prepareEntityServerDomainForTemplates(entity) {
|
|
246
|
+
const { entityPackage, packageName, packageFolder, persistClass } = entity;
|
|
247
|
+
let { entityAbsolutePackage = packageName, entityAbsoluteFolder = packageFolder } = entity;
|
|
248
|
+
if (entityPackage) {
|
|
249
|
+
entityAbsolutePackage = [packageName, entityPackage].join('.');
|
|
250
|
+
entityAbsoluteFolder = path.join(packageFolder, entityPackage.replace(/\./g, '/'));
|
|
251
|
+
}
|
|
252
|
+
entity.entityAbsolutePackage = entityAbsolutePackage;
|
|
253
|
+
entity.entityAbsoluteFolder = entityAbsoluteFolder;
|
|
254
|
+
entity.entityAbsoluteClass = `${entityAbsolutePackage}.domain.${persistClass}`;
|
|
255
|
+
}
|
|
256
|
+
|
|
241
257
|
function derivedPrimaryKeyProperties(primaryKey) {
|
|
242
258
|
_.defaults(primaryKey, {
|
|
243
259
|
hasUUID: primaryKey.fields && primaryKey.fields.some(field => field.fieldType === UUID),
|
|
@@ -465,6 +481,7 @@ function loadRequiredConfigIntoEntity(entity, config) {
|
|
|
465
481
|
|
|
466
482
|
module.exports = {
|
|
467
483
|
prepareEntityForTemplates,
|
|
484
|
+
prepareEntityServerDomainForTemplates,
|
|
468
485
|
prepareEntityPrimaryKeyForTemplates,
|
|
469
486
|
loadRequiredConfigIntoEntity,
|
|
470
487
|
derivedPrimaryKeyProperties,
|
package/utils/faker.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
const Faker = require('faker/lib');
|
|
19
|
+
const Faker = require('@faker-js/faker/lib');
|
|
20
20
|
const Randexp = require('randexp');
|
|
21
21
|
|
|
22
22
|
const { languageToJavaLanguage } = require('../generators/utils');
|
|
@@ -46,11 +46,11 @@ function createFaker(nativeLanguage = 'en') {
|
|
|
46
46
|
nativeLanguage = languageToJavaLanguage(nativeLanguage);
|
|
47
47
|
// Fallback language
|
|
48
48
|
// eslint-disable-next-line global-require
|
|
49
|
-
const locales = { en: require('faker/lib/locales/en') };
|
|
49
|
+
const locales = { en: require('@faker-js/faker/lib/locales/en') };
|
|
50
50
|
if (nativeLanguage !== 'en') {
|
|
51
51
|
try {
|
|
52
52
|
// eslint-disable-next-line global-require, import/no-dynamic-require
|
|
53
|
-
const nativeLanguageLocale = require(
|
|
53
|
+
const nativeLanguageLocale = require(`@faker-js/faker/lib/locales/${nativeLanguage}`);
|
|
54
54
|
locales[nativeLanguage] = nativeLanguageLocale;
|
|
55
55
|
} catch (error) {
|
|
56
56
|
// Faker not implemented for the native language, fallback to en.
|
package/utils/field.js
CHANGED
|
@@ -300,62 +300,17 @@ function prepareFieldForTemplates(entityWithConfig, field, generator) {
|
|
|
300
300
|
field.contentTypeFieldName = `${field.fieldName}ContentType`;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
-
if (
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
if (isReservedTableName(fieldNameUnderscored, entityWithConfig.prodDatabaseType)) {
|
|
307
|
-
if (!jhiFieldNamePrefix) {
|
|
308
|
-
generator.warning(
|
|
309
|
-
`The field name '${fieldNameUnderscored}' is regarded as a reserved keyword, but you have defined an empty jhiPrefix. This might lead to a non-working application.`
|
|
310
|
-
);
|
|
311
|
-
field.fieldNameAsDatabaseColumn = fieldNameUnderscored;
|
|
312
|
-
} else {
|
|
313
|
-
field.fieldNameAsDatabaseColumn = `${jhiFieldNamePrefix}_${fieldNameUnderscored}`;
|
|
314
|
-
}
|
|
315
|
-
} else {
|
|
316
|
-
field.fieldNameAsDatabaseColumn = fieldNameUnderscored;
|
|
317
|
-
}
|
|
303
|
+
if (entityWithConfig.prodDatabaseType) {
|
|
304
|
+
// TODO move to server generator.
|
|
305
|
+
prepareServerFieldForTemplates(entityWithConfig, field, generator);
|
|
318
306
|
}
|
|
319
|
-
field.columnName = field.fieldNameAsDatabaseColumn;
|
|
320
307
|
|
|
321
|
-
|
|
322
|
-
// Handle the specific case when the second letter is capitalized
|
|
323
|
-
// See http://stackoverflow.com/questions/2948083/naming-convention-for-getters-setters-in-java
|
|
324
|
-
if (field.fieldName.length > 1) {
|
|
325
|
-
const firstLetter = field.fieldName.charAt(0);
|
|
326
|
-
const secondLetter = field.fieldName.charAt(1);
|
|
327
|
-
if (firstLetter === firstLetter.toLowerCase() && secondLetter === secondLetter.toUpperCase()) {
|
|
328
|
-
field.fieldInJavaBeanMethod = firstLetter.toLowerCase() + field.fieldName.slice(1);
|
|
329
|
-
} else {
|
|
330
|
-
field.fieldInJavaBeanMethod = _.upperFirst(field.fieldName);
|
|
331
|
-
}
|
|
332
|
-
} else {
|
|
333
|
-
field.fieldInJavaBeanMethod = _.upperFirst(field.fieldName);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
308
|
+
prepareClientFieldForTemplates(entityWithConfig, field, generator);
|
|
336
309
|
|
|
337
310
|
if (field.fieldIsEnum) {
|
|
338
311
|
field.enumValues = getEnumValuesWithCustomValues(field.fieldValues);
|
|
339
312
|
}
|
|
340
313
|
|
|
341
|
-
if (field.fieldValidateRulesPatternJava === undefined) {
|
|
342
|
-
field.fieldValidateRulesPatternJava = field.fieldValidateRulesPattern
|
|
343
|
-
? field.fieldValidateRulesPattern.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
|
|
344
|
-
: field.fieldValidateRulesPattern;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
if (field.fieldValidateRulesPatternAngular === undefined) {
|
|
348
|
-
field.fieldValidateRulesPatternAngular = field.fieldValidateRulesPattern
|
|
349
|
-
? field.fieldValidateRulesPattern.replace(/"/g, '"')
|
|
350
|
-
: field.fieldValidateRulesPattern;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
if (field.fieldValidateRulesPatternReact === undefined) {
|
|
354
|
-
field.fieldValidateRulesPatternReact = field.fieldValidateRulesPattern
|
|
355
|
-
? field.fieldValidateRulesPattern.replace(/'/g, "\\'")
|
|
356
|
-
: field.fieldValidateRulesPattern;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
314
|
field.fieldValidate = Array.isArray(field.fieldValidateRules) && field.fieldValidateRules.length >= 1;
|
|
360
315
|
field.nullable = !(field.fieldValidate === true && field.fieldValidateRules.includes(REQUIRED));
|
|
361
316
|
field.unique = field.fieldValidate === true && field.fieldValidateRules.includes(UNIQUE);
|
|
@@ -453,6 +408,63 @@ function getEnumValuesWithCustomValues(enumValues) {
|
|
|
453
408
|
});
|
|
454
409
|
}
|
|
455
410
|
|
|
411
|
+
function prepareClientFieldForTemplates(entityWithConfig, field, generator) {
|
|
412
|
+
if (field.fieldValidateRulesPatternAngular === undefined) {
|
|
413
|
+
field.fieldValidateRulesPatternAngular = field.fieldValidateRulesPattern
|
|
414
|
+
? field.fieldValidateRulesPattern.replace(/"/g, '"')
|
|
415
|
+
: field.fieldValidateRulesPattern;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
if (field.fieldValidateRulesPatternReact === undefined) {
|
|
419
|
+
field.fieldValidateRulesPatternReact = field.fieldValidateRulesPattern
|
|
420
|
+
? field.fieldValidateRulesPattern.replace(/'/g, "\\'")
|
|
421
|
+
: field.fieldValidateRulesPattern;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
function prepareServerFieldForTemplates(entityWithConfig, field, generator) {
|
|
426
|
+
if (field.fieldNameAsDatabaseColumn === undefined) {
|
|
427
|
+
const fieldNameUnderscored = _.snakeCase(field.fieldName);
|
|
428
|
+
const jhiFieldNamePrefix = generator.getColumnName(entityWithConfig.jhiPrefix);
|
|
429
|
+
|
|
430
|
+
if (isReservedTableName(fieldNameUnderscored, entityWithConfig.prodDatabaseType)) {
|
|
431
|
+
if (!jhiFieldNamePrefix) {
|
|
432
|
+
generator.warning(
|
|
433
|
+
`The field name '${fieldNameUnderscored}' is regarded as a reserved keyword, but you have defined an empty jhiPrefix. This might lead to a non-working application.`
|
|
434
|
+
);
|
|
435
|
+
field.fieldNameAsDatabaseColumn = fieldNameUnderscored;
|
|
436
|
+
} else {
|
|
437
|
+
field.fieldNameAsDatabaseColumn = `${jhiFieldNamePrefix}_${fieldNameUnderscored}`;
|
|
438
|
+
}
|
|
439
|
+
} else {
|
|
440
|
+
field.fieldNameAsDatabaseColumn = fieldNameUnderscored;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
field.columnName = field.fieldNameAsDatabaseColumn;
|
|
444
|
+
|
|
445
|
+
if (field.fieldInJavaBeanMethod === undefined) {
|
|
446
|
+
// Handle the specific case when the second letter is capitalized
|
|
447
|
+
// See http://stackoverflow.com/questions/2948083/naming-convention-for-getters-setters-in-java
|
|
448
|
+
if (field.fieldName.length > 1) {
|
|
449
|
+
const firstLetter = field.fieldName.charAt(0);
|
|
450
|
+
const secondLetter = field.fieldName.charAt(1);
|
|
451
|
+
if (firstLetter === firstLetter.toLowerCase() && secondLetter === secondLetter.toUpperCase()) {
|
|
452
|
+
field.fieldInJavaBeanMethod = firstLetter.toLowerCase() + field.fieldName.slice(1);
|
|
453
|
+
} else {
|
|
454
|
+
field.fieldInJavaBeanMethod = _.upperFirst(field.fieldName);
|
|
455
|
+
}
|
|
456
|
+
} else {
|
|
457
|
+
field.fieldInJavaBeanMethod = _.upperFirst(field.fieldName);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
if (field.fieldValidateRulesPatternJava === undefined) {
|
|
462
|
+
field.fieldValidateRulesPatternJava = field.fieldValidateRulesPattern
|
|
463
|
+
? field.fieldValidateRulesPattern.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
|
|
464
|
+
: field.fieldValidateRulesPattern;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
456
468
|
function fieldToReference(entity, field, pathPrefix = []) {
|
|
457
469
|
return {
|
|
458
470
|
id: field.id,
|
package/utils/relationship.js
CHANGED
|
@@ -184,9 +184,11 @@ function prepareRelationshipForTemplates(entityWithConfig, relationship, generat
|
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
if (
|
|
188
|
-
|
|
189
|
-
|
|
187
|
+
if (entityWithConfig.prodDatabaseType) {
|
|
188
|
+
if (isReservedTableName(relationship.otherEntityTableName, entityWithConfig.prodDatabaseType) && jhiTablePrefix) {
|
|
189
|
+
const otherEntityTableName = relationship.otherEntityTableName;
|
|
190
|
+
relationship.otherEntityTableName = `${jhiTablePrefix}_${otherEntityTableName}`;
|
|
191
|
+
}
|
|
190
192
|
}
|
|
191
193
|
|
|
192
194
|
if (relationship.otherEntityAngularName === undefined) {
|
package/utils/user.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2022 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
|
+
const _ = require('lodash');
|
|
20
|
+
|
|
21
|
+
const { loadRequiredConfigIntoEntity } = require('./entity');
|
|
22
|
+
|
|
23
|
+
const { SQL } = require('../jdl/jhipster/database-types');
|
|
24
|
+
const { OAUTH2 } = require('../jdl/jhipster/authentication-types');
|
|
25
|
+
const { CommonDBTypes } = require('../jdl/jhipster/field-types');
|
|
26
|
+
|
|
27
|
+
const { STRING: TYPE_STRING } = CommonDBTypes;
|
|
28
|
+
|
|
29
|
+
module.exports = {
|
|
30
|
+
createUserEntity,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
function createUserEntity(customUserData = {}) {
|
|
34
|
+
const userEntityDefinition = this.readEntityJson('User');
|
|
35
|
+
if (userEntityDefinition) {
|
|
36
|
+
if (userEntityDefinition.relationships && userEntityDefinition.relationships.length > 0) {
|
|
37
|
+
this.warning('Relationships on the User entity side will be disregarded');
|
|
38
|
+
}
|
|
39
|
+
if (userEntityDefinition.fields && userEntityDefinition.fields.some(field => field.fieldName !== 'id')) {
|
|
40
|
+
this.warning('Fields on the User entity side (other than id) will be disregarded');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Create entity definition for built-in entity to make easier to deal with relationships.
|
|
45
|
+
const user = {
|
|
46
|
+
name: 'User',
|
|
47
|
+
builtIn: true,
|
|
48
|
+
entityTableName: `${this.getTableName(this.jhipsterConfig.jhiPrefix)}_user`,
|
|
49
|
+
relationships: [],
|
|
50
|
+
fields: userEntityDefinition ? userEntityDefinition.fields || [] : [],
|
|
51
|
+
dto: true,
|
|
52
|
+
...customUserData,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
loadRequiredConfigIntoEntity(user, this.jhipsterConfig);
|
|
56
|
+
// Fallback to defaults for test cases.
|
|
57
|
+
loadRequiredConfigIntoEntity(user, this.jhipsterDefaults);
|
|
58
|
+
|
|
59
|
+
const oauth2 = user.authenticationType === OAUTH2;
|
|
60
|
+
const userIdType = oauth2 || user.databaseType !== SQL ? TYPE_STRING : this.getPkType(user.databaseType);
|
|
61
|
+
const fieldValidateRulesMaxlength = userIdType === TYPE_STRING ? 100 : undefined;
|
|
62
|
+
|
|
63
|
+
addOrExtendFields(user.fields, [
|
|
64
|
+
{
|
|
65
|
+
fieldName: 'id',
|
|
66
|
+
fieldType: userIdType,
|
|
67
|
+
fieldValidateRulesMaxlength,
|
|
68
|
+
fieldTranslationKey: 'global.field.id',
|
|
69
|
+
fieldNameHumanized: 'ID',
|
|
70
|
+
id: true,
|
|
71
|
+
builtIn: true,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
fieldName: 'login',
|
|
75
|
+
fieldType: TYPE_STRING,
|
|
76
|
+
builtIn: true,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
fieldName: 'firstName',
|
|
80
|
+
fieldType: TYPE_STRING,
|
|
81
|
+
builtIn: true,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
fieldName: 'lastName',
|
|
85
|
+
fieldType: TYPE_STRING,
|
|
86
|
+
builtIn: true,
|
|
87
|
+
},
|
|
88
|
+
]);
|
|
89
|
+
|
|
90
|
+
return user;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function addOrExtendFields(fields, fieldsToAdd) {
|
|
94
|
+
fieldsToAdd = [].concat(fieldsToAdd);
|
|
95
|
+
for (const fieldToAdd of fieldsToAdd) {
|
|
96
|
+
const { fieldName: newFieldName, id } = fieldToAdd;
|
|
97
|
+
let field = fields.find(field => field.fieldName === newFieldName);
|
|
98
|
+
if (!field) {
|
|
99
|
+
field = { ...fieldToAdd };
|
|
100
|
+
if (id) {
|
|
101
|
+
fields.unshift(field);
|
|
102
|
+
} else {
|
|
103
|
+
fields.push(field);
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
_.defaults(field, fieldToAdd);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2013-2022 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 expect from 'expect';
|
|
20
|
-
import lodash from 'lodash';
|
|
21
|
-
import { basename, dirname } from 'path';
|
|
22
|
-
import { fileURLToPath } from 'url';
|
|
23
|
-
|
|
24
|
-
import testSupport from '../../test/support/index.cjs';
|
|
25
|
-
import Generator from './index.js';
|
|
26
|
-
|
|
27
|
-
const { snakeCase } = lodash;
|
|
28
|
-
const { testBlueprintSupport } = testSupport;
|
|
29
|
-
|
|
30
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
31
|
-
const __dirname = dirname(__filename);
|
|
32
|
-
|
|
33
|
-
const generator = basename(__dirname);
|
|
34
|
-
|
|
35
|
-
describe(`JHipster ${generator} generator`, () => {
|
|
36
|
-
it('generator-list constant matches folder name', async () => {
|
|
37
|
-
await expect((await import('../generator-list.js')).default[`GENERATOR_${snakeCase(generator).toUpperCase()}`]).toBe(generator);
|
|
38
|
-
});
|
|
39
|
-
it('should be exported at package.json', async () => {
|
|
40
|
-
await expect((await import(`generator-jhipster/esm/generators/${generator}`)).default).toBe(Generator);
|
|
41
|
-
});
|
|
42
|
-
it('should support features parameter', () => {
|
|
43
|
-
const instance = new Generator([], { help: true }, { bar: true });
|
|
44
|
-
expect(instance.features.bar).toBe(true);
|
|
45
|
-
});
|
|
46
|
-
describe('blueprint support', () => testBlueprintSupport(generator));
|
|
47
|
-
});
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2013-2022 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 expect from 'expect';
|
|
20
|
-
import lodash from 'lodash';
|
|
21
|
-
import { basename, dirname } from 'path';
|
|
22
|
-
import { fileURLToPath } from 'url';
|
|
23
|
-
|
|
24
|
-
import testSupport from '../../test/support/index.cjs';
|
|
25
|
-
import Generator from './index.js';
|
|
26
|
-
|
|
27
|
-
const { snakeCase } = lodash;
|
|
28
|
-
const { testBlueprintSupport } = testSupport;
|
|
29
|
-
|
|
30
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
31
|
-
const __dirname = dirname(__filename);
|
|
32
|
-
|
|
33
|
-
const generator = basename(__dirname);
|
|
34
|
-
|
|
35
|
-
describe(`JHipster ${generator} generator`, () => {
|
|
36
|
-
it('generator-list constant matches folder name', async () => {
|
|
37
|
-
await expect((await import('../generator-list.js')).default[`GENERATOR_${snakeCase(generator).toUpperCase()}`]).toBe(generator);
|
|
38
|
-
});
|
|
39
|
-
it('should be exported at package.json', async () => {
|
|
40
|
-
await expect((await import(`generator-jhipster/esm/generators/${generator}`)).default).toBe(Generator);
|
|
41
|
-
});
|
|
42
|
-
it('should support features parameter', () => {
|
|
43
|
-
const instance = new Generator([], { help: true }, { bar: true });
|
|
44
|
-
expect(instance.features.bar).toBe(true);
|
|
45
|
-
});
|
|
46
|
-
describe('blueprint support', () => testBlueprintSupport(generator));
|
|
47
|
-
});
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2013-2022 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 expect from 'expect';
|
|
20
|
-
import lodash from 'lodash';
|
|
21
|
-
import { basename, dirname } from 'path';
|
|
22
|
-
import { fileURLToPath } from 'url';
|
|
23
|
-
|
|
24
|
-
import testSupport from '../../test/support/index.cjs';
|
|
25
|
-
import Generator from './index.js';
|
|
26
|
-
|
|
27
|
-
const { snakeCase } = lodash;
|
|
28
|
-
const { testBlueprintSupport } = testSupport;
|
|
29
|
-
|
|
30
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
31
|
-
const __dirname = dirname(__filename);
|
|
32
|
-
|
|
33
|
-
const generator = basename(__dirname);
|
|
34
|
-
|
|
35
|
-
describe(`JHipster ${generator} generator`, () => {
|
|
36
|
-
it('generator-list constant matches folder name', async () => {
|
|
37
|
-
await expect((await import('../generator-list.js')).default[`GENERATOR_${snakeCase(generator).toUpperCase()}`]).toBe(generator);
|
|
38
|
-
});
|
|
39
|
-
it('should be exported at package.json', async () => {
|
|
40
|
-
await expect((await import(`generator-jhipster/esm/generators/${generator}`)).default).toBe(Generator);
|
|
41
|
-
});
|
|
42
|
-
it('should support features parameter', () => {
|
|
43
|
-
const instance = new Generator([], { help: true }, { bar: true });
|
|
44
|
-
expect(instance.features.bar).toBe(true);
|
|
45
|
-
});
|
|
46
|
-
describe('blueprint support', () => testBlueprintSupport(generator));
|
|
47
|
-
});
|