generator-jhipster 8.10.0 → 8.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli/cli.mjs +0 -13
- package/dist/cli/environment-builder.mjs +3 -1
- package/dist/generators/angular/resources/package.json +18 -18
- package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
- package/dist/generators/angular/templates/eslint.config.js.jhi.angular.ejs +4 -6
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +3 -3
- package/dist/generators/base/api.d.ts +3 -1
- package/dist/generators/base/shared-data.js +1 -0
- package/dist/generators/base/support/contents.d.ts +10 -1
- package/dist/generators/base/support/contents.js +9 -0
- package/dist/generators/base/support/index.d.ts +1 -0
- package/dist/generators/base/support/index.js +1 -0
- package/dist/generators/base/support/needles.js +2 -6
- package/dist/generators/base/support/os.d.ts +1 -0
- package/dist/generators/base/support/os.js +20 -0
- package/dist/generators/base/support/write-files.d.ts +18 -0
- package/dist/generators/base/support/write-files.js +0 -26
- package/dist/generators/base-core/generator.js +7 -4
- package/dist/generators/bootstrap/generator.js +31 -2
- package/dist/generators/bootstrap/support/auto-crlf-transform.js +2 -2
- package/dist/generators/bootstrap-application-base/generator.js +1 -3
- package/dist/generators/client/resources/package.json +4 -4
- package/dist/generators/common/resources/package.json +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +11 -3
- package/dist/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +4 -4
- package/dist/generators/generate-blueprint/resources/package.json +2 -2
- package/dist/generators/generator-constants.d.ts +1 -1
- package/dist/generators/generator-constants.js +1 -1
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/java/generators/graalvm/internal/constants.d.ts +1 -1
- package/dist/generators/java/generators/graalvm/internal/constants.js +1 -1
- package/dist/generators/java/generators/node/generator.js +2 -1
- package/dist/generators/javascript/generators/eslint/templates/eslint.config.js.jhi.ejs +8 -0
- package/dist/generators/javascript/resources/package.json +3 -3
- package/dist/generators/languages/support/languages.js +1 -0
- package/dist/generators/languages/templates/entity/i18n/entity_he.json.ejs +78 -0
- package/dist/generators/languages/templates/src/main/resources/i18n/messages_he.properties.ejs +41 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/activate.json.ejs +27 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/configuration.json +11 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/error.json +15 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/gateway.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/global.json.ejs +172 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/health.json.ejs +75 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/home.json.ejs +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/login.json +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/logs.json +12 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/metrics.json +103 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/password.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/register.json +25 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/reset.json.ejs +45 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/sessions.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/settings.json +33 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/tracker.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/user-management.json +32 -0
- package/dist/generators/languages/templates/src/test/resources/i18n/messages_he.properties.ejs +4 -0
- package/dist/generators/react/resources/package.json +23 -23
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-delete-dialog.tsx.ejs +2 -1
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +4 -4
- package/dist/generators/react/templates/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/application-profile.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +0 -47
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/entity-utils.ts.ejs +1 -1
- package/dist/generators/server/resources/Dockerfile +11 -11
- package/dist/generators/server/resources/gradle/libs.versions.toml +6 -6
- package/dist/generators/server/resources/pom.xml +7 -7
- package/dist/generators/spring-boot/generator.js +2 -3
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +115 -105
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +61 -5
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +29 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +11 -5
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs +35 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs +35 -6
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs +3 -2
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/vue/cleanup.js +7 -1
- package/dist/generators/vue/files-vue.js +3 -8
- package/dist/generators/vue/resources/package.json +20 -20
- package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +9 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +21 -7
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.spec.ts.ejs +22 -10
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +24 -5
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-modal.ts.ejs +38 -0
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.spec.ts.ejs +0 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.ts.ejs +3 -25
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +24 -8
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.spec.ts.ejs +20 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +23 -13
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/gateway/gateway.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +10 -10
- package/dist/generators/vue/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics-modal.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +6 -6
- package/dist/generators/vue/templates/src/main/webapp/app/app.component.ts.ejs +29 -7
- package/dist/generators/vue/templates/src/main/webapp/app/app.vue.ejs +19 -1
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.spec.ts.ejs +66 -51
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.ts.ejs +30 -8
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.spec.ts.ejs +41 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.ts.ejs +10 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +43 -16
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +14 -9
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +7 -7
- package/dist/generators/vue/templates/src/main/webapp/app/entities/user/user.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/locale/translation.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +18 -14
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.ts.ejs +4 -4
- package/dist/lib/testing/apply-patch-to-template.d.ts +13 -0
- package/dist/lib/testing/apply-patch-to-template.js +90 -0
- package/package.json +26 -26
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ We are honored by any contributions you may have small or large. Please refer to
|
|
|
19
19
|
The following Java and Node combinations are tested and verified by GitHub Actions:
|
|
20
20
|
|
|
21
21
|
| Java | Node | Status |
|
|
22
|
-
|
|
22
|
+
| -------- | -------- | ------ |
|
|
23
23
|
| 17/21/24 | 18/20/22 | ✅ |
|
|
24
24
|
|
|
25
25
|
## Sponsors
|
package/dist/cli/cli.mjs
CHANGED
|
@@ -16,28 +16,15 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
import { dirname, join, relative } from 'path';
|
|
20
|
-
import { fileURLToPath } from 'url';
|
|
21
|
-
import { existsSync } from 'fs';
|
|
22
19
|
import semver from 'semver';
|
|
23
|
-
import chalk from 'chalk';
|
|
24
20
|
import { packageJson } from '../lib/index.js';
|
|
25
21
|
import { runJHipster } from './program.mjs';
|
|
26
22
|
import { done, logger } from './utils.mjs';
|
|
27
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
28
|
-
const __dirname = dirname(__filename);
|
|
29
23
|
const currentNodeVersion = process.versions.node;
|
|
30
24
|
const minimumNodeVersion = packageJson.engines.node;
|
|
31
25
|
if (!process.argv.includes('--skip-checks') && !semver.satisfies(currentNodeVersion, minimumNodeVersion)) {
|
|
32
26
|
logger.fatal(`You are running Node version ${currentNodeVersion}.\nJHipster requires Node version ${minimumNodeVersion}.\nPlease update your version of Node.`);
|
|
33
27
|
}
|
|
34
|
-
const appFolderOrWorkspaceRoot = existsSync('../node_modules') ? join(process.cwd(), '..') : process.cwd();
|
|
35
|
-
// If this file is not inside app npm repository and the executable exists inside the repository show warning.
|
|
36
|
-
if (relative(appFolderOrWorkspaceRoot, __dirname).startsWith('..') &&
|
|
37
|
-
existsSync(join(appFolderOrWorkspaceRoot, 'node_modules/.bin/jhipster'))) {
|
|
38
|
-
logger.warn(`Since JHipster v8, the jhipster command will not use the locally installed generator-jhipster.
|
|
39
|
-
If you want to execute the locally installed generator-jhipster, run: ${chalk.yellow('npx jhipster')}`);
|
|
40
|
-
}
|
|
41
28
|
export default runJHipster().catch(done);
|
|
42
29
|
process.on('unhandledRejection', up => {
|
|
43
30
|
logger.error('Unhandled promise rejection at:');
|
|
@@ -99,7 +99,9 @@ export default class EnvironmentBuilder {
|
|
|
99
99
|
this.env = env;
|
|
100
100
|
}
|
|
101
101
|
async prepare({ blueprints, lookups, devBlueprintPath = jhipsterDevBlueprintPath } = {}) {
|
|
102
|
-
|
|
102
|
+
const devBlueprintEnabled = existsSync(devBlueprintPath);
|
|
103
|
+
this.env.sharedOptions.devBlueprintEnabled = devBlueprintEnabled;
|
|
104
|
+
this.devBlueprintPath = devBlueprintEnabled ? devBlueprintPath : undefined;
|
|
103
105
|
this.localBlueprintPath = path.join(process.cwd(), '.blueprint');
|
|
104
106
|
this.localBlueprintExists = this.localBlueprintPath !== this.devBlueprintPath && existsSync(this.localBlueprintPath);
|
|
105
107
|
await this._lookupJHipster();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@angular/common": "19.2.
|
|
3
|
+
"@angular/common": "19.2.9",
|
|
4
4
|
"@fortawesome/angular-fontawesome": "1.0.0",
|
|
5
5
|
"@fortawesome/fontawesome-svg-core": "6.7.2",
|
|
6
6
|
"@fortawesome/free-solid-svg-icons": "6.7.2",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"@ngx-translate/http-loader": "16.0.1",
|
|
10
10
|
"@popperjs/core": "2.11.8",
|
|
11
11
|
"@stomp/rx-stomp": "2.0.1",
|
|
12
|
-
"bootstrap": "5.3.
|
|
13
|
-
"bootswatch": "5.3.
|
|
12
|
+
"bootstrap": "5.3.6",
|
|
13
|
+
"bootswatch": "5.3.5",
|
|
14
14
|
"ngx-cookie-service": "19.1.2",
|
|
15
15
|
"ngx-infinite-scroll": "19.0.0",
|
|
16
16
|
"rxjs": "7.8.2",
|
|
@@ -21,38 +21,38 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@angular-architects/module-federation": "19.0.3",
|
|
23
23
|
"@angular-architects/module-federation-runtime": "19.0.3",
|
|
24
|
-
"@angular-builders/custom-esbuild": "19.
|
|
25
|
-
"@angular-builders/custom-webpack": "19.0.
|
|
26
|
-
"@angular-builders/jest": "19.0.
|
|
27
|
-
"@angular/cli": "19.2.
|
|
28
|
-
"@eslint/js": "9.
|
|
24
|
+
"@angular-builders/custom-esbuild": "19.1.0",
|
|
25
|
+
"@angular-builders/custom-webpack": "19.0.1",
|
|
26
|
+
"@angular-builders/jest": "19.0.1",
|
|
27
|
+
"@angular/cli": "19.2.10",
|
|
28
|
+
"@eslint/js": "9.26.0",
|
|
29
29
|
"@types/jest": "29.5.14",
|
|
30
30
|
"@types/node": "20.11.25",
|
|
31
31
|
"@types/sockjs-client": "1.5.4",
|
|
32
32
|
"angular-eslint": "19.3.0",
|
|
33
|
-
"browser-sync": "3.0.
|
|
33
|
+
"browser-sync": "3.0.4",
|
|
34
34
|
"browser-sync-webpack-plugin": "2.3.0",
|
|
35
35
|
"buffer": "6.0.3",
|
|
36
36
|
"copy-webpack-plugin": "13.0.0",
|
|
37
37
|
"deepmerge": "4.3.1",
|
|
38
|
-
"eslint": "9.
|
|
39
|
-
"eslint-config-prettier": "10.1.
|
|
40
|
-
"eslint-plugin-prettier": "5.
|
|
38
|
+
"eslint": "9.26.0",
|
|
39
|
+
"eslint-config-prettier": "10.1.2",
|
|
40
|
+
"eslint-plugin-prettier": "5.4.0",
|
|
41
41
|
"folder-hash": "4.1.1",
|
|
42
42
|
"globals": "16.0.0",
|
|
43
43
|
"globby": "14.1.0",
|
|
44
44
|
"jest": "29.7.0",
|
|
45
45
|
"jest-date-mock": "1.0.10",
|
|
46
46
|
"jest-junit": "16.0.0",
|
|
47
|
-
"jest-preset-angular": "14.5.
|
|
47
|
+
"jest-preset-angular": "14.5.5",
|
|
48
48
|
"jest-sonar": "0.2.16",
|
|
49
49
|
"merge-jsons-webpack-plugin": "2.0.1",
|
|
50
|
-
"postcss-rtlcss": "5.
|
|
50
|
+
"postcss-rtlcss": "5.7.0",
|
|
51
51
|
"rimraf": "5.0.8",
|
|
52
|
-
"ts-jest": "29.3.
|
|
53
|
-
"typescript": "5.8.
|
|
54
|
-
"typescript-eslint": "8.
|
|
55
|
-
"webpack": "5.
|
|
52
|
+
"ts-jest": "29.3.2",
|
|
53
|
+
"typescript": "5.8.3",
|
|
54
|
+
"typescript-eslint": "8.32.0",
|
|
55
|
+
"webpack": "5.99.7",
|
|
56
56
|
"webpack-bundle-analyzer": "4.10.2",
|
|
57
57
|
"webpack-merge": "6.0.1",
|
|
58
58
|
"webpack-notifier": "1.15.0"
|
|
@@ -126,11 +126,9 @@ import angular from 'angular-eslint';
|
|
|
126
126
|
{
|
|
127
127
|
files: ['**/*.html'],
|
|
128
128
|
extends: [...angular.configs.templateRecommended, ...angular.configs.templateAccessibility],
|
|
129
|
-
rules: {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
ignores: ['**/*.html'],
|
|
134
|
-
extends: [prettier],
|
|
129
|
+
rules: {
|
|
130
|
+
'@angular-eslint/template/click-events-have-key-events': 'off',
|
|
131
|
+
'@angular-eslint/template/interactive-supports-focus': 'off',
|
|
132
|
+
},
|
|
135
133
|
},
|
|
136
134
|
<&_ } -&>
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
|
|
138
138
|
<div>
|
|
139
139
|
<div class="d-flex justify-content-center">
|
|
140
|
-
<<%= jhiPrefixDashed %>-item-count [params]="{ page
|
|
140
|
+
<<%= jhiPrefixDashed %>-item-count [params]="{ page, totalItems: totalItems(), itemsPerPage }" />
|
|
141
141
|
</div>
|
|
142
142
|
|
|
143
143
|
<div class="d-flex justify-content-center">
|
package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs
CHANGED
|
@@ -85,7 +85,7 @@ export class TrackerService {
|
|
|
85
85
|
return this.rxStomp;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
subscribe(observer: Partial<Observer<TrackerActivity>>): Subscription {
|
|
89
89
|
return (
|
|
90
90
|
this.stomp
|
|
91
91
|
.watch(DESTINATION_TRACKER)
|
|
@@ -221,7 +221,7 @@ _%>
|
|
|
221
221
|
@if (<%= entityInstancePlural %>().length > 0) {
|
|
222
222
|
<div>
|
|
223
223
|
<div class="d-flex justify-content-center">
|
|
224
|
-
<<%= jhiPrefixDashed %>-item-count [params]="{ page
|
|
224
|
+
<<%= jhiPrefixDashed %>-item-count [params]="{ page, totalItems, itemsPerPage }" />
|
|
225
225
|
</div>
|
|
226
226
|
|
|
227
227
|
<div class="d-flex justify-content-center">
|
|
@@ -177,7 +177,7 @@ _%>
|
|
|
177
177
|
<option [ngValue]="null" selected></option>
|
|
178
178
|
}
|
|
179
179
|
<%_ } else { _%>
|
|
180
|
-
@if (editForm.get(['<%- relationship.propertyName %>'])!.value
|
|
180
|
+
@if (editForm.get(['<%- relationship.propertyName %>'])!.value === null) {
|
|
181
181
|
<option [ngValue]="null" selected></option>
|
|
182
182
|
}
|
|
183
183
|
<%_ } _%>
|
package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs
CHANGED
|
@@ -26,7 +26,7 @@ export class SortService {
|
|
|
26
26
|
sensitivity: 'base',
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
startSort({ predicate, order }: Required<SortState>, fallback?: Required<SortState>): (a: any, b: any) => number {
|
|
30
30
|
const multiply = order === 'desc' ? -1 : 1;
|
|
31
31
|
return (a: any, b: any) => {
|
|
32
32
|
const compare = this.collator.compare(a[predicate], b[predicate]);
|
|
@@ -37,7 +37,7 @@ export class SortService {
|
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
parseSortParam(sortParam: string | undefined): SortState {
|
|
41
41
|
if (sortParam?.includes(',')) {
|
|
42
42
|
const split = sortParam.split(',');
|
|
43
43
|
if (split[0]) {
|
|
@@ -47,7 +47,7 @@ export class SortService {
|
|
|
47
47
|
return { predicate: sortParam?.length ? sortParam : undefined };
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
buildSortParam({ predicate, order }: SortState, fallback?: string): string[] {
|
|
51
51
|
const sortParam = predicate && order ? [`${predicate},${order}`] : [];
|
|
52
52
|
if (fallback && predicate !== fallback) {
|
|
53
53
|
sortParam.push(`${fallback},asc`);
|
|
@@ -18,6 +18,8 @@ export type JHipsterGeneratorOptions = BaseOptions &
|
|
|
18
18
|
programName: string;
|
|
19
19
|
positionalArguments?: unknown[];
|
|
20
20
|
createEnvBuilder?: any;
|
|
21
|
+
devBlueprintEnabled?: boolean;
|
|
22
|
+
|
|
21
23
|
/** @experimental */
|
|
22
24
|
jdlDefinition?: JDLApplicationConfig;
|
|
23
25
|
/** @experimental */
|
|
@@ -115,7 +117,7 @@ export type NeedleCallback = (content: string) => string;
|
|
|
115
117
|
|
|
116
118
|
export type EditFileCallback<Generator = CoreGenerator> = (this: Generator, content: string, filePath: string) => string;
|
|
117
119
|
|
|
118
|
-
export type EditFileOptions = { create?: boolean; ignoreNonExisting?: boolean | string; assertModified?: boolean };
|
|
120
|
+
export type EditFileOptions = { create?: boolean; ignoreNonExisting?: boolean | string; assertModified?: boolean; autoCrlf?: boolean };
|
|
119
121
|
|
|
120
122
|
export type CascatedEditFileCallback<Generator = CoreGenerator> = (
|
|
121
123
|
...callbacks: EditFileCallback<Generator>[]
|
|
@@ -16,6 +16,15 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
export declare const CRLF = "\r\n";
|
|
20
|
+
export declare const LF = "\n";
|
|
21
|
+
/**
|
|
22
|
+
* Check if a string contains CRLF line endings.
|
|
23
|
+
*
|
|
24
|
+
* @param str
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare const hasCrlr: (str?: string) => boolean;
|
|
19
28
|
/**
|
|
20
29
|
* Replace line endings with the specified one.
|
|
21
30
|
*
|
|
@@ -23,7 +32,7 @@
|
|
|
23
32
|
* @param lineEnding
|
|
24
33
|
* @returns normalized line ending string
|
|
25
34
|
*/
|
|
26
|
-
export declare function normalizeLineEndings(str: string, lineEnding:
|
|
35
|
+
export declare function normalizeLineEndings(str: string, lineEnding: typeof LF | typeof CRLF): string;
|
|
27
36
|
/**
|
|
28
37
|
* @private
|
|
29
38
|
* @deprecated
|
|
@@ -16,6 +16,15 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
export const CRLF = '\r\n';
|
|
20
|
+
export const LF = '\n';
|
|
21
|
+
/**
|
|
22
|
+
* Check if a string contains CRLF line endings.
|
|
23
|
+
*
|
|
24
|
+
* @param str
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export const hasCrlr = (str) => Boolean(str?.includes(CRLF));
|
|
19
28
|
/**
|
|
20
29
|
* Replace line endings with the specified one.
|
|
21
30
|
*
|
|
@@ -28,6 +28,7 @@ export { default as getHipster } from './hipster.js';
|
|
|
28
28
|
export * from './jhipster7-context.js';
|
|
29
29
|
export * from './namespace.js';
|
|
30
30
|
export * from './needles.js';
|
|
31
|
+
export * from './os.js';
|
|
31
32
|
export * from './path.js';
|
|
32
33
|
export { default as httpsGet } from './remote.js';
|
|
33
34
|
export * from './secret.js';
|
|
@@ -28,6 +28,7 @@ export { default as getHipster } from './hipster.js';
|
|
|
28
28
|
export * from './jhipster7-context.js';
|
|
29
29
|
export * from './namespace.js';
|
|
30
30
|
export * from './needles.js';
|
|
31
|
+
export * from './os.js';
|
|
31
32
|
export * from './path.js';
|
|
32
33
|
export { default as httpsGet } from './remote.js';
|
|
33
34
|
export * from './secret.js';
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
import assert from 'assert';
|
|
20
20
|
import { escapeRegExp, kebabCase } from 'lodash-es';
|
|
21
21
|
import { joinCallbacks } from './write-files.js';
|
|
22
|
-
import { normalizeLineEndings } from './contents.js';
|
|
23
22
|
/**
|
|
24
23
|
* Change spaces sequences and characters that prettier breaks line (<>()) to allow any number of spaces or new line prefix
|
|
25
24
|
*/
|
|
@@ -62,9 +61,6 @@ export const insertContentBeforeNeedle = ({ content, contentToAdd, needle, autoI
|
|
|
62
61
|
assert(needle, 'needle is required');
|
|
63
62
|
assert(content, 'content is required');
|
|
64
63
|
assert(contentToAdd, 'contentToAdd is required');
|
|
65
|
-
const isCrLr = content.includes('\r\n');
|
|
66
|
-
content = isCrLr ? normalizeLineEndings(content, '\n') : content;
|
|
67
|
-
const lineEnding = isCrLr ? '\r\n' : '\n';
|
|
68
64
|
needle = needle.includes('jhipster-needle-') ? needle : `jhipster-needle-${needle}`;
|
|
69
65
|
const regexp = new RegExp(`(?://|<!--|/\\*|#) ${needle}(?:$|\n| )`, 'g');
|
|
70
66
|
const firstMatch = regexp.exec(content);
|
|
@@ -87,7 +83,7 @@ export const insertContentBeforeNeedle = ({ content, contentToAdd, needle, autoI
|
|
|
87
83
|
needleIndent,
|
|
88
84
|
indentPrefix: ' '.repeat(needleIndent),
|
|
89
85
|
});
|
|
90
|
-
return
|
|
86
|
+
return newContent;
|
|
91
87
|
}
|
|
92
88
|
contentToAdd = Array.isArray(contentToAdd) ? contentToAdd : [contentToAdd];
|
|
93
89
|
if (autoIndent) {
|
|
@@ -118,7 +114,7 @@ export const insertContentBeforeNeedle = ({ content, contentToAdd, needle, autoI
|
|
|
118
114
|
contentToAdd = contentToAdd.map(line => (line.length > identToRemove ? line.substring(identToRemove) : ''));
|
|
119
115
|
}
|
|
120
116
|
const newContent = `${beforeContent}${contentToAdd.join('\n')}\n${afterContent}`;
|
|
121
|
-
return
|
|
117
|
+
return newContent;
|
|
122
118
|
};
|
|
123
119
|
/**
|
|
124
120
|
* Create an callback to insert the new content into existing content.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isWin32: boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2025 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 { platform } from 'os';
|
|
20
|
+
export const isWin32 = platform() === 'win32';
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2025 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
|
+
*/
|
|
1
19
|
import type { EditFileCallback } from '../api.js';
|
|
2
20
|
/**
|
|
3
21
|
* TODO move to utils when converted to typescripts
|
|
@@ -1,35 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2013-2025 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 { platform } from 'os';
|
|
20
|
-
import { normalizeLineEndings } from './contents.js';
|
|
21
|
-
const isWin32 = platform() === 'win32';
|
|
22
1
|
/**
|
|
23
2
|
* TODO move to utils when converted to typescripts
|
|
24
3
|
* Converts multiples EditFileCallback callbacks into one.
|
|
25
4
|
*/
|
|
26
5
|
export function joinCallbacks(...callbacks) {
|
|
27
6
|
return function (content, filePath) {
|
|
28
|
-
if (isWin32 && /\r\n/.exec(content)) {
|
|
29
|
-
const removeSlashRSlashN = ct => normalizeLineEndings(ct, '\n');
|
|
30
|
-
const addSlashRSlashN = ct => normalizeLineEndings(ct, '\r\n');
|
|
31
|
-
callbacks = [removeSlashRSlashN, ...callbacks, addSlashRSlashN];
|
|
32
|
-
}
|
|
33
7
|
for (const callback of callbacks) {
|
|
34
8
|
content = callback.call(this, content, filePath);
|
|
35
9
|
}
|
|
@@ -32,7 +32,7 @@ import YeomanGenerator from 'yeoman-generator';
|
|
|
32
32
|
import latestVersion from 'latest-version';
|
|
33
33
|
import SharedData from '../base/shared-data.js';
|
|
34
34
|
import { CUSTOM_PRIORITIES, PRIORITY_NAMES, PRIORITY_PREFIX, QUEUES } from '../base/priorities.js';
|
|
35
|
-
import { createJHipster7Context, formatDateForChangelog, joinCallbacks, removeFieldsWithNullishValues } from '../base/support/index.js';
|
|
35
|
+
import { CRLF, LF, createJHipster7Context, formatDateForChangelog, hasCrlr, joinCallbacks, normalizeLineEndings, removeFieldsWithNullishValues, } from '../base/support/index.js';
|
|
36
36
|
import { convertConfigToOption, } from '../../lib/command/index.js';
|
|
37
37
|
import { packageJson } from '../../lib/index.js';
|
|
38
38
|
import { GENERATOR_BOOTSTRAP } from '../generator-list.js';
|
|
@@ -171,6 +171,7 @@ export default class CoreGenerator extends YeomanGenerator {
|
|
|
171
171
|
skipFakeData: false,
|
|
172
172
|
skipCheckLengthOfIdentifier: false,
|
|
173
173
|
enableGradleEnterprise: false,
|
|
174
|
+
autoCrlf: false,
|
|
174
175
|
pages: [],
|
|
175
176
|
});
|
|
176
177
|
return configWithDefaults;
|
|
@@ -1051,16 +1052,18 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`;
|
|
|
1051
1052
|
}
|
|
1052
1053
|
let newContent = originalContent;
|
|
1053
1054
|
const writeCallback = (...callbacks) => {
|
|
1055
|
+
const { autoCrlf = this.jhipsterConfigWithDefaults.autoCrlf, assertModified } = actualOptions;
|
|
1054
1056
|
try {
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
+
const fileHasCrlf = autoCrlf && hasCrlr(newContent);
|
|
1058
|
+
newContent = joinCallbacks(...callbacks).call(this, fileHasCrlf ? normalizeLineEndings(newContent, LF) : newContent, filePath);
|
|
1059
|
+
if (assertModified && originalContent === newContent) {
|
|
1057
1060
|
const errorMessage = `${chalk.yellow('Fail to modify ')}${filePath}.`;
|
|
1058
1061
|
if (!this.ignoreNeedlesError) {
|
|
1059
1062
|
throw new Error(errorMessage);
|
|
1060
1063
|
}
|
|
1061
1064
|
this.log(errorMessage);
|
|
1062
1065
|
}
|
|
1063
|
-
this.writeDestination(filePath, newContent);
|
|
1066
|
+
this.writeDestination(filePath, fileHasCrlf ? normalizeLineEndings(newContent, CRLF) : newContent);
|
|
1064
1067
|
}
|
|
1065
1068
|
catch (error) {
|
|
1066
1069
|
if (error instanceof Error) {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import { rm } from 'fs/promises';
|
|
19
20
|
import { createConflicterTransform, createYoResolveTransform, forceYoFiles } from '@yeoman/conflicter';
|
|
20
21
|
import { transform } from '@yeoman/transform';
|
|
21
22
|
import { isFilePending, isFileStateModified } from 'mem-fs-editor/state';
|
|
@@ -169,9 +170,37 @@ export default class BootstrapGenerator extends BaseGenerator {
|
|
|
169
170
|
}));
|
|
170
171
|
}
|
|
171
172
|
const autoCrlfTransforms = [];
|
|
172
|
-
if (this.
|
|
173
|
+
if (this.jhipsterConfigWithDefaults.autoCrlf) {
|
|
173
174
|
autoCrlfTransforms.push(await autoCrlfTransform({ baseDir: this.destinationPath() }));
|
|
174
175
|
}
|
|
176
|
+
let customizeActions;
|
|
177
|
+
if (this.options.devBlueprintEnabled) {
|
|
178
|
+
customizeActions = (actions, { separator }) => {
|
|
179
|
+
return [
|
|
180
|
+
...actions,
|
|
181
|
+
...(separator ? [separator()] : []),
|
|
182
|
+
{
|
|
183
|
+
key: 't',
|
|
184
|
+
name: 'apply to template',
|
|
185
|
+
value: async ({ file }) => {
|
|
186
|
+
const { applyChangesToFileOrCopy } = await import('../../lib/testing/apply-patch-to-template.js');
|
|
187
|
+
if (file.history?.[0] && file.conflicterData?.diskContents) {
|
|
188
|
+
const templateFile = file.history[0];
|
|
189
|
+
if (!file.contents) {
|
|
190
|
+
await rm(templateFile, { force: true });
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
const oldFileContents = file.conflicterData.diskContents.toString();
|
|
194
|
+
const newFileContents = file.contents.toString();
|
|
195
|
+
applyChangesToFileOrCopy({ templateFile, oldFileContents, newFileContents });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return 'skip';
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
};
|
|
203
|
+
}
|
|
175
204
|
const transformStreams = [
|
|
176
205
|
...skipYoResolveTransforms,
|
|
177
206
|
forceYoFiles(),
|
|
@@ -179,7 +208,7 @@ export default class BootstrapGenerator extends BaseGenerator {
|
|
|
179
208
|
createForceWriteConfigFilesTransform(),
|
|
180
209
|
...prettierTransforms,
|
|
181
210
|
...autoCrlfTransforms,
|
|
182
|
-
createConflicterTransform(this.env.adapter, { ...this.env.conflicterOptions }),
|
|
211
|
+
createConflicterTransform(this.env.adapter, { ...this.env.conflicterOptions, customizeActions }),
|
|
183
212
|
createCommitTransform(),
|
|
184
213
|
];
|
|
185
214
|
await this.pipeline({
|
|
@@ -23,7 +23,7 @@ import { transform } from 'p-transform';
|
|
|
23
23
|
import { isBinaryFile } from 'isbinaryfile';
|
|
24
24
|
import { simpleGit } from 'simple-git';
|
|
25
25
|
import { isFileStateModified } from 'mem-fs-editor/state';
|
|
26
|
-
import { normalizeLineEndings } from '../../base/support/index.js';
|
|
26
|
+
import { CRLF, normalizeLineEndings } from '../../base/support/index.js';
|
|
27
27
|
/**
|
|
28
28
|
* Detect the file first line endings
|
|
29
29
|
*/
|
|
@@ -70,7 +70,7 @@ const autoCrlfTransform = async ({ baseDir }) => {
|
|
|
70
70
|
.map(attr => attr.split(':'))
|
|
71
71
|
.map(([_file, attr, value]) => [attr, value]));
|
|
72
72
|
if (attrs.eol === 'crlf' || (attrs.binary !== 'set' && attrs.eol !== 'lf' && (await detectCrLf(file.path)))) {
|
|
73
|
-
file.contents = Buffer.from(normalizeLineEndings(file.contents.toString(),
|
|
73
|
+
file.contents = Buffer.from(normalizeLineEndings(file.contents.toString(), CRLF));
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import assert from 'assert';
|
|
20
|
-
import os from 'os';
|
|
21
20
|
import { lowerFirst } from 'lodash-es';
|
|
22
21
|
import chalk from 'chalk';
|
|
23
22
|
import { passthrough } from '@yeoman/transform';
|
|
@@ -32,11 +31,10 @@ import { loadAppConfig, loadDerivedAppConfig, loadStoredAppOptions } from '../ap
|
|
|
32
31
|
import { lookupCommandsConfigs } from '../../lib/command/lookup-commands-configs.js';
|
|
33
32
|
import { loadCommandConfigsIntoApplication, loadCommandConfigsKeysIntoTemplatesContext } from '../../lib/command/load.js';
|
|
34
33
|
import { getConfigWithDefaults } from '../../lib/jhipster/default-application-options.js';
|
|
35
|
-
import { removeFieldsWithNullishValues } from '../base/support/index.js';
|
|
34
|
+
import { isWin32, removeFieldsWithNullishValues } from '../base/support/index.js';
|
|
36
35
|
import { convertFieldBlobType, getBlobContentType, isFieldBinaryType, isFieldBlobType } from '../../lib/application/field-types.js';
|
|
37
36
|
import { createAuthorityEntity, createUserEntity, createUserManagementEntity } from './utils.js';
|
|
38
37
|
import { exportJDLTransform, importJDLTransform } from './support/index.js';
|
|
39
|
-
const isWin32 = os.platform() === 'win32';
|
|
40
38
|
export default class BootstrapApplicationBase extends BaseApplicationGenerator {
|
|
41
39
|
constructor(args, options, features) {
|
|
42
40
|
super(args, options, { jhipsterBootstrap: false, ...features });
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"@cypress/code-coverage": "3.14.0",
|
|
7
7
|
"babel-loader": "9.2.1",
|
|
8
8
|
"babel-plugin-istanbul": "7.0.0",
|
|
9
|
-
"cypress": "14.2
|
|
9
|
+
"cypress": "14.3.2",
|
|
10
10
|
"cypress-audit": "1.1.0",
|
|
11
|
-
"eslint-plugin-cypress": "4.
|
|
12
|
-
"lighthouse": "12.
|
|
11
|
+
"eslint-plugin-cypress": "4.3.0",
|
|
12
|
+
"lighthouse": "12.6.0",
|
|
13
13
|
"nyc": "17.1.0",
|
|
14
|
-
"swagger-ui-dist": "5.
|
|
14
|
+
"swagger-ui-dist": "5.21.0"
|
|
15
15
|
},
|
|
16
16
|
"packageManager": "npm@11"
|
|
17
17
|
}
|
package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs
CHANGED
|
@@ -26,13 +26,21 @@ describe('logout', () => {
|
|
|
26
26
|
const username = Cypress.env('E2E_USERNAME') ?? '<%- generateInMemoryUserCredentials ? 'admin' : 'user' %>';
|
|
27
27
|
const password = Cypress.env('E2E_PASSWORD') ?? '<%- generateInMemoryUserCredentials ? 'admin' : 'user' %>';
|
|
28
28
|
|
|
29
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
cy.intercept('POST', '/api/logout').as('logout');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
<%_ } _%>
|
|
29
35
|
it<%- clientFrameworkReact ? '.skip' : '' %>('go to home page when successfully logs out', () => {
|
|
30
36
|
cy.login(username, password);
|
|
31
37
|
cy.visit('');
|
|
38
|
+
|
|
32
39
|
cy.clickOnLogoutItem();
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
cy.
|
|
40
|
+
|
|
41
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
42
|
+
cy.wait('@logout');
|
|
43
|
+
<%_ } _%>
|
|
36
44
|
cy.get(navbarSelector).get(accountMenuSelector).click();
|
|
37
45
|
cy.get(navbarSelector).get(accountMenuSelector).get(loginItemSelector).should('be.visible');
|
|
38
46
|
});
|
|
@@ -58,8 +58,8 @@ Cypress.Commands.add('keycloakLogin', (oauth2Data, username: string, password: s
|
|
|
58
58
|
followRedirect: false,
|
|
59
59
|
form: true,
|
|
60
60
|
body: {
|
|
61
|
-
username
|
|
62
|
-
password
|
|
61
|
+
username,
|
|
62
|
+
password,
|
|
63
63
|
},
|
|
64
64
|
});
|
|
65
65
|
})
|
|
@@ -91,8 +91,8 @@ Cypress.Commands.add('auth0Login', (oauth2Data, username: string, password: stri
|
|
|
91
91
|
body: {
|
|
92
92
|
state: state,
|
|
93
93
|
action: 'default',
|
|
94
|
-
username
|
|
95
|
-
password
|
|
94
|
+
username,
|
|
95
|
+
password,
|
|
96
96
|
},
|
|
97
97
|
});
|
|
98
98
|
})
|