@mshima/generator-jhipster-nodejs 0.0.0-stage → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +204 -0
- package/README.md +243 -2
- package/build-info.json +3 -0
- package/cli/cli-customizations.cjs +9 -0
- package/cli/cli.cjs +40 -0
- package/cli/logo.js +31 -0
- package/cli/version.cjs +12 -0
- package/generators/ci-cd/USAGE +5 -0
- package/generators/ci-cd/command.js +5 -0
- package/generators/ci-cd/generator.js +158 -0
- package/generators/ci-cd/index.js +2 -0
- package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +137 -0
- package/generators/ci-cd/templates/azure-pipelines.yml.ejs +68 -0
- package/generators/ci-cd/templates/circle.yml.ejs +59 -0
- package/generators/ci-cd/templates/docker-registry.yml.ejs +58 -0
- package/generators/ci-cd/templates/github-ci.yml.ejs +90 -0
- package/generators/ci-cd/templates/jenkins/Jenkinsfile.ejs +104 -0
- package/generators/ci-cd/templates/jenkins/idea.gdsl +90 -0
- package/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +33 -0
- package/generators/ci-cd/templates/travis.yml.ejs +75 -0
- package/generators/client/command.js +5 -0
- package/generators/client/generator.js +21 -0
- package/generators/client/generators/bootstrap/command.js +5 -0
- package/generators/client/generators/bootstrap/generator.js +28 -0
- package/generators/client/generators/bootstrap/index.js +2 -0
- package/generators/client/index.js +2 -0
- package/generators/common/generators/bootstrap/command.js +5 -0
- package/generators/common/generators/bootstrap/generator.js +37 -0
- package/generators/common/generators/bootstrap/index.js +2 -0
- package/generators/docker/command.js +5 -0
- package/generators/docker/generator.js +16 -0
- package/generators/docker/generators/bootstrap/command.js +5 -0
- package/generators/docker/generators/bootstrap/generator.js +56 -0
- package/generators/docker/generators/bootstrap/index.js +2 -0
- package/generators/docker/index.js +2 -0
- package/generators/docker/templates/docker/app.yml.ejs +25 -0
- package/generators/generator-nodejs-constants.js +32 -0
- package/generators/languages/command.js +5 -0
- package/generators/languages/generator.js +22 -0
- package/generators/languages/index.js +2 -0
- package/generators/languages/templates/src/main/webapp/i18n/en/home.json +19 -0
- package/generators/languages/templates/src/main/webapp/i18n/es/home.json +19 -0
- package/generators/languages/templates/src/main/webapp/i18n/it/home.json +19 -0
- package/generators/node-server/command.js +96 -0
- package/generators/node-server/entity-files.js +41 -0
- package/generators/node-server/files.js +254 -0
- package/generators/node-server/generator.js +702 -0
- package/generators/node-server/generators/bootstrap/command.js +5 -0
- package/generators/node-server/generators/bootstrap/generator.js +83 -0
- package/generators/node-server/generators/bootstrap/index.js +2 -0
- package/generators/node-server/index.js +2 -0
- package/generators/node-server/resources/package.json +76 -0
- package/generators/node-server/support/api-fake-data.js +54 -0
- package/generators/node-server/support/columns.js +73 -0
- package/generators/node-server/support/database.js +24 -0
- package/generators/node-server/support/entity-authorities.js +32 -0
- package/generators/node-server/support/entity-paths.js +13 -0
- package/generators/node-server/support/enums.js +11 -0
- package/generators/node-server/support/index.js +9 -0
- package/generators/node-server/support/mail-templates.js +82 -0
- package/generators/node-server/support/migrations.js +197 -0
- package/generators/node-server/support/validators.js +25 -0
- package/generators/node-server/templates/.dockerignore.ejs +16 -0
- package/generators/node-server/templates/.gitignore.jhi.nodejs.ejs +24 -0
- package/generators/node-server/templates/Dockerfile.ejs +54 -0
- package/generators/node-server/templates/README.md.jhi.nodejs.ejs +220 -0
- package/generators/node-server/templates/package.json.ejs +84 -0
- package/generators/node-server/templates/server/README.md.ejs +269 -0
- package/generators/node-server/templates/server/e2e/_entityFileName_.database.e2e-spec.ts.ejs +192 -0
- package/generators/node-server/templates/server/e2e/_entityFileName_.e2e-spec.ts.ejs +402 -0
- package/generators/node-server/templates/server/e2e/account.e2e-spec.ts.ejs +349 -0
- package/generators/node-server/templates/server/e2e/app.e2e-spec.ts.ejs +188 -0
- package/generators/node-server/templates/server/e2e/authority.e2e-spec.ts.ejs +50 -0
- package/generators/node-server/templates/server/e2e/cors.e2e-spec.ts.ejs +110 -0
- package/generators/node-server/templates/server/e2e/management.e2e-spec.ts.ejs +180 -0
- package/generators/node-server/templates/server/e2e/oauth2-bearer.e2e-spec.ts.ejs +71 -0
- package/generators/node-server/templates/server/e2e/session.e2e-spec.ts.ejs +219 -0
- package/generators/node-server/templates/server/e2e/setup.test.js.ejs +1 -0
- package/generators/node-server/templates/server/e2e/user.e2e-spec.ts.ejs +318 -0
- package/generators/node-server/templates/server/env.ejs +1 -0
- package/generators/node-server/templates/server/eslint.config.mjs.ejs +48 -0
- package/generators/node-server/templates/server/nest-cli.json.ejs +11 -0
- package/generators/node-server/templates/server/ormconfig.ts.ejs +35 -0
- package/generators/node-server/templates/server/package.json.ejs +143 -0
- package/generators/node-server/templates/server/sonar-project.properties.ejs +10 -0
- package/generators/node-server/templates/server/src/app.config.spec.ts.ejs +13 -0
- package/generators/node-server/templates/server/src/app.config.ts.ejs +179 -0
- package/generators/node-server/templates/server/src/app.module.ts.ejs +80 -0
- package/generators/node-server/templates/server/src/application-config.ts.ejs +153 -0
- package/generators/node-server/templates/server/src/auth/account.controller.ts.ejs +183 -0
- package/generators/node-server/templates/server/src/auth/auth.module.ts.ejs +104 -0
- package/generators/node-server/templates/server/src/auth/auth.service.ts.ejs +294 -0
- package/generators/node-server/templates/server/src/auth/csrf.middleware.spec.ts.ejs +65 -0
- package/generators/node-server/templates/server/src/auth/csrf.middleware.ts.ejs +76 -0
- package/generators/node-server/templates/server/src/auth/decorators/auth-user.decorator.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/auth/decorators/roles.decorator.ts.ejs +4 -0
- package/generators/node-server/templates/server/src/auth/dto/key-and-password.dto.ts.ejs +17 -0
- package/generators/node-server/templates/server/src/auth/dto/password-change.dto.ts.ejs +17 -0
- package/generators/node-server/templates/server/src/auth/dto/user-login.dto.ts.ejs +21 -0
- package/generators/node-server/templates/server/src/auth/guards/auth.guard.ts.ejs +50 -0
- package/generators/node-server/templates/server/src/auth/guards/oauth2-login.guard.ts.ejs +6 -0
- package/generators/node-server/templates/server/src/auth/guards/roles.guard.ts.ejs +25 -0
- package/generators/node-server/templates/server/src/auth/index.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/auth/jwt.config.spec.ts.ejs +22 -0
- package/generators/node-server/templates/server/src/auth/jwt.config.ts.ejs +29 -0
- package/generators/node-server/templates/server/src/auth/oauth2.authorities.spec.ts.ejs +24 -0
- package/generators/node-server/templates/server/src/auth/oauth2.authorities.ts.ejs +33 -0
- package/generators/node-server/templates/server/src/auth/oauth2.config.ts.ejs +51 -0
- package/generators/node-server/templates/server/src/auth/passport.jwt.strategy.ts.ejs +45 -0
- package/generators/node-server/templates/server/src/auth/passport.oauth2-bearer.strategy.ts.ejs +32 -0
- package/generators/node-server/templates/server/src/auth/passport.oauth2.strategy.spec.ts.ejs +27 -0
- package/generators/node-server/templates/server/src/auth/passport.oauth2.strategy.ts.ejs +44 -0
- package/generators/node-server/templates/server/src/auth/password-util.ts.ejs +10 -0
- package/generators/node-server/templates/server/src/auth/password.service.ts.ejs +34 -0
- package/generators/node-server/templates/server/src/auth/payload.interface.ts.ejs +14 -0
- package/generators/node-server/templates/server/src/auth/role-type.ts.ejs +7 -0
- package/generators/node-server/templates/server/src/auth/session-user.middleware.ts.ejs +33 -0
- package/generators/node-server/templates/server/src/auth/session.entity.ts.ejs +36 -0
- package/generators/node-server/templates/server/src/auth/session.store.spec.ts.ejs +99 -0
- package/generators/node-server/templates/server/src/auth/session.store.ts.ejs +116 -0
- package/generators/node-server/templates/server/src/auth/user.jwt.controller.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/auth/user.oauth2.controller.ts.ejs +78 -0
- package/generators/node-server/templates/server/src/auth/user.session.controller.ts.ejs +103 -0
- package/generators/node-server/templates/server/src/common/common.module.ts.ejs +19 -0
- package/generators/node-server/templates/server/src/common/database/base.entity.ts.ejs +13 -0
- package/generators/node-server/templates/server/src/common/database/column-transformers.spec.ts.ejs +46 -0
- package/generators/node-server/templates/server/src/common/database/column-transformers.ts.ejs +69 -0
- package/generators/node-server/templates/server/src/common/database/column-types.spec.ts.ejs +21 -0
- package/generators/node-server/templates/server/src/common/database/column-types.ts.ejs +29 -0
- package/generators/node-server/templates/server/src/common/database/pagination.entity.spec.ts.ejs +66 -0
- package/generators/node-server/templates/server/src/common/database/pagination.entity.ts.ejs +108 -0
- package/generators/node-server/templates/server/src/common/dto/base.dto.ts.ejs +19 -0
- package/generators/node-server/templates/server/src/common/errors/error-constants.ts.ejs +10 -0
- package/generators/node-server/templates/server/src/common/errors/problem-details.filter.ts.ejs +63 -0
- package/generators/node-server/templates/server/src/common/errors/problem.exception.ts.ejs +92 -0
- package/generators/node-server/templates/server/src/common/field_validators.ejs +77 -0
- package/generators/node-server/templates/server/src/common/header-util.ts.ejs +105 -0
- package/generators/node-server/templates/server/src/common/interceptors/logging.interceptor.spec.ts.ejs +93 -0
- package/generators/node-server/templates/server/src/common/interceptors/logging.interceptor.ts.ejs +48 -0
- package/generators/node-server/templates/server/src/common/logging.spec.ts.ejs +83 -0
- package/generators/node-server/templates/server/src/common/logging.ts.ejs +129 -0
- package/generators/node-server/templates/server/src/common/metrics.spec.ts.ejs +43 -0
- package/generators/node-server/templates/server/src/common/metrics.ts.ejs +198 -0
- package/generators/node-server/templates/server/src/common/request.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/common/sortable-properties.ts.ejs +43 -0
- package/generators/node-server/templates/server/src/common/updatable-properties.ts.ejs +14 -0
- package/generators/node-server/templates/server/src/config/application-dev.yml.ejs +118 -0
- package/generators/node-server/templates/server/src/config/application-prod.yml.ejs +97 -0
- package/generators/node-server/templates/server/src/config/application-secret-samples.yml.ejs +42 -0
- package/generators/node-server/templates/server/src/config/application-test.yml.ejs +68 -0
- package/generators/node-server/templates/server/src/config/application-tls-samples.yml.ejs +15 -0
- package/generators/node-server/templates/server/src/config/application-tls.yml.ejs +15 -0
- package/generators/node-server/templates/server/src/config/application.yml.ejs +149 -0
- package/generators/node-server/templates/server/src/config.spec.ts.ejs +81 -0
- package/generators/node-server/templates/server/src/config.ts.ejs +255 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.controller.ts.ejs +178 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.entity.ts.ejs +110 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.mapper.ts.ejs +37 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.module.ts.ejs +14 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.service.ts.ejs +123 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/dto/_entityFileName_.dto.ts.ejs +99 -0
- package/generators/node-server/templates/server/src/mail/mail.module.ts.ejs +49 -0
- package/generators/node-server/templates/server/src/mail/mail.service.spec.ts.ejs +105 -0
- package/generators/node-server/templates/server/src/mail/mail.service.ts.ejs +120 -0
- package/generators/node-server/templates/server/src/main.ts.ejs +114 -0
- package/generators/node-server/templates/server/src/management/api-docs.controller.ts.ejs +27 -0
- package/generators/node-server/templates/server/src/management/api-docs.service.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/management/configuration.controller.ts.ejs +80 -0
- package/generators/node-server/templates/server/src/management/health.controller.spec.ts.ejs +79 -0
- package/generators/node-server/templates/server/src/management/health.controller.ts.ejs +87 -0
- package/generators/node-server/templates/server/src/management/health.module.ts.ejs +9 -0
- package/generators/node-server/templates/server/src/management/loggers.controller.ts.ejs +40 -0
- package/generators/node-server/templates/server/src/management/management.controller.spec.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/management/management.controller.ts.ejs +34 -0
- package/generators/node-server/templates/server/src/management/management.module.ts.ejs +21 -0
- package/generators/node-server/templates/server/src/management/metrics.controller.ts.ejs +85 -0
- package/generators/node-server/templates/server/src/migrations/1570200270081-CreateTables.ts.ejs +64 -0
- package/generators/node-server/templates/server/src/migrations/1570200270082-CreateSessions.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/migrations/1570200490072-SeedUsersRoles.ts.ejs +74 -0
- package/generators/node-server/templates/server/src/migrations/_entityConstraintsMigration_.ts.ejs +40 -0
- package/generators/node-server/templates/server/src/migrations/_entityMigration_.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/migrations/support/schema.ts.ejs +202 -0
- package/generators/node-server/templates/server/src/orm.config.ts.ejs +147 -0
- package/generators/node-server/templates/server/src/registry/consul.service.ts.ejs +70 -0
- package/generators/node-server/templates/server/src/registry/eureka.service.ts.ejs +129 -0
- package/generators/node-server/templates/server/src/swagger.ts.ejs +24 -0
- package/generators/node-server/templates/server/src/tls.ts.ejs +27 -0
- package/generators/node-server/templates/server/src/users/authority.controller.ts.ejs +85 -0
- package/generators/node-server/templates/server/src/users/authority.entity.ts.ejs +22 -0
- package/generators/node-server/templates/server/src/users/dto/authority.dto.ts.ejs +10 -0
- package/generators/node-server/templates/server/src/users/dto/user.dto.ts.ejs +116 -0
- package/generators/node-server/templates/server/src/users/public.user.controller.ts.ejs +51 -0
- package/generators/node-server/templates/server/src/users/user.controller.ts.ejs +191 -0
- package/generators/node-server/templates/server/src/users/user.entity.ts.ejs +63 -0
- package/generators/node-server/templates/server/src/users/user.mapper.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/users/user.module.ts.ejs +19 -0
- package/generators/node-server/templates/server/src/users/user.service.ts.ejs +156 -0
- package/generators/node-server/templates/server/tsconfig.build.json.ejs +9 -0
- package/generators/node-server/templates/server/tsconfig.json.ejs +23 -0
- package/generators/node-server/templates/server/typeorm-migration.ts.ejs +18 -0
- package/generators/node-server/templates/server/vitest.config.e2e.ts.ejs +16 -0
- package/generators/node-server/templates/server/vitest.config.ts.ejs +16 -0
- package/generators/server/command.js +7 -0
- package/generators/server/generator.js +20 -0
- package/generators/server/generators/bootstrap/command.js +5 -0
- package/generators/server/generators/bootstrap/generator.js +15 -0
- package/generators/server/generators/bootstrap/index.js +2 -0
- package/generators/server/index.js +2 -0
- package/package.json +75 -4
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { asCommand } from 'generator-jhipster';
|
|
3
|
+
import { command as commonCommand } from 'generator-jhipster/generators/common';
|
|
4
|
+
import { command as javaSimpleApplicationCommand } from 'generator-jhipster/generators/java-simple-application';
|
|
5
|
+
import { command as serverCommand } from 'generator-jhipster/generators/server';
|
|
6
|
+
import { command as springBootCommand } from 'generator-jhipster/generators/spring-boot';
|
|
7
|
+
|
|
8
|
+
const { applicationType } = commonCommand.configs;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The JDL definition of an option of JHipster's commands. The server command of the blueprint replaces the one of
|
|
12
|
+
* JHipster, which imports spring-boot: the JDL of the blueprint cli only knows the options of its own commands.
|
|
13
|
+
* Without a jdl definition (generator-jhipster 9.4.0, whose JDL knows every option), nothing is added.
|
|
14
|
+
*/
|
|
15
|
+
const jdlOf = config => (config?.jdl ? { jdl: config.jdl } : {});
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The options of the Java server of JHipster the NodeJS server uses, for the JDL only (no cli option, no prompt). The
|
|
19
|
+
* other ones (searchEngine, messageBroker, buildTool, ...) are unknown options of the JDL of the blueprint.
|
|
20
|
+
*/
|
|
21
|
+
const jdlOptions = Object.fromEntries(
|
|
22
|
+
Object.entries({
|
|
23
|
+
databaseType: serverCommand.configs.databaseType,
|
|
24
|
+
devDatabaseType: serverCommand.configs.devDatabaseType,
|
|
25
|
+
serviceDiscoveryType: springBootCommand.configs.serviceDiscoveryType,
|
|
26
|
+
syncUserWithIdp: springBootCommand.configs.syncUserWithIdp,
|
|
27
|
+
packageName: javaSimpleApplicationCommand.configs.packageName,
|
|
28
|
+
})
|
|
29
|
+
.filter(([, config]) => config?.jdl)
|
|
30
|
+
.map(([name, { description, jdl, choices, scope }]) => [name, { description, jdl, choices, scope }]),
|
|
31
|
+
);
|
|
32
|
+
if (jdlOptions.devDatabaseType) {
|
|
33
|
+
// SQLite, the embedded development database of the NodeJS server, on disk or in memory, instead of the H2 databases of
|
|
34
|
+
// JHipster Spring Boot.
|
|
35
|
+
jdlOptions.devDatabaseType.choices = [
|
|
36
|
+
...jdlOptions.devDatabaseType.choices.filter(choice => !choice.startsWith('h2')),
|
|
37
|
+
'sqlite',
|
|
38
|
+
'sqliteMemory',
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default asCommand({
|
|
43
|
+
configs: {
|
|
44
|
+
...jdlOptions,
|
|
45
|
+
// The secret shared with JHipster's Spring Boot applications, given by the JDL or, like for them, by the hidden
|
|
46
|
+
// --jwt-secret-key option (the one of the samples of a gateway and its microservices).
|
|
47
|
+
jwtSecretKey: springBootCommand.configs.jwtSecretKey,
|
|
48
|
+
applicationType,
|
|
49
|
+
serverPort: {
|
|
50
|
+
...jdlOf(commonCommand.configs.serverPort),
|
|
51
|
+
prompt: {
|
|
52
|
+
when: answers => answers.applicationType === 'gateway' || answers.applicationType === 'microservice',
|
|
53
|
+
type: 'input',
|
|
54
|
+
validate: input => (/^([0-9]*)$/.test(input) ? true : 'This is not a valid port number.'),
|
|
55
|
+
message:
|
|
56
|
+
'As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts.',
|
|
57
|
+
default: answers => (answers.applicationType === 'gateway' ? '8080' : '8081'),
|
|
58
|
+
},
|
|
59
|
+
scope: 'storage',
|
|
60
|
+
},
|
|
61
|
+
authenticationType: {
|
|
62
|
+
...jdlOf(commonCommand.configs.authenticationType),
|
|
63
|
+
cli: {
|
|
64
|
+
type: String,
|
|
65
|
+
},
|
|
66
|
+
prompt: {
|
|
67
|
+
type: 'list',
|
|
68
|
+
message: `Which ${chalk.yellow('*type*')} of authentication would you like to use?`,
|
|
69
|
+
},
|
|
70
|
+
choices: [
|
|
71
|
+
{ value: 'jwt', name: 'JWT authentication (stateless, with a token)' },
|
|
72
|
+
{ value: 'oauth2', name: 'OAuth 2.0 / OIDC Authentication (stateful, works with Okta)' },
|
|
73
|
+
],
|
|
74
|
+
scope: 'storage',
|
|
75
|
+
},
|
|
76
|
+
prodDatabaseType: {
|
|
77
|
+
...jdlOf(serverCommand.configs.prodDatabaseType),
|
|
78
|
+
cli: {
|
|
79
|
+
type: String,
|
|
80
|
+
},
|
|
81
|
+
prompt: {
|
|
82
|
+
type: 'list',
|
|
83
|
+
message: `Which ${chalk.yellow('*production*')} database would you like to use?`,
|
|
84
|
+
},
|
|
85
|
+
choices: [
|
|
86
|
+
{ value: 'postgresql', name: 'PostgreSQL' },
|
|
87
|
+
{ value: 'mysql', name: 'MySQL' },
|
|
88
|
+
{ value: 'mariadb', name: 'MariaDB' },
|
|
89
|
+
{ value: 'oracle', name: 'Oracle (Please follow our documentation to use the Oracle proprietary driver)' },
|
|
90
|
+
{ value: 'mssql', name: 'Microsoft SQL Server' },
|
|
91
|
+
{ value: 'mongodb', name: 'MongoDB' },
|
|
92
|
+
],
|
|
93
|
+
scope: 'storage',
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SERVER_NODEJS_SRC_DIR } from '../generator-nodejs-constants.js';
|
|
2
|
+
|
|
3
|
+
const SERVER_NODEJS_DIR = `${SERVER_NODEJS_SRC_DIR}/`;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The default is to use a file path string. It implies use of the template method.
|
|
7
|
+
* For any other config an object { file:.., method:.., template:.. } can be used
|
|
8
|
+
*/
|
|
9
|
+
export const entityFiles = {
|
|
10
|
+
server: [
|
|
11
|
+
{
|
|
12
|
+
path: SERVER_NODEJS_DIR,
|
|
13
|
+
renameTo: (data, filepath) => `${SERVER_NODEJS_DIR}${filepath.replaceAll('_entityFileName_', data.entityFileName)}`,
|
|
14
|
+
templates: [
|
|
15
|
+
'src/entities/_entityFileName_/_entityFileName_.entity.ts',
|
|
16
|
+
'src/entities/_entityFileName_/_entityFileName_.module.ts',
|
|
17
|
+
'src/entities/_entityFileName_/_entityFileName_.service.ts',
|
|
18
|
+
'src/entities/_entityFileName_/dto/_entityFileName_.dto.ts',
|
|
19
|
+
'src/entities/_entityFileName_/_entityFileName_.mapper.ts',
|
|
20
|
+
'src/entities/_entityFileName_/_entityFileName_.controller.ts',
|
|
21
|
+
'e2e/_entityFileName_.e2e-spec.ts',
|
|
22
|
+
'e2e/_entityFileName_.database.e2e-spec.ts',
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
// The migrations of the entity, like its Liquibase changelogs: its table, then its constraints when it has some.
|
|
27
|
+
migrations: [
|
|
28
|
+
{
|
|
29
|
+
path: SERVER_NODEJS_DIR,
|
|
30
|
+
condition: ctx => ctx.databaseTypeSql,
|
|
31
|
+
renameTo: data => `${SERVER_NODEJS_DIR}src/migrations/${data.nodejsMigration.fileName}.ts`,
|
|
32
|
+
templates: ['src/migrations/_entityMigration_.ts'],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
path: SERVER_NODEJS_DIR,
|
|
36
|
+
condition: ctx => ctx.databaseTypeSql && ctx.nodejsConstraintsMigration,
|
|
37
|
+
renameTo: data => `${SERVER_NODEJS_DIR}src/migrations/${data.nodejsConstraintsMigration.fileName}.ts`,
|
|
38
|
+
templates: ['src/migrations/_entityConstraintsMigration_.ts'],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { SERVER_NODEJS_SRC_DIR } from '../generator-nodejs-constants.js';
|
|
2
|
+
|
|
3
|
+
const SERVER_NODEJS_DIR = `${SERVER_NODEJS_SRC_DIR}/`;
|
|
4
|
+
|
|
5
|
+
export const serverFiles = {
|
|
6
|
+
common: [
|
|
7
|
+
{
|
|
8
|
+
templates: ['.dockerignore', 'README.md.jhi.nodejs', '.gitignore.jhi.nodejs', 'Dockerfile'],
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
path: SERVER_NODEJS_DIR,
|
|
12
|
+
// The users administration API, not generated with OAuth2 (users come from the identity provider).
|
|
13
|
+
condition: ctx => ctx.generateUserManagement,
|
|
14
|
+
templates: [
|
|
15
|
+
'src/users/user.controller.ts',
|
|
16
|
+
'e2e/user.e2e-spec.ts',
|
|
17
|
+
'src/mail/mail.service.ts',
|
|
18
|
+
'src/mail/mail.module.ts',
|
|
19
|
+
'src/mail/mail.service.spec.ts',
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
{
|
|
24
|
+
path: SERVER_NODEJS_DIR,
|
|
25
|
+
// The users of the application, synchronized from the identity provider with OAuth2 and syncUserWithIdp.
|
|
26
|
+
condition: ctx => ctx.generateBuiltInUserEntity,
|
|
27
|
+
templates: [
|
|
28
|
+
'src/users/user.entity.ts',
|
|
29
|
+
'src/users/user.mapper.ts',
|
|
30
|
+
'src/users/user.service.ts',
|
|
31
|
+
'src/users/user.module.ts',
|
|
32
|
+
'src/users/public.user.controller.ts',
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
path: SERVER_NODEJS_DIR,
|
|
37
|
+
// The transformers of the columns whose values the SQL drivers do not give as the API exchanges them.
|
|
38
|
+
condition: ctx => ctx.databaseTypeSql,
|
|
39
|
+
templates: ['src/common/database/column-transformers.ts', 'src/common/database/column-transformers.spec.ts'],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
path: SERVER_NODEJS_DIR,
|
|
43
|
+
// The tables of the built-in users (SQL), the schema synchronized from the entities (MongoDB, its indices).
|
|
44
|
+
condition: ctx => ctx.databaseTypeMongodb || ctx.generateBuiltInUserEntity || ctx.generateBuiltInAuthorityEntity,
|
|
45
|
+
templates: ['src/migrations/1570200270081-CreateTables.ts'],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
path: SERVER_NODEJS_DIR,
|
|
49
|
+
condition: ctx => ctx.databaseTypeSql,
|
|
50
|
+
// The column types of the database of the active profiles, given to the entities and to the migrations.
|
|
51
|
+
templates: ['src/migrations/support/schema.ts', 'src/common/database/column-types.ts', 'src/common/database/column-types.spec.ts'],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
path: SERVER_NODEJS_DIR,
|
|
55
|
+
condition: ctx => ctx.generateBuiltInAuthorityEntity,
|
|
56
|
+
templates: [
|
|
57
|
+
'src/users/authority.entity.ts',
|
|
58
|
+
'src/migrations/1570200490072-SeedUsersRoles.ts',
|
|
59
|
+
'src/users/dto/authority.dto.ts',
|
|
60
|
+
'src/users/authority.controller.ts',
|
|
61
|
+
'e2e/authority.e2e-spec.ts',
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
path: SERVER_NODEJS_DIR,
|
|
66
|
+
templates: [
|
|
67
|
+
'src/users/dto/user.dto.ts',
|
|
68
|
+
'src/auth/account.controller.ts',
|
|
69
|
+
'src/management/management.controller.ts',
|
|
70
|
+
'src/management/health.controller.ts',
|
|
71
|
+
'src/management/health.module.ts',
|
|
72
|
+
'src/management/management.module.ts',
|
|
73
|
+
'src/management/loggers.controller.ts',
|
|
74
|
+
'src/management/metrics.controller.ts',
|
|
75
|
+
'src/management/configuration.controller.ts',
|
|
76
|
+
'src/management/api-docs.controller.ts',
|
|
77
|
+
'src/management/api-docs.service.ts',
|
|
78
|
+
'src/common/metrics.ts',
|
|
79
|
+
'src/common/metrics.spec.ts',
|
|
80
|
+
'src/common/logging.ts',
|
|
81
|
+
'src/common/logging.spec.ts',
|
|
82
|
+
'src/auth/decorators/auth-user.decorator.ts',
|
|
83
|
+
'src/auth/auth.module.ts',
|
|
84
|
+
'src/config/application-dev.yml',
|
|
85
|
+
'src/config/application-test.yml',
|
|
86
|
+
'src/config.ts',
|
|
87
|
+
'src/config/application-prod.yml',
|
|
88
|
+
'src/config/application-secret-samples.yml',
|
|
89
|
+
'src/config/application-tls.yml',
|
|
90
|
+
'src/config/application-tls-samples.yml',
|
|
91
|
+
'src/config/application.yml',
|
|
92
|
+
'src/common/database/pagination.entity.ts',
|
|
93
|
+
'src/common/database/pagination.entity.spec.ts',
|
|
94
|
+
'src/common/database/base.entity.ts',
|
|
95
|
+
'src/auth/guards/roles.guard.ts',
|
|
96
|
+
'src/auth/guards/auth.guard.ts',
|
|
97
|
+
'src/auth/role-type.ts',
|
|
98
|
+
'src/auth/decorators/roles.decorator.ts',
|
|
99
|
+
'src/auth/index.ts',
|
|
100
|
+
'src/common/header-util.ts',
|
|
101
|
+
'src/common/interceptors/logging.interceptor.ts',
|
|
102
|
+
'src/common/request.ts',
|
|
103
|
+
'src/common/errors/error-constants.ts',
|
|
104
|
+
'src/common/errors/problem.exception.ts',
|
|
105
|
+
'src/common/errors/problem-details.filter.ts',
|
|
106
|
+
'src/auth/auth.service.ts',
|
|
107
|
+
'src/common/dto/base.dto.ts',
|
|
108
|
+
'src/main.ts',
|
|
109
|
+
'src/app.config.ts',
|
|
110
|
+
'src/application-config.ts',
|
|
111
|
+
'src/common/common.module.ts',
|
|
112
|
+
'src/swagger.ts',
|
|
113
|
+
'src/tls.ts',
|
|
114
|
+
'src/app.module.ts',
|
|
115
|
+
'src/orm.config.ts',
|
|
116
|
+
'tsconfig.build.json',
|
|
117
|
+
'src/management/management.controller.spec.ts',
|
|
118
|
+
'src/management/health.controller.spec.ts',
|
|
119
|
+
'src/common/interceptors/logging.interceptor.spec.ts',
|
|
120
|
+
'src/config.spec.ts',
|
|
121
|
+
'src/app.config.spec.ts',
|
|
122
|
+
'nest-cli.json',
|
|
123
|
+
{
|
|
124
|
+
// The profile of the development scripts (nest start --env-file .env.dev), not of the built application.
|
|
125
|
+
file: 'env',
|
|
126
|
+
renameTo: () => '.env.dev',
|
|
127
|
+
},
|
|
128
|
+
'eslint.config.mjs',
|
|
129
|
+
'package.json',
|
|
130
|
+
'tsconfig.json',
|
|
131
|
+
'vitest.config.ts',
|
|
132
|
+
'vitest.config.e2e.ts',
|
|
133
|
+
'README.md',
|
|
134
|
+
'sonar-project.properties',
|
|
135
|
+
'ormconfig.ts',
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
path: SERVER_NODEJS_DIR,
|
|
140
|
+
// The migrations of the developers, created after the constraints migrations of the entities (SQL).
|
|
141
|
+
condition: ctx => ctx.databaseTypeSql,
|
|
142
|
+
templates: ['typeorm-migration.ts'],
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
path: SERVER_NODEJS_DIR,
|
|
146
|
+
condition: ctx => ctx.serviceDiscoveryEureka,
|
|
147
|
+
templates: ['src/registry/eureka.service.ts'],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
path: SERVER_NODEJS_DIR,
|
|
151
|
+
condition: ctx => ctx.serviceDiscoveryConsul,
|
|
152
|
+
templates: ['src/registry/consul.service.ts'],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
path: SERVER_NODEJS_DIR,
|
|
156
|
+
// Helper of the MongoDB updates: the MongoDB driver of TypeORM ignores the update: false option.
|
|
157
|
+
condition: ctx => ctx.databaseTypeMongodb,
|
|
158
|
+
templates: ['src/common/updatable-properties.ts'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
path: SERVER_NODEJS_DIR,
|
|
162
|
+
// Validates the sort of the entity lists by introspection of the TypeORM metadata.
|
|
163
|
+
templates: ['src/common/sortable-properties.ts'],
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
e2e: [
|
|
167
|
+
{
|
|
168
|
+
path: SERVER_NODEJS_DIR,
|
|
169
|
+
templates: ['e2e/app.e2e-spec.ts', 'e2e/cors.e2e-spec.ts', 'e2e/management.e2e-spec.ts', 'e2e/setup.test.js'],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
path: SERVER_NODEJS_DIR,
|
|
173
|
+
condition: generator => generator.generateUserManagement,
|
|
174
|
+
templates: ['e2e/account.e2e-spec.ts'],
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
other: [
|
|
178
|
+
{
|
|
179
|
+
templates: ['package.json'],
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
jwt: [
|
|
183
|
+
{
|
|
184
|
+
path: SERVER_NODEJS_DIR,
|
|
185
|
+
condition: ctx => ctx.authenticationTypeJwt,
|
|
186
|
+
templates: [
|
|
187
|
+
'src/auth/passport.jwt.strategy.ts',
|
|
188
|
+
'src/auth/payload.interface.ts',
|
|
189
|
+
'src/auth/jwt.config.ts',
|
|
190
|
+
'src/auth/jwt.config.spec.ts',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
path: SERVER_NODEJS_DIR,
|
|
195
|
+
// The authentication API, without built-in User (a microservice) the application only validates the tokens.
|
|
196
|
+
condition: ctx => ctx.authenticationTypeJwt && ctx.generateBuiltInUserEntity,
|
|
197
|
+
templates: ['src/auth/user.jwt.controller.ts', 'src/auth/dto/user-login.dto.ts'],
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
userManagement: [
|
|
201
|
+
{
|
|
202
|
+
path: SERVER_NODEJS_DIR,
|
|
203
|
+
// The passwords of the users of the user management, the ones of JWT and of the sessions.
|
|
204
|
+
condition: ctx => ctx.generateUserManagement,
|
|
205
|
+
templates: [
|
|
206
|
+
'src/auth/password-util.ts',
|
|
207
|
+
'src/auth/password.service.ts',
|
|
208
|
+
'src/auth/dto/password-change.dto.ts',
|
|
209
|
+
'src/auth/dto/key-and-password.dto.ts',
|
|
210
|
+
],
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
session: [
|
|
214
|
+
{
|
|
215
|
+
path: SERVER_NODEJS_DIR,
|
|
216
|
+
// The sessions of the server, of the session login and of the OAuth2 login, protected from CSRF.
|
|
217
|
+
condition: ctx => ctx.authenticationUsesCsrf,
|
|
218
|
+
templates: [
|
|
219
|
+
'src/auth/csrf.middleware.ts',
|
|
220
|
+
'src/auth/csrf.middleware.spec.ts',
|
|
221
|
+
'src/auth/session.entity.ts',
|
|
222
|
+
'src/auth/session.store.ts',
|
|
223
|
+
'src/auth/session.store.spec.ts',
|
|
224
|
+
],
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
path: SERVER_NODEJS_DIR,
|
|
228
|
+
condition: ctx => ctx.authenticationUsesCsrf && ctx.databaseTypeSql,
|
|
229
|
+
templates: ['src/migrations/1570200270082-CreateSessions.ts'],
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
path: SERVER_NODEJS_DIR,
|
|
233
|
+
condition: ctx => ctx.authenticationTypeSession,
|
|
234
|
+
templates: ['src/auth/user.session.controller.ts', 'src/auth/session-user.middleware.ts', 'e2e/session.e2e-spec.ts'],
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
oauth2: [
|
|
238
|
+
{
|
|
239
|
+
path: SERVER_NODEJS_DIR,
|
|
240
|
+
condition: generator => generator.authenticationTypeOauth2,
|
|
241
|
+
templates: [
|
|
242
|
+
'src/auth/user.oauth2.controller.ts',
|
|
243
|
+
'src/auth/passport.oauth2.strategy.ts',
|
|
244
|
+
'src/auth/oauth2.config.ts',
|
|
245
|
+
'src/auth/oauth2.authorities.ts',
|
|
246
|
+
'src/auth/passport.oauth2-bearer.strategy.ts',
|
|
247
|
+
'src/auth/guards/oauth2-login.guard.ts',
|
|
248
|
+
'src/auth/oauth2.authorities.spec.ts',
|
|
249
|
+
'src/auth/passport.oauth2.strategy.spec.ts',
|
|
250
|
+
'e2e/oauth2-bearer.e2e-spec.ts',
|
|
251
|
+
],
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
};
|