diff --git a/.blueprint/generate-generator/generator.mjs b/.blueprint/generate-generator/generator.mjs index 60328e3f7289..ed0692a3139d 100644 --- a/.blueprint/generate-generator/generator.mjs +++ b/.blueprint/generate-generator/generator.mjs @@ -1,5 +1,5 @@ -import BaseGenerator from '../../generators/base/index.js'; import { camelCase, upperFirst } from 'lodash-es'; +import BaseGenerator from '../../generators/base/index.js'; export default class extends BaseGenerator { generatorNamespace; diff --git a/.blueprint/generate-sample/generator.mjs b/.blueprint/generate-sample/generator.mjs index 229032d5a42e..d3dee4dada55 100644 --- a/.blueprint/generate-sample/generator.mjs +++ b/.blueprint/generate-sample/generator.mjs @@ -2,9 +2,9 @@ import { basename, extname, resolve } from 'path'; import { transform } from '@yeoman/transform'; import BaseGenerator from '../../generators/base/index.js'; import { packageJson } from '../../lib/index.js'; -import { generateSample, entitiesByType } from './support/index.js'; import { promptSamplesFolder } from '../support.mjs'; import { GENERATOR_APP, GENERATOR_INFO, GENERATOR_JDL } from '../../generators/generator-list.js'; +import { generateSample, entitiesByType } from './support/index.js'; export default class extends BaseGenerator { sampleName; diff --git a/.blueprint/generate-sample/support/copy-jdl-entity-samples.js b/.blueprint/generate-sample/support/copy-jdl-entity-samples.js index 900cb9c061a4..ebb64bd1801b 100644 --- a/.blueprint/generate-sample/support/copy-jdl-entity-samples.js +++ b/.blueprint/generate-sample/support/copy-jdl-entity-samples.js @@ -5,7 +5,7 @@ import { jdlEntitiesSamplesFolder } from '../../constants.js'; const isDirectory = dir => { try { return statSync(dir).isDirectory(); - } catch (error) { + } catch { return false; } }; diff --git a/.blueprint/generate-sample/support/generate-sample.js b/.blueprint/generate-sample/support/generate-sample.js index 3bf4f2b3db7a..a7a3d42246cf 100644 --- a/.blueprint/generate-sample/support/generate-sample.js +++ b/.blueprint/generate-sample/support/generate-sample.js @@ -1,13 +1,13 @@ import { cpSync, existsSync, mkdirSync } from 'fs'; -import { join, resolve } from 'path'; +import { join } from 'path'; import process from 'process'; import { globSync } from 'glob'; import { execa } from 'execa'; +import { dailyBuildsFolder, jdlEntitiesSamplesFolder, jdlSamplesFolder, jhipsterBin, samplesFolder } from '../../constants.js'; import getSamples, { DAILY_PREFIX, isDaily } from './get-workflow-samples.js'; import copyEntitySamples from './copy-entity-samples.js'; import copyJdlEntitySamples from './copy-jdl-entity-samples.js'; -import { dailyBuildsFolder, jdlEntitiesSamplesFolder, jdlSamplesFolder, jhipsterBin, samplesFolder } from '../../constants.js'; const commonCliOptions = ['--skip-jhipster-dependencies', '--skip-checks', '--skip-install', '--no-insight']; @@ -34,6 +34,7 @@ export const generateSample = async ( process.chdir(destProjectFolder); if (!sample) { + // eslint-disable-next-line no-console console.log(`Sample ${sampleName} was not found`); } diff --git a/.blueprint/update-vscode/generator.mjs b/.blueprint/update-vscode/generator.mjs index 3620f4332d3f..8140d068e5a8 100644 --- a/.blueprint/update-vscode/generator.mjs +++ b/.blueprint/update-vscode/generator.mjs @@ -22,6 +22,7 @@ export default class extends BaseGenerator { request: 'launch', internalConsoleOptions: 'neverOpen', name: 'update vscode launch.json', + // eslint-disable-next-line no-template-curly-in-string program: '${workspaceFolder}/test-integration/scripts/99-update-vscode.js', console: 'integratedTerminal', }, @@ -41,6 +42,7 @@ export default class extends BaseGenerator { request: 'launch', internalConsoleOptions: 'neverOpen', name: `generate sample from ${workflowName} workflow`, + // eslint-disable-next-line no-template-curly-in-string program: '${workspaceFolder}/bin/jhipster.cjs', args: ['generate-sample', `\${input:${workflowName}Sample}`, '--global'], console: 'integratedTerminal', diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index aabe916debee..000000000000 --- a/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -.vscode-test -coverage -generators/**/templates -node_modules -node_modules_container -test-integration -docs -test/templates -jdl/bundling -test/fixtures/** -dist diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 920b4c9d8987..000000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "env": { - "node": true, - "es2022": true - }, - "extends": ["plugin:prettier/recommended", "plugin:@typescript-eslint/recommended"], - "parser": "@typescript-eslint/parser", - "plugins": ["mocha", "prettier", "chai-friendly", "@typescript-eslint", "unused-imports", "import"], - "settings": { - "import/core-modules": ["generator-jhipster", "generator-jhipster/support"] - }, - "parserOptions": { - "ecmaVersion": 13 - }, - "overrides": [ - { - "files": ["**/*.{c,m,}{js,ts}"], - "rules": { - "import/extensions": [0, { "pattern": { "{c,m,}{js,ts}": "always" } }] - } - }, - { - "files": ["**/*.spec.{c,m,}{js,ts}", "**/__test-support/*.{c,m,}{js,ts}", "test/**/*.{c,m,}{js,ts}"], - "rules": { - "@typescript-eslint/ban-ts-comment": "off", - "import/first": "off" - } - }, - { - "files": ["**/*.{c,m,}js", "**/*.{c,m,}js"], - "rules": { - "@typescript-eslint/no-var-requires": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-this-alias": "off", - "import/no-unresolved": "off" - } - }, - { - "files": ["**/*.{c,m,}ts"], - "rules": { - "import/extensions": "off", - "import/no-unresolved": "off" - } - } - ], - "rules": { - "default-param-last": "off", - "import/no-unresolved": [2, { "ignore": ["^#[\\w\\d/\\-]+$"] }], - "import/prefer-default-export": "off", - "prettier/prettier": "error", - "prefer-regex-literals": "off", - "linebreak-style": 0, - "eol-last": 2, - "quotes": [2, "single", { "avoidEscape": true }], - "semi": [2, "always"], - "eqeqeq": [2, "smart"], - "no-restricted-globals": ["off"], - "no-restricted-exports": "off", - "no-use-before-define": [2, "nofunc"], - "no-confusing-arrow": "off", - "no-multi-str": 2, - "no-promise-executor-return": "off", - "no-irregular-whitespace": 2, - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-unused-vars": "off", - "unused-imports/no-unused-imports": "error", - "unused-imports/no-unused-vars": [ - "error", - { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" } - ], - "@typescript-eslint/no-explicit-any": "off", - "comma-dangle": "off", - "max-len": "off", - "import/order": "error", - "import/no-duplicates": "error", - "func-names": "off", - "class-methods-use-this": "off", - "no-underscore-dangle": "off", - "no-plusplus": "off", - "no-unused-expressions": 0, - "chai-friendly/no-unused-expressions": [2, { "allowShortCircuit": true, "allowTernary": true }], - "prefer-destructuring": "off", - "no-multi-assign": "off", - "no-param-reassign": "off", - "lines-between-class-members": [2, "always", { "exceptAfterSingleLine": true }], - "import/no-extraneous-dependencies": "off", - "no-await-in-loop": "off", - "no-restricted-syntax": [ - "error", - { - "selector": "ForInStatement", - "message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array." - }, - { - "selector": "LabeledStatement", - "message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand." - }, - { - "selector": "WithStatement", - "message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize." - } - ], - "no-shadow": "off" - } -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f45a3545e02f..aabadb829f5e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -36,9 +36,10 @@ updates: - dependency-name: '@types/node' versions: ['>=19'] groups: - typescript-eslint: + eslint: patterns: - - '@typescript-eslint/*' + - '@eslint/*' + - 'eslint' - package-ecosystem: 'npm' directory: '/generators/generate-blueprint/resources/' diff --git a/.github/workflows/docker-image-publish-github-registry.yml b/.github/workflows/docker-image-publish-github-registry.yml index 63e5d7e6e64e..d70754e923fb 100644 --- a/.github/workflows/docker-image-publish-github-registry.yml +++ b/.github/workflows/docker-image-publish-github-registry.yml @@ -72,7 +72,7 @@ jobs: images: ghcr.io/${{ github.repository }}${{ (steps.login-hub.outcome == 'success' && ',jhipster/jhipster') || ''}} - name: Build and push Docker image - uses: docker/build-push-action@v6.5.0 + uses: docker/build-push-action@v6.6.0 with: context: . platforms: linux/amd64,linux/arm64 diff --git a/.mocharc.cjs b/.mocharc.cjs index 3f0b845bbb01..f3fdfb52f90f 100644 --- a/.mocharc.cjs +++ b/.mocharc.cjs @@ -2,6 +2,7 @@ const Module = require('module'); const process = require('process'); if (!Module.register) { + // eslint-disable-next-line no-console console.log('JHipster test requires node >=18.19.0 || >= 20.6.0\n'); process.exit(1); } diff --git a/bin/jhipster.cjs b/bin/jhipster.cjs index 7967728ea594..3ec714c107c2 100755 --- a/bin/jhipster.cjs +++ b/bin/jhipster.cjs @@ -9,7 +9,6 @@ const [_nodeExec, _exec, ...args] = process.argv; console.error('jhipster', ...args); (async () => { - // eslint-disable-next-line import/no-unresolved const { default: esbuildx } = await import('@node-loaders/esbuildx'); await esbuildx(join(__dirname, 'cli.cjs')); })(); diff --git a/cli/environment-builder.mjs b/cli/environment-builder.mjs index 333fa64b1dec..56396461c273 100644 --- a/cli/environment-builder.mjs +++ b/cli/environment-builder.mjs @@ -404,8 +404,6 @@ export default class EnvironmentBuilder { } let result; for (const [blueprint, packagePath] of blueprintPackagePaths) { - /* eslint-disable import/no-dynamic-require */ - /* eslint-disable global-require */ let blueprintCommand; const blueprintCommandFile = `${packagePath}/cli/commands`; const blueprintCommandExtension = ['.js', '.cjs', '.mjs'].find(extension => existsSync(`${blueprintCommandFile}${extension}`)); @@ -418,7 +416,7 @@ export default class EnvironmentBuilder { commandSpec.blueprint = commandSpec.blueprint || blueprint; }); result = { ...result, ...blueprintCommands }; - } catch (e) { + } catch { const msg = `Error parsing custom commands found within blueprint: ${blueprint} at ${blueprintCommandsUrl}`; /* eslint-disable no-console */ console.info(`${chalk.green.bold('INFO!')} ${msg}`); @@ -456,8 +454,6 @@ export default class EnvironmentBuilder { } async function loadSharedOptionsFromFile(sharedOptionsBase, msg, errorMsg) { - /* eslint-disable import/no-dynamic-require */ - /* eslint-disable global-require */ try { const baseExtension = ['.js', '.cjs', '.mjs'].find(extension => existsSync(resolve(`${sharedOptionsBase}${extension}`))); if (baseExtension) { diff --git a/cli/program.mjs b/cli/program.mjs index a29612a056bc..054430053e0f 100644 --- a/cli/program.mjs +++ b/cli/program.mjs @@ -1,5 +1,3 @@ -/* eslint-disable global-require */ -/* eslint-disable import/no-dynamic-require */ /** * Copyright 2013-2024 the original author or authors from the JHipster project. * @@ -334,7 +332,7 @@ export const buildJHipster = async ({ printBlueprintLogo, devBlueprintPath, env, - /* eslint-disable-next-line global-require, import/no-dynamic-require */ + loadCommand = async key => { const { default: command } = await import(`./${key}.mjs`); return command; @@ -342,7 +340,6 @@ export const buildJHipster = async ({ defaultCommand, entrypointGenerator, } = {}) => { - // eslint-disable-next-line chai-friendly/no-unused-expressions createEnvBuilder = createEnvBuilder ?? (async options => EnvironmentBuilder.create(options).prepare({ blueprints, lookups, devBlueprintPath })); envBuilder = envBuilder ?? (await createEnvBuilder()); diff --git a/cli/utils.mjs b/cli/utils.mjs index 4805f5d837f4..ea71d11bd93e 100644 --- a/cli/utils.mjs +++ b/cli/utils.mjs @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-console */ + import chalk from 'chalk'; import { createJHipsterLogger, CLI_LOGGER } from '../generators/base/support/index.js'; diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000000..71bd1f5c936a --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,115 @@ +import globals from 'globals'; +import js from '@eslint/js'; +import ts from 'typescript-eslint'; +import prettier from 'eslint-plugin-prettier/recommended'; +import chai from 'eslint-plugin-chai-friendly'; +import importRecommented from 'eslint-plugin-import/config/recommended.js'; +import jhipster from './lib/eslint/index.js'; + +export default ts.config( + { + languageOptions: { + ecmaVersion: 2022, + sourceType: 'module', + globals: { + ...globals.node, + }, + }, + }, + { ignores: ['dist'] }, + js.configs.recommended, + jhipster.base, + { + files: ['**/*.ts'], + extends: [...ts.configs.recommended, ...ts.configs.stylistic], + languageOptions: { + parserOptions: { + project: ['./tsconfig.spec.json', './tsconfig.eslint.json'], + }, + }, + rules: { + '@typescript-eslint/consistent-type-definitions': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/prefer-for-of': 'off', + '@typescript-eslint/no-this-alias': 'off', + }, + }, + { + files: ['**/*.spec.{js,ts}'], + rules: { + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/no-unused-expressions': 'off', + }, + }, + { + languageOptions: { + // import plugin does not use ecmaVersion and sourceType from languageOptions object + parserOptions: { + ecmaVersion: 2022, + sourceType: 'module', + }, + }, + settings: { + 'import/parsers': { + espree: ['.js', '.cjs', '.mjs'], + '@typescript-eslint/parser': ['.ts'], + }, + 'import/resolver': { + node: true, + typescript: true, + }, + }, + rules: { + ...importRecommented.rules, + 'import/no-named-as-default-member': 'off', + 'import/named': 'off', + 'import/extensions': [0, { pattern: { '{c,m,}{js,ts}': 'always' } }], + 'import/prefer-default-export': 'off', + 'import/namespace': 'off', + }, + }, + { + files: ['bin/**/*', '**/*.spec.ts', 'testing/**/*', 'test/**/*'], + rules: { + 'import/no-unresolved': 'off', + }, + }, + { + rules: { + 'eol-last': 'error', + quotes: ['error', 'single', { avoidEscape: true }], + semi: ['error', 'always'], + eqeqeq: ['error', 'smart'], + 'no-use-before-define': ['error', 'nofunc'], + 'no-multi-str': 'error', + 'no-irregular-whitespace': 'error', + 'no-console': 'error', + 'no-template-curly-in-string': 'error', + 'no-nested-ternary': 'error', + 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }], + 'no-restricted-syntax': [ + 'error', + { + selector: 'ForInStatement', + message: + 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.', + }, + { + selector: 'LabeledStatement', + message: 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.', + }, + { + selector: 'WithStatement', + message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.', + }, + ], + }, + }, + { + ...chai.configs.recommendedFlat, + files: ['jdl/**/*.spec.{js,ts}'], + }, + prettier, +); diff --git a/generators/angular/cleanup.ts b/generators/angular/cleanup.ts index 009e3f1fd581..93b2531298f4 100644 --- a/generators/angular/cleanup.ts +++ b/generators/angular/cleanup.ts @@ -25,7 +25,7 @@ import { GeneratorDefinition } from '../base-application/generator.js'; * Removes files that where generated in previous JHipster versions and therefore * need to be removed. */ -// eslint-disable-next-line import/prefer-default-export + export default function cleanupOldFilesTask(this: CoreGenerator, { application }: GeneratorDefinition['writingTaskParam']) { if (this.isJhipsterVersionLessThan('3.2.0')) { // removeFile and removeFolder methods should be called here for files and folders to cleanup diff --git a/generators/angular/resources/package.json b/generators/angular/resources/package.json index 75aadb301ce8..b5f576808991 100644 --- a/generators/angular/resources/package.json +++ b/generators/angular/resources/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@angular/common": "18.1.3", + "@angular/common": "18.1.4", "@fortawesome/angular-fontawesome": "0.15.0", "@fortawesome/fontawesome-svg-core": "6.6.0", "@fortawesome/free-solid-svg-icons": "6.6.0", @@ -23,7 +23,7 @@ "@angular-architects/module-federation-runtime": "18.0.4", "@angular-builders/custom-webpack": "18.0.0", "@angular-builders/jest": "18.0.0", - "@angular/cli": "18.1.3", + "@angular/cli": "18.1.4", "@types/jest": "29.5.12", "@types/node": "20.11.25", "@types/sockjs-client": "1.5.4", diff --git a/generators/angular/support/path-utils.js b/generators/angular/support/path-utils.js index 14d9603a81e5..7992e69c8341 100644 --- a/generators/angular/support/path-utils.js +++ b/generators/angular/support/path-utils.js @@ -25,7 +25,7 @@ * @param {string[]} prefix * @return {string} */ -// eslint-disable-next-line import/prefer-default-export + export const buildAngularFormPath = (reference, prefix = []) => { const formPath = [...prefix, ...reference.path].join("', '"); return `'${formPath}'`; diff --git a/generators/app/generator.js b/generators/app/generator.js index c8dfe83e5c80..4c94539420ae 100644 --- a/generators/app/generator.js +++ b/generators/app/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return, import/no-named-as-default-member */ + import chalk from 'chalk'; import { camelCase } from 'lodash-es'; diff --git a/generators/base-application/generator.spec.ts b/generators/base-application/generator.spec.ts index a55b214f5c7d..0b0b746fff52 100644 --- a/generators/base-application/generator.spec.ts +++ b/generators/base-application/generator.spec.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-classes-per-file */ /** * Copyright 2013-2024 the original author or authors from the JHipster project. * diff --git a/generators/base-application/generator.ts b/generators/base-application/generator.ts index bff8e7fa4dcf..50ed9bd8e078 100644 --- a/generators/base-application/generator.ts +++ b/generators/base-application/generator.ts @@ -459,7 +459,6 @@ export default class BaseApplicationGenerator< } const entitiesToLoad = [...new Set([...builtInEntities, ...this.getExistingEntityNames()])]; return entitiesToLoad.map(entityName => { - // eslint-disable-next-line @typescript-eslint/no-this-alias const generator = this; if (!this.sharedData.hasEntity(entityName)) { this.sharedData.setEntity(entityName, { name: entityName }); diff --git a/generators/base-application/support/debug.ts b/generators/base-application/support/debug.ts index bad7eaad8087..16d04ae6826d 100644 --- a/generators/base-application/support/debug.ts +++ b/generators/base-application/support/debug.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -// eslint-disable-next-line import/prefer-default-export export const stringifyApplicationData = data => JSON.stringify( data, diff --git a/generators/base-application/support/doc.ts b/generators/base-application/support/doc.ts index 64fe466f172f..edc17e7ecef6 100644 --- a/generators/base-application/support/doc.ts +++ b/generators/base-application/support/doc.ts @@ -30,7 +30,7 @@ const isSimpleText = (previousLine, text) => { /** * Format As Liquibase Remarks */ -// eslint-disable-next-line import/prefer-default-export + export const formatDocAsSingleLine = (text: string): string => { let [description, ...rows] = text.split('\n'); // discard blank rows diff --git a/generators/base-application/support/entities.ts b/generators/base-application/support/entities.ts index 3e44c74f8f04..8064825d6a36 100644 --- a/generators/base-application/support/entities.ts +++ b/generators/base-application/support/entities.ts @@ -19,7 +19,6 @@ import { existsSync, opendirSync } from 'fs'; import { extname, basename } from 'path'; -// eslint-disable-next-line import/prefer-default-export export function getEntitiesFromDir(configDir: string): string[] { if (!existsSync(configDir)) { return []; diff --git a/generators/base-application/support/entity.ts b/generators/base-application/support/entity.ts index 554a051d5ebb..c1fa8a48d489 100644 --- a/generators/base-application/support/entity.ts +++ b/generators/base-application/support/entity.ts @@ -20,6 +20,5 @@ import { upperFirst } from 'lodash-es'; import { JSONEntity } from '../../../jdl/converters/types.js'; -// eslint-disable-next-line import/prefer-default-export export const findEntityInEntities = (entityName: string, entities: JSONEntity[]) => entities.find(entity => upperFirst(entity.name) === upperFirst(entityName)); diff --git a/generators/base-application/support/enum.js b/generators/base-application/support/enum.js index a23b92ba8404..d07d78c59cfb 100644 --- a/generators/base-application/support/enum.js +++ b/generators/base-application/support/enum.js @@ -58,7 +58,7 @@ const getEnums = (enums, customValuesState, comments) => { comment: comments && comments[enumValue] && formatDocAsJavaDoc(comments[enumValue], 4), }; } - // eslint-disable-next-line no-unused-vars + const matched = /\s*(.+?)\s*\((.+?)\)/.exec(enumValue); return { name: matched[1], @@ -83,7 +83,7 @@ const extractEnumEntries = field => { * @param {String} [clientRootFolder] - the client's root folder * @return {Object} the enum info. */ -// eslint-disable-next-line import/prefer-default-export + export const getEnumInfo = (field, clientRootFolder) => { field.enumInstance = extractEnumInstance(field); // TODO remove side effect const enums = extractEnumEntries(field); diff --git a/generators/base-application/support/field-utils.js b/generators/base-application/support/field-utils.js index a11a323a444e..d597ec031d99 100644 --- a/generators/base-application/support/field-utils.js +++ b/generators/base-application/support/field-utils.js @@ -39,7 +39,6 @@ const { BLOB, } = CommonDBTypes; -// eslint-disable-next-line import/prefer-default-export export function fieldIsEnum(fieldType) { return ![ STRING, diff --git a/generators/base-application/support/prepare-entity.spec.ts b/generators/base-application/support/prepare-entity.spec.ts index 349a0468ffc1..178f44bf6f04 100644 --- a/generators/base-application/support/prepare-entity.spec.ts +++ b/generators/base-application/support/prepare-entity.spec.ts @@ -31,7 +31,6 @@ describe('generator - base-application - support - prepareEntity', () => { describe('prepareEntityPrimaryKeyForTemplates', () => { describe('with field with id name', () => { describe('without @Id', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any let entity: any = { ...entityDefaultConfig, name: 'Entity', diff --git a/generators/base-application/support/prepare-field.js b/generators/base-application/support/prepare-field.js index 7faa94b5de42..b193b732ad58 100644 --- a/generators/base-application/support/prepare-field.js +++ b/generators/base-application/support/prepare-field.js @@ -311,9 +311,8 @@ function prepareCommonFieldForTemplates(entityWithConfig, field, generator) { field.createRandexp = () => { // check if regex is valid. If not, issue warning and we skip fake data generation. try { - // eslint-disable-next-line no-new new RegExp(field.fieldValidateRulesPattern); - } catch (e) { + } catch { generator.log.warn(`${field.fieldName} pattern is not valid: ${field.fieldValidateRulesPattern}. Skipping generating fake data. `); return undefined; } diff --git a/generators/base-application/support/prepare-field.spec.ts b/generators/base-application/support/prepare-field.spec.ts index 5d7cdad65e51..b34b2f320058 100644 --- a/generators/base-application/support/prepare-field.spec.ts +++ b/generators/base-application/support/prepare-field.spec.ts @@ -39,7 +39,6 @@ describe('generator - base-application - support - prepareField', () => { describe('prepareFieldForTemplates', () => { describe('when called', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any let field: any = { fieldName: 'name', fieldType: 'String' }; beforeEach(() => { field = prepareFieldForTemplates(defaultEntity, field, defaultGenerator); @@ -58,7 +57,6 @@ describe('generator - base-application - support - prepareField', () => { }); }); describe('with dto == mapstruct and @MapstructExpression', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any let field: any = { fieldName: 'name', fieldType: 'String', mapstructExpression: 'java()' }; beforeEach(() => { field = prepareFieldForTemplates({ ...defaultEntity, dto: 'mapstruct' }, field, defaultGenerator); diff --git a/generators/base-application/support/update-application-entities-transform.ts b/generators/base-application/support/update-application-entities-transform.ts index 370477009e43..83e2c824ea05 100644 --- a/generators/base-application/support/update-application-entities-transform.ts +++ b/generators/base-application/support/update-application-entities-transform.ts @@ -47,10 +47,10 @@ export const updateApplicationEntitiesTransform = ({ yoRcFile.contents = Buffer.from(JSON.stringify(contents, null, 2)); yoRcFileInMemory = yoRcFile; } else if (throwOnMissingConfig) { - throw new Error(`File ${yoRcFile!.path} is not a valid JHipster configuration file`); + throw new Error(`File ${yoRcFile.path} is not a valid JHipster configuration file`); } } else if (throwOnMissingConfig) { - throw new Error(`File ${yoRcFile!.path} has no contents`); + throw new Error(`File ${yoRcFile.path} has no contents`); } } if (yoRcFileInMemory) { diff --git a/generators/base-application/types.d.ts b/generators/base-application/types.d.ts index b63e22762c61..307ea54de5c2 100644 --- a/generators/base-application/types.d.ts +++ b/generators/base-application/types.d.ts @@ -36,19 +36,17 @@ export type BaseApplication = { monorepository?: boolean; /** Customize templates sourceFile and destinationFile */ - customizeTemplatePaths: Array< - ( - this: CoreGenerator, - file: { - namespace: string; - sourceFile: string; - resolvedSourceFile: string; - destinationFile: string; - templatesRoots: string[]; - }, - context: any, - ) => undefined | { sourceFile: string; resolvedSourceFile: string; destinationFile: string; templatesRoots: string[] } - >; + customizeTemplatePaths: (( + this: CoreGenerator, + file: { + namespace: string; + sourceFile: string; + resolvedSourceFile: string; + destinationFile: string; + templatesRoots: string[]; + }, + context: any, + ) => undefined | { sourceFile: string; resolvedSourceFile: string; destinationFile: string; templatesRoots: string[] })[]; } & I18nApplication; /* ApplicationType Start */ diff --git a/generators/base-core/generator-core.spec.ts b/generators/base-core/generator-core.spec.ts index 2a24645c47a7..2964b1915e51 100644 --- a/generators/base-core/generator-core.spec.ts +++ b/generators/base-core/generator-core.spec.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-expressions */ import { it, describe, expect as jestExpect, beforeEach } from 'esmocha'; import { basicHelpers as helpers } from '../../testing/index.js'; diff --git a/generators/base-core/generator.ts b/generators/base-core/generator.ts index 8a9286222549..3a0233e1cf98 100644 --- a/generators/base-core/generator.ts +++ b/generators/base-core/generator.ts @@ -445,7 +445,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); */ async parseCurrentJHipsterCommand() { const generatorCommand = await this.getCurrentJHipsterCommand(); - this.parseJHipsterCommand(generatorCommand!); + this.parseJHipsterCommand(generatorCommand); } /** @@ -572,7 +572,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); positionalArguments = []; } if (argument !== undefined) { - const convertedValue = !argumentDef.type || argumentDef.type === Array ? argument : argumentDef.type(argument as any); + const convertedValue = !argumentDef.type || argumentDef.type === Array ? argument : argumentDef.type(argument); if ((argumentDef.scope ?? 'generator') === 'generator') { this[argumentName] = convertedValue; } else if (argumentDef.scope === 'storage') { @@ -645,7 +645,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); } else { // Create a new counter const newCreationTimestamp = creationTimestamp ?? this.config.get('creationTimestamp'); - now = newCreationTimestamp ? new Date(newCreationTimestamp as any) : now; + now = newCreationTimestamp ? new Date(newCreationTimestamp) : now; now.setMilliseconds(0); } now.setMinutes(now.getMinutes() + 1); @@ -679,7 +679,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); let existingGenerator: string; try { existingGenerator = this._jhipsterGenerator ?? requireNamespace(this.options.namespace).generator; - } catch (error) { + } catch { if (this.options.namespace) { const split = this.options.namespace.split(':', 2); existingGenerator = split.length === 1 ? split[0] : split[1]; @@ -771,7 +771,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); this.log.info(`Removing legacy folder ${relativePath}`); rmSync(destinationFolder, { recursive: true }); } - } catch (error) { + } catch { this.log.log(`Could not remove folder ${destinationFolder}`); } } @@ -797,7 +797,7 @@ You can ignore this error by passing '--skip-checks' to jhipster command.`); */ writeFile(source: string, destination: string, data: TemplateData = this, options?: TemplateOptions, copyOptions: CopyOptions = {}) { // Convert to any because ejs types doesn't support string[] https://github.com/DefinitelyTyped/DefinitelyTyped/pull/63315 - // eslint-disable-next-line @typescript-eslint/no-explicit-any + const root: any = this.jhipsterTemplatesFolders ?? this.templatePath(); try { return this.renderTemplate(source, destination, data, { root, ...options }, { noGlob: true, ...copyOptions }); @@ -1151,7 +1151,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`; let originalContent; try { originalContent = this.readDestination(filePath); - } catch (_error) { + } catch { // null return should be treated like an error. } @@ -1273,7 +1273,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`; const gradleLibsVersions = this.readTemplate(gradleCatalog)?.toString(); if (gradleLibsVersions) { - Object.assign(javaDependencies, this.prepareDependencies(getGradleLibsVersionsProperties(gradleLibsVersions!), 'java')); + Object.assign(javaDependencies, this.prepareDependencies(getGradleLibsVersionsProperties(gradleLibsVersions), 'java')); } } @@ -1281,7 +1281,7 @@ templates: ${JSON.stringify(existingTemplates, null, 2)}`; destination: Record, packageJsonFile: string = this.templatePath('../resources/package.json'), ): void { - const { devDependencies, dependencies } = this.fs.readJSON(packageJsonFile, {}) as any; + const { devDependencies, dependencies } = this.fs.readJSON(packageJsonFile, {}); this.loadNodeDependencies(destination, { ...devDependencies, ...dependencies }); } diff --git a/generators/base/api.d.ts b/generators/base/api.d.ts index f20a105d4e12..27d1bf214779 100644 --- a/generators/base/api.d.ts +++ b/generators/base/api.d.ts @@ -3,9 +3,7 @@ import type { RequireAtLeastOne, SetOptional } from 'type-fest'; import type CoreGenerator from '../base-core/index.js'; export type ApplicationWithConfig = { - config: { - [key: string]: string | boolean | number | string[]; - }; + config: Record; entities: Record; }; @@ -115,7 +113,6 @@ export type JHipsterGeneratorFeatures = BaseFeatures & { queueCommandTasks?: boolean; }; -// eslint-disable-next-line no-use-before-define export type EditFileCallback = (this: Generator, content: string, filePath: string) => string; export type EditFileOptions = { create?: boolean; ignoreNonExisting?: boolean | string; assertModified?: boolean }; diff --git a/generators/base/blueprints.spec.ts b/generators/base/blueprints.spec.ts index 80df047469c3..ee5f8b2f2ef5 100644 --- a/generators/base/blueprints.spec.ts +++ b/generators/base/blueprints.spec.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-classes-per-file */ import { before, it, describe, expect, esmocha } from 'esmocha'; import { RunResult } from 'yeoman-test'; import { toHaveBeenCalledAfter } from 'jest-extended'; diff --git a/generators/base/internal/blueprint.js b/generators/base/internal/blueprint.js index ba6197023e59..907f8123462c 100644 --- a/generators/base/internal/blueprint.js +++ b/generators/base/internal/blueprint.js @@ -133,7 +133,7 @@ export function normalizeBlueprintName(blueprint) { } return ns.with({ unscoped: `generator-jhipster-${ns.unscoped}` }).toString(); // eslint-disable-next-line no-empty - } catch (e) {} + } catch {} if (blueprint && blueprint.startsWith('@')) { return blueprint; } diff --git a/generators/base/shared-data.ts b/generators/base/shared-data.ts index dc5db5bcf564..b7444d37831b 100644 --- a/generators/base/shared-data.ts +++ b/generators/base/shared-data.ts @@ -65,7 +65,7 @@ export default class SharedData string | undefined> = []; + let customizeRemoveFiles: ((file: string) => string | undefined)[] = []; const removeFiles = async (assertions: { removedInVersion?: string } | string, ...files: string[]) => { if (typeof assertions === 'string') { files = [assertions, ...files]; @@ -103,7 +103,7 @@ export default class SharedData>) => { + cleanupFiles: async (cleanup: Record) => { await Promise.all( Object.entries(cleanup).map(async ([version, files]) => { const stringFiles: string[] = []; diff --git a/generators/base/support/config.ts b/generators/base/support/config.ts index 0f2c837f0b5f..16dca432ae29 100644 --- a/generators/base/support/config.ts +++ b/generators/base/support/config.ts @@ -24,7 +24,7 @@ const filterNullishValues = value => value !== undefined && value !== null; * @param object * @returns */ -// eslint-disable-next-line import/prefer-default-export + export function removeFieldsWithNullishValues(object: Record): Record { return filterValue(object, filterNullishValues); } @@ -33,7 +33,7 @@ export function removeFieldsWithNullishValues(object: Record): Reco * @param object * @returns */ -// eslint-disable-next-line import/prefer-default-export, @typescript-eslint/no-explicit-any + function filterValue(object: Record, filterValue: (any) => boolean = filterNullishValues): Record { const clone = {}; for (const [key, value] of Object.entries(object)) { @@ -76,12 +76,10 @@ export const pickFields = (source: Record, fields: (string */ export const mutateData = ( context: Record, - ...mutations: Array< - Record & { - /** Set to false if you don't want functions to override the value */ - __override__?: boolean; - } - > + ...mutations: (Record & { + /** Set to false if you don't want functions to override the value */ + __override__?: boolean; + })[] ) => { for (const mutation of mutations) { const override = mutation.__override__; diff --git a/generators/base/support/configuration-helpers/options.js b/generators/base/support/configuration-helpers/options.js index e6917f1e0677..63576135cbf7 100644 --- a/generators/base/support/configuration-helpers/options.js +++ b/generators/base/support/configuration-helpers/options.js @@ -21,5 +21,4 @@ const isReproducible = generator => { return generator.options.reproducible; }; -// eslint-disable-next-line import/prefer-default-export export { isReproducible }; diff --git a/generators/base/support/contents.ts b/generators/base/support/contents.ts index 01dc16db2a8c..063e2d25481b 100644 --- a/generators/base/support/contents.ts +++ b/generators/base/support/contents.ts @@ -23,7 +23,7 @@ * @param lineEnding * @returns normalized line ending string */ -// eslint-disable-next-line import/prefer-default-export + export function normalizeLineEndings(str: string, lineEnding: string): string { return str.replace(/\r\n|\r|\n/g, lineEnding); } @@ -35,7 +35,7 @@ export function normalizeLineEndings(str: string, lineEnding: string): string { * * @param {string} content - the string to process */ -// eslint-disable-next-line import/prefer-default-export + export const stripMargin = content => { return content.replace(/^[ ]*\|/gm, ''); }; diff --git a/generators/base/support/faker.ts b/generators/base/support/faker.ts index 33b49ce7cae4..fb31c0c42d2a 100644 --- a/generators/base/support/faker.ts +++ b/generators/base/support/faker.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-classes-per-file */ /** * Copyright 2013-2024 the original author or authors from the JHipster project. * @@ -50,7 +49,7 @@ class FakerWithRandexp extends Faker { * @param nativeLanguage - native language * @returns Faker instance */ -// eslint-disable-next-line import/prefer-default-export + export async function createFaker(nativeLanguage = 'en') { nativeLanguage = languageToJavaLanguage(nativeLanguage); let locale; @@ -58,11 +57,10 @@ export async function createFaker(nativeLanguage = 'en') { // We need a Faker instance for each entity, to build additional fake instances, use the locale from the exported localized faker instance. // See https://github.com/faker-js/faker/pull/642 try { - // eslint-disable-next-line import/no-dynamic-require, quotes locale = (await import(`@faker-js/faker`))[nativeLanguage]; - } catch (error) { + } catch { // Faker not implemented for the native language, fallback to en. - // eslint-disable-next-line import/no-unresolved, import/no-dynamic-require + locale = (await import('@faker-js/faker')).en; } diff --git a/generators/base/support/jhipster7-context.js b/generators/base/support/jhipster7-context.js index 971ace70b13a..987e5d791190 100644 --- a/generators/base/support/jhipster7-context.js +++ b/generators/base/support/jhipster7-context.js @@ -21,9 +21,9 @@ export const jhipster7deprecatedProperties = { devDatabaseType: { behaviorOnlyReason: 'v8: devDatabaseType is only used in jhipster:spring-data-relational generator', get: ({ data }) => { - if (data.devDatabaseType === undefined) return data.devDatabaseType; + if (data.devDatabaseType !== undefined) return data.devDatabaseType; const fallbackValue = data.prodDatabaseType ?? data.databaseType; - // eslint-disable-next-line no-console + console.log( `JHipster v8 behavior change(devDatabaseType is only used in jhipster:spring-data-relational generator): devDatabaseType is not set, using fallback: ${fallbackValue}`, ); @@ -32,10 +32,9 @@ export const jhipster7deprecatedProperties = { }, prodDatabaseType: { behaviorOnlyReason: 'v8: prodDatabaseType is only used in jhipster:spring-data-relational generator', - get: ({ data }) => data.prodDatabaseType ?? data.databaseType, get: ({ data }) => { - if (data.prodDatabaseType === undefined) return data.prodDatabaseType; - // eslint-disable-next-line no-console + if (data.prodDatabaseType !== undefined) return data.prodDatabaseType; + console.log( `JHipster v8 behavior change(prodDatabaseType is only used in jhipster:spring-data-relational generator): devDatabaseType is not set, using fallback: ${data.databaseType}`, ); diff --git a/generators/base/support/namespace.ts b/generators/base/support/namespace.ts index 94017a229cf5..bbbf537a0455 100644 --- a/generators/base/support/namespace.ts +++ b/generators/base/support/namespace.ts @@ -21,7 +21,7 @@ * @param {string} packageName - name of the blueprint's package name * @returns {string} namespace of the blueprint */ -// eslint-disable-next-line import/prefer-default-export + export function packageNameToNamespace(packageName) { return packageName.replace('generator-', ''); } diff --git a/generators/base/support/path.ts b/generators/base/support/path.ts index d72a6ac2de5a..4a32a59c9d5b 100644 --- a/generators/base/support/path.ts +++ b/generators/base/support/path.ts @@ -16,5 +16,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// eslint-disable-next-line import/prefer-default-export + export const normalizePathEnd = (directory: string): string => (directory.endsWith('/') ? directory : `${directory}/`); diff --git a/generators/base/support/string.ts b/generators/base/support/string.ts index 7dccee20c993..b0a0ab5711b3 100644 --- a/generators/base/support/string.ts +++ b/generators/base/support/string.ts @@ -29,8 +29,8 @@ export function stringHashCode(str: string): number { for (let i = 0; i < str.length; i++) { const character = str.charCodeAt(i); - hash = (hash << 5) - hash + character; // eslint-disable-line no-bitwise - hash |= 0; // eslint-disable-line no-bitwise + hash = (hash << 5) - hash + character; + hash |= 0; } if (hash < 0) { diff --git a/generators/base/support/timestamp.spec.ts b/generators/base/support/timestamp.spec.ts index 50bba295239c..304e9363abec 100644 --- a/generators/base/support/timestamp.spec.ts +++ b/generators/base/support/timestamp.spec.ts @@ -23,13 +23,11 @@ describe('generator - base - support - timestamp', () => { describe('::parseChangelog', () => { describe('when not passing parameters', () => { it('throws', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any expect(() => parseChangelog(undefined as any)).toThrow(/^changelogDate is required\.$/); }); }); describe('when passing a number', () => { it('throws', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any expect(() => parseChangelog(123)).toThrow(/^changelogDate 123 must be a string\.$/); }); }); diff --git a/generators/base/support/write-files.spec.ts b/generators/base/support/write-files.spec.ts index 415fa2036c73..5d837b7a6781 100644 --- a/generators/base/support/write-files.spec.ts +++ b/generators/base/support/write-files.spec.ts @@ -32,7 +32,7 @@ describe('generator - base - support - writeFiles', () => { it('with a callback, should return the callback return', () => { const mock = esmocha.fn().mockReturnValue('return1'); - // eslint-disable-next-line @typescript-eslint/no-explicit-any + const callback = joinCallbacks(mock as EditFileCallback); expect(callback('original', 'file')).toBe('return1'); @@ -44,7 +44,7 @@ describe('generator - base - support - writeFiles', () => { it('with two callbacks, should forward last callback and return the last callback return', () => { const mock1 = esmocha.fn().mockReturnValue('return1'); const mock2 = esmocha.fn().mockReturnValue('return2'); - // eslint-disable-next-line @typescript-eslint/no-explicit-any + const callback = joinCallbacks(mock1 as EditFileCallback, mock2 as EditFileCallback); expect(callback('original', 'file')).toBe('return2'); diff --git a/generators/base/support/write-files.ts b/generators/base/support/write-files.ts index eb6c95edf5de..b91da3b6a7a2 100644 --- a/generators/base/support/write-files.ts +++ b/generators/base/support/write-files.ts @@ -27,7 +27,7 @@ const isWin32 = platform() === 'win32'; * TODO move to utils when converted to typescripts * Converts multiples EditFileCallback callbacks into one. */ -// eslint-disable-next-line import/prefer-default-export + export function joinCallbacks(...callbacks: EditFileCallback[]): EditFileCallback { return function (this: Generator, content: string, filePath: string) { if (isWin32 && content.match(/\r\n/)) { diff --git a/generators/base/types.d.ts b/generators/base/types.d.ts index 2986feb6bb66..26356cdd3f38 100644 --- a/generators/base/types.d.ts +++ b/generators/base/types.d.ts @@ -13,12 +13,12 @@ export type Control = { reproducibleLiquibaseTimestamp?: Date; filterEntitiesForClient?: (entity: Entity[]) => Entity[]; filterEntitiesAndPropertiesForClient?: (entity: Entity[]) => Entity[]; - customizeRemoveFiles: Array<(file: string) => string | undefined>; + customizeRemoveFiles: ((file: string) => string | undefined)[]; removeFiles: (options: { removedInVersion: string } | string, ...files: string[]) => Promise; /** * Cleanup files conditionally based on version and condition. * @example * cleanupFiles({ '6.0.0': ['file1', 'file2', [application.shouldRemove, 'file3']] }) */ - cleanupFiles: (cleanup: Record>) => Promise; + cleanupFiles: (cleanup: Record) => Promise; }; diff --git a/generators/bootstrap-application-base/generator.spec.ts b/generators/bootstrap-application-base/generator.spec.ts index b64a95292eb8..b2de2d9d2972 100644 --- a/generators/bootstrap-application-base/generator.spec.ts +++ b/generators/bootstrap-application-base/generator.spec.ts @@ -23,7 +23,7 @@ import { snakeCase } from 'lodash-es'; import { defaultHelpers as helpers, runResult } from '../../testing/index.js'; import { shouldSupportFeatures } from '../../test/support/tests.js'; -import { parseChangelog } from '../base/support/timestamp.ts'; +import { parseChangelog } from '../base/support/timestamp.js'; import Generator from './index.js'; const __filename = fileURLToPath(import.meta.url); diff --git a/generators/bootstrap-application-base/generator.ts b/generators/bootstrap-application-base/generator.ts index 6cd88471e850..062dcd37edae 100644 --- a/generators/bootstrap-application-base/generator.ts +++ b/generators/bootstrap-application-base/generator.ts @@ -275,7 +275,7 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator { } const customUserData: any = customUser?.entityStorage.getAll() ?? {}; - Object.assign(bootstrap!, createUserEntity.call(this, { ...customUserData, ...customUserData.annotations }, application)); + Object.assign(bootstrap, createUserEntity.call(this, { ...customUserData, ...customUserData.annotations }, application)); application.user = bootstrap; } }, @@ -290,7 +290,7 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator { const customUserManagementData: any = customUserManagement?.entityStorage.getAll() ?? {}; Object.assign( - bootstrap!, + bootstrap, createUserManagementEntity.call(this, { ...customUserManagementData, ...customUserManagementData.annotations }, application), ); application.userManagement = bootstrap; @@ -307,10 +307,7 @@ export default class BootstrapApplicationBase extends BaseApplicationGenerator { } const customEntityData: any = customEntity?.entityStorage.getAll() ?? {}; - Object.assign( - bootstrap!, - createAuthorityEntity.call(this, { ...customEntityData, ...customEntityData.annotations }, application), - ); + Object.assign(bootstrap, createAuthorityEntity.call(this, { ...customEntityData, ...customEntityData.annotations }, application)); application.authority = bootstrap; } }, diff --git a/generators/bootstrap-application-base/support/export-jdl-transform.ts b/generators/bootstrap-application-base/support/export-jdl-transform.ts index a1a03f72f0be..ffc567350f17 100644 --- a/generators/bootstrap-application-base/support/export-jdl-transform.ts +++ b/generators/bootstrap-application-base/support/export-jdl-transform.ts @@ -23,7 +23,7 @@ export const exportJDLTransform = ({ const yoRcFilePath = join(destinationPath, '.yo-rc.json'); const entitiesMatcher = new Minimatch(`${destinationPath}/.jhipster/*.json`); const entitiesFiles: MemFsEditorFile[] = []; - const entitiesMap: Map = new Map(); + const entitiesMap = new Map(); let yoRcFileInMemory: MemFsEditorFile | undefined; let jdlStoreFileInMemory: MemFsEditorFile | undefined; diff --git a/generators/bootstrap-application-base/support/import-jdl-transform.ts b/generators/bootstrap-application-base/support/import-jdl-transform.ts index 1a93b475934d..5fd3a1b05971 100644 --- a/generators/bootstrap-application-base/support/import-jdl-transform.ts +++ b/generators/bootstrap-application-base/support/import-jdl-transform.ts @@ -13,7 +13,7 @@ export const importJDLTransform = ({ destinationPath, jdlStorePath }: { destinat const yoRcFilePath = join(destinationPath, '.yo-rc.json'); const entitiesFolder = join(destinationPath, '.jhipster'); const entitiesMatcher = new Minimatch(`${entitiesFolder}/*.json`); - const entityFields: Array = []; + const entityFields: MemFsEditorFile[] = []; let jdlStoreFileInMemory: MemFsEditorFile | undefined; let yoRcFileInMemory: MemFsEditorFile | undefined; diff --git a/generators/bootstrap-application-base/utils.js b/generators/bootstrap-application-base/utils.js index 51c0287b4a90..1a1617b23d2c 100644 --- a/generators/bootstrap-application-base/utils.js +++ b/generators/bootstrap-application-base/utils.js @@ -70,7 +70,6 @@ export const auditableEntityFields = () => [ const authorityEntityName = 'Authority'; -// eslint-disable-next-line import/prefer-default-export export function createUserEntity(customUserData = {}, application) { const userEntityDefinition = this.getEntityConfig('User')?.getAll(); if (userEntityDefinition) { diff --git a/generators/bootstrap/generator.ts b/generators/bootstrap/generator.ts index 4e553da74d9a..be5b84b6a41e 100644 --- a/generators/bootstrap/generator.ts +++ b/generators/bootstrap/generator.ts @@ -21,7 +21,7 @@ import { forceYoFiles, createConflicterTransform, createYoResolveTransform } fro import type { MemFsEditorFile } from 'mem-fs-editor'; import { isFileStateModified, isFilePending } from 'mem-fs-editor/state'; import { createCommitTransform } from 'mem-fs-editor/transform'; -import prettier from 'prettier'; +import { Options as PrettierOptions } from 'prettier'; import type { FileTransform, PipelineOptions } from 'mem-fs'; import BaseGenerator from '../base/index.js'; @@ -55,7 +55,7 @@ export default class BootstrapGenerator extends BaseGenerator { upgradeCommand?: boolean; skipPrettier?: boolean; prettierExtensions: string[] = PRETTIER_EXTENSIONS.split(','); - prettierOptions: prettier.Options = { plugins: [] }; + prettierOptions: PrettierOptions = { plugins: [] }; refreshOnCommit = false; constructor(args: any, options: any, features: any) { @@ -192,18 +192,18 @@ export default class BootstrapGenerator extends BaseGenerator { */ async commitSharedFs( { log, ...options }: PipelineOptions & { log?: string } = {}, - ...transforms: Array> + ...transforms: FileTransform[] ) { - const skipYoResolveTransforms: Array> = []; + const skipYoResolveTransforms: FileTransform[] = []; if (!this.options.skipYoResolve) { skipYoResolveTransforms.push(createYoResolveTransform()); } - const prettierTransforms: Array> = []; + const prettierTransforms: FileTransform[] = []; if (!this.skipPrettier) { const ignoreErrors = this.options.ignoreErrors || this.upgradeCommand; prettierTransforms.push( - createESLintTransform.call(this, { ignoreErrors, extensions: 'ts,js,cjs,mjs' }), + createESLintTransform.call(this, { ignoreErrors }), createRemoveUnusedImportsTransform.call(this, { ignoreErrors }), await createPrettierTransform.call(this, { ignoreErrors, @@ -215,7 +215,7 @@ export default class BootstrapGenerator extends BaseGenerator { ); } - const autoCrlfTransforms: Array> = []; + const autoCrlfTransforms: FileTransform[] = []; if (this.jhipsterConfig.autoCrlf) { autoCrlfTransforms.push(await autoCrlfTransform({ baseDir: this.destinationPath() })); } diff --git a/generators/bootstrap/support/eslint-transform.spec.ts b/generators/bootstrap/support/eslint-transform.spec.ts index 4f8b199bb6d5..108fdc6cc192 100644 --- a/generators/bootstrap/support/eslint-transform.spec.ts +++ b/generators/bootstrap/support/eslint-transform.spec.ts @@ -13,6 +13,7 @@ describe('generator - bootstrap - eslint', () => { path: 'foo.ts', contents: Buffer.from(` import { Foo } from 'bar'; +// eslint-disable-next-line no-console export const foo = 'bar'; `), }; @@ -23,6 +24,7 @@ export const foo = 'bar'; transform(() => undefined), ); expect(file.contents.toString()).toBe(` +// eslint-disable-next-line no-console export const foo = 'bar'; `); }); diff --git a/generators/bootstrap/support/eslint-transform.ts b/generators/bootstrap/support/eslint-transform.ts index e785bbe30034..9a85a41a1c7c 100644 --- a/generators/bootstrap/support/eslint-transform.ts +++ b/generators/bootstrap/support/eslint-transform.ts @@ -22,16 +22,13 @@ import { Minimatch } from 'minimatch'; import { Piscina } from 'piscina'; import BaseGenerator from '../../base-core/index.js'; -import { getPackageRoot } from '../../../lib/index.js'; -import { JS_PRETTIER_EXTENSIONS } from '../../generator-constants.js'; import { addLineNumbers } from '../internal/transform-utils.js'; -// eslint-disable-next-line import/prefer-default-export export const createESLintTransform = function ( this: BaseGenerator | void, - transformOptions: { ignoreErrors?: boolean; extensions?: string } = {}, + transformOptions: { ignoreErrors?: boolean; extensions?: string; cwd?: string } = {}, ) { - const { extensions = JS_PRETTIER_EXTENSIONS, ignoreErrors } = transformOptions; + const { extensions = 'js,cjs,mjs,ts,cts,mts,jsx,tsx', ignoreErrors, cwd } = transformOptions; const minimatch = new Minimatch(`**/*.{${extensions}}`, { dot: true }); const pool = new Piscina({ @@ -46,9 +43,10 @@ export const createESLintTransform = function ( } const fileContents = file.contents.toString(); const { result, error } = await pool.run({ - resolvePluginsRelativeTo: getPackageRoot(), + cwd, filePath: file.path, fileContents, + extensions, }); if (result) { file.contents = Buffer.from(result); diff --git a/generators/bootstrap/support/eslint-worker.js b/generators/bootstrap/support/eslint-worker.js index 59107a7a7c65..b482eda5efa3 100644 --- a/generators/bootstrap/support/eslint-worker.js +++ b/generators/bootstrap/support/eslint-worker.js @@ -1,32 +1,19 @@ import eslint from 'eslint'; +import ts from 'typescript-eslint'; -import { baseRules } from '../../../lib/eslint/base.js'; +import jhipster from '../../../lib/eslint/index.js'; let eslintInstance; -/* Flat config based eslint -Blocked by https://github.com/import-js/eslint-plugin-import/issues/2556 -import eslint from 'eslint/use-at-your-own-risk'; -const { languageOptions, plugins: tseslintPlugins } = tseslint.configs.base; -new eslint.FlatESLint({ fix: true, overrideConfigFile: true, cwd, plugins, baseConfig: { languageOptions, rules } }); -*/ - -export default async ({ resolvePluginsRelativeTo, filePath, fileContents }) => { +export default async ({ cwd, filePath, fileContents, extensions }) => { if (!eslintInstance) { eslintInstance = new eslint.ESLint({ fix: true, - // Disable destination configs. We should apply plugins and rules which jhipster depends on. - useEslintrc: false, - resolvePluginsRelativeTo, - overrideConfig: { - plugins: ['unused-imports', 'import'], - extends: ['plugin:@typescript-eslint/base'], - parserOptions: { - sourceType: 'module', - ecmaVersion: 'latest', - }, - rules: baseRules, - }, + overrideConfigFile: true, + allowInlineConfig: false, + cache: false, + cwd, + baseConfig: ts.config({ files: [`**/*.{${extensions}}`] }, ts.configs.base, jhipster.base), }); } diff --git a/generators/bootstrap/support/java-unused-imports-transform.ts b/generators/bootstrap/support/java-unused-imports-transform.ts index 4a11750c2fa9..1ad35266aea8 100644 --- a/generators/bootstrap/support/java-unused-imports-transform.ts +++ b/generators/bootstrap/support/java-unused-imports-transform.ts @@ -7,7 +7,6 @@ import { Piscina } from 'piscina'; import type CoreGenerator from '../../base-core/index.js'; import { addLineNumbers } from '../internal/transform-utils.js'; -// eslint-disable-next-line import/prefer-default-export export const createRemoveUnusedImportsTransform = function ( this: CoreGenerator, options: { diff --git a/generators/bootstrap/support/multi-step-transform/index.ts b/generators/bootstrap/support/multi-step-transform/index.ts index 49407e65b2bd..5c4b7b1751e1 100644 --- a/generators/bootstrap/support/multi-step-transform/index.ts +++ b/generators/bootstrap/support/multi-step-transform/index.ts @@ -21,10 +21,9 @@ import type { MemFsEditorFile } from 'mem-fs-editor'; import TemplateFileFs from './template-file-fs.js'; import TemplateFile from './template-file.js'; -// eslint-disable-next-line import/prefer-default-export export const createMultiStepTransform = () => { const templateFileFs = new TemplateFileFs({}); - const templateFiles: Array = []; + const templateFiles: TemplateFile[] = []; const duplex: DuplexWithDebug & { templateFileFs: TemplateFileFs } = transform( (file: MemFsEditorFile) => { diff --git a/generators/bootstrap/support/multi-step-transform/template-file-fs.ts b/generators/bootstrap/support/multi-step-transform/template-file-fs.ts index 39e9809dbade..bb369c4930ef 100644 --- a/generators/bootstrap/support/multi-step-transform/template-file-fs.ts +++ b/generators/bootstrap/support/multi-step-transform/template-file-fs.ts @@ -25,7 +25,7 @@ import TemplateFile from './template-file.js'; export default class TemplateFileFs { fragmentFiles: Record; - rootFiles: Array = []; + rootFiles: MemFsEditorFile[] = []; extension: string; delimiter: string; diff --git a/generators/bootstrap/support/prettier-support.ts b/generators/bootstrap/support/prettier-support.ts index 98802d081550..f56767063b0a 100644 --- a/generators/bootstrap/support/prettier-support.ts +++ b/generators/bootstrap/support/prettier-support.ts @@ -20,7 +20,7 @@ import { passthrough } from 'p-transform'; import { isFileStateModified } from 'mem-fs-editor/state'; import { Minimatch } from 'minimatch'; import { Piscina } from 'piscina'; -import type prettier from 'prettier'; +import type { Options as PrettierOptions } from 'prettier'; import type { MemFsEditorFile, VinylMemFsEditorFile } from 'mem-fs-editor'; import type CoreGenerator from '../../base-core/index.js'; @@ -36,7 +36,7 @@ export const createPrettierTransform = async function ( prettierPackageJson?: boolean; prettierJava?: boolean; prettierProperties?: boolean; - prettierOptions?: prettier.Options; + prettierOptions?: PrettierOptions; } = {}, ) { const pool = new Piscina({ diff --git a/generators/bootstrap/support/prettier-worker.js b/generators/bootstrap/support/prettier-worker.js index f1f250dbfd86..e9fda01600b4 100644 --- a/generators/bootstrap/support/prettier-worker.js +++ b/generators/bootstrap/support/prettier-worker.js @@ -1,4 +1,4 @@ -import prettier from 'prettier'; +import { resolveConfig, format } from 'prettier'; import prettierPluginJava from 'prettier-plugin-java'; import prettierPluginProperties from 'prettier-plugin-properties'; import prettierPluginPackagejson from 'prettier-plugin-packagejson'; @@ -14,7 +14,7 @@ export default async ({ prettierProperties, }) => { try { - const resolvedDestinationFileOptions = await prettier.resolveConfig(relativeFilePath); + const resolvedDestinationFileOptions = await resolveConfig(relativeFilePath); const fileOptions = { // Config from disk ...resolvedDestinationFileOptions, @@ -32,7 +32,7 @@ export default async ({ if (prettierProperties) { fileOptions.plugins.push(prettierPluginProperties); } - return { result: await prettier.format(fileContents, fileOptions) }; + return { result: await format(fileContents, fileOptions) }; } catch (error) { let errorMessage; if (fileContents) { diff --git a/generators/ci-cd/generator.js b/generators/ci-cd/generator.js index b726a9ea7d13..d92463701706 100644 --- a/generators/ci-cd/generator.js +++ b/generators/ci-cd/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import chalk from 'chalk'; import BaseApplicationGenerator from '../base-application/index.js'; diff --git a/generators/client/generator-needles.spec.ts b/generators/client/generator-needles.spec.ts index d611620abb2c..5a942476496e 100644 --- a/generators/client/generator-needles.spec.ts +++ b/generators/client/generator-needles.spec.ts @@ -6,7 +6,6 @@ import ClientGenerator from './index.js'; const { ANGULAR, REACT } = clientFrameworkTypes; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends ClientGenerator { constructor(args, opts, features) { super(args, opts, { ...features, sbsBlueprint: true }); @@ -15,7 +14,7 @@ const mockBlueprintSubGen: any = class extends ClientGenerator { get [ClientGenerator.POST_WRITING]() { return this.asPostWritingTaskGroup({ webpackPhase({ source }) { - source!.addWebpackConfig!({ config: '{devServer:{}}' }); + source.addWebpackConfig!({ config: '{devServer:{}}' }); }, }); } diff --git a/generators/client/needle-client.spec.ts b/generators/client/needle-client.spec.ts index a5cb07295786..0c89ff173d4d 100644 --- a/generators/client/needle-client.spec.ts +++ b/generators/client/needle-client.spec.ts @@ -3,7 +3,6 @@ import ClientGenerator from '../../generators/client/index.js'; import { CLIENT_MAIN_SRC_DIR } from '../generator-constants.js'; import { dryRunHelpers as helpers, result as runResult, getGenerator } from '../../testing/index.js'; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends ClientGenerator { constructor(args, opts, features) { super(args, opts, features); @@ -19,7 +18,7 @@ const mockBlueprintSubGen: any = class extends ClientGenerator { return this.asPostWritingTaskGroup({ // @ts-ignore async additionalResource({ source }) { - source!.addExternalResourceToRoot!({ + source.addExternalResourceToRoot!({ resource: '', comment: 'Comment added by JHipster API', }); diff --git a/generators/client/prompts.js b/generators/client/prompts.js index 61a78684220e..c13fff1218e8 100644 --- a/generators/client/prompts.js +++ b/generators/client/prompts.js @@ -125,7 +125,7 @@ async function _retrieveBootswatchThemes(generator, useApi) { })); resolve(bootswatchChoices); - } catch (err) { + } catch { reject(errorMessage); } }, diff --git a/generators/client/resources/package.json b/generators/client/resources/package.json index c971ab1c3ca4..0ed737d3dcfa 100644 --- a/generators/client/resources/package.json +++ b/generators/client/resources/package.json @@ -9,7 +9,7 @@ "cypress": "13.13.2", "cypress-audit": "1.1.0", "eslint-plugin-cypress": "3.4.0", - "lighthouse": "12.1.0", + "lighthouse": "12.2.0", "nyc": "17.0.0", "swagger-ui-dist": "5.17.14" } diff --git a/generators/client/support/config.ts b/generators/client/support/config.ts index f219cd2c8fe3..e4009a135c0d 100644 --- a/generators/client/support/config.ts +++ b/generators/client/support/config.ts @@ -5,34 +5,34 @@ import { CLIENT_MAIN_SRC_DIR, CLIENT_TEST_SRC_DIR } from '../../generator-consta * Load client configs into application. */ export const loadClientConfig = ({ config, application }: { config: any; application: any }) => { - (application as any).clientPackageManager = config.clientPackageManager; + application.clientPackageManager = config.clientPackageManager; application.clientFramework = config.clientFramework; - (application as any).clientTheme = config.clientTheme; - (application as any).clientThemeVariant = config.clientThemeVariant; - (application as any).devServerPort = config.devServerPort; + application.clientTheme = config.clientTheme; + application.clientThemeVariant = config.clientThemeVariant; + application.devServerPort = config.devServerPort; - (application as any).clientRootDir = config.clientRootDir ?? ''; - (application as any).clientSrcDir = config.clientSrcDir ?? `${application.clientRootDir}${CLIENT_MAIN_SRC_DIR}`; - (application as any).clientTestDir = config.clientTestDir ?? `${application.clientRootDir}${CLIENT_TEST_SRC_DIR}`; + application.clientRootDir = config.clientRootDir ?? ''; + application.clientSrcDir = config.clientSrcDir ?? `${application.clientRootDir}${CLIENT_MAIN_SRC_DIR}`; + application.clientTestDir = config.clientTestDir ?? `${application.clientRootDir}${CLIENT_TEST_SRC_DIR}`; }; /** * Load client derived properties. */ export const loadDerivedClientConfig = ({ application }: { application: any }) => { - if ((application as any).microfrontend === undefined) { - if ((application as any).applicationTypeMicroservice) { - (application as any).microfrontend = application.clientFrameworkAny; - } else if ((application as any).applicationTypeGateway) { - (application as any).microfrontend = (application as any).microfrontends && (application as any).microfrontends.length > 0; + if (application.microfrontend === undefined) { + if (application.applicationTypeMicroservice) { + application.microfrontend = application.clientFrameworkAny; + } else if (application.applicationTypeGateway) { + application.microfrontend = application.microfrontends && application.microfrontends.length > 0; } } - (application as any).clientThemeNone = (application as any).clientTheme === 'none'; - (application as any).clientThemePrimary = (application as any).clientThemeVariant === 'primary'; - (application as any).clientThemeLight = (application as any).clientThemeVariant === 'light'; - (application as any).clientThemeDark = (application as any).clientThemeVariant === 'dark'; + application.clientThemeNone = application.clientTheme === 'none'; + application.clientThemePrimary = application.clientThemeVariant === 'primary'; + application.clientThemeLight = application.clientThemeVariant === 'light'; + application.clientThemeDark = application.clientThemeVariant === 'dark'; - if ((application as any).baseName) { - (application as any).frontendAppName = getFrontendAppName({ baseName: (application as any).baseName }); + if (application.baseName) { + application.frontendAppName = getFrontendAppName({ baseName: application.baseName }); } }; diff --git a/generators/client/support/update-languages.ts b/generators/client/support/update-languages.ts index 0a8b89de2a57..f7584c148be1 100644 --- a/generators/client/support/update-languages.ts +++ b/generators/client/support/update-languages.ts @@ -28,7 +28,7 @@ export type UpdateClientLanguagesTaskParam = { application: CommonClientServerAp * @param configurationFile * @param commonjs */ -// eslint-disable-next-line import/prefer-default-export + export function updateLanguagesInDayjsConfigurationTask( this: BaseGenerator, { application, control = {} }: UpdateClientLanguagesTaskParam, diff --git a/generators/common/generator.js b/generators/common/generator.js index 32282865fb36..6870df0fe179 100644 --- a/generators/common/generator.js +++ b/generators/common/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import { isFileStateModified } from 'mem-fs-editor/state'; import BaseApplicationGenerator from '../base-application/index.js'; diff --git a/generators/cypress/generator.ts b/generators/cypress/generator.ts index 11f5b32e071c..87d2fa1b3456 100644 --- a/generators/cypress/generator.ts +++ b/generators/cypress/generator.ts @@ -213,9 +213,7 @@ export default class CypressGenerator extends BaseApplicationGenerator { scripts: { 'cypress:audits': 'cypress open --e2e --config-file cypress-audits.config.js', 'e2e:cypress:audits:headless': 'npm run e2e:cypress -- --config-file cypress-audits.config.js', - 'e2e:cypress:audits': - // eslint-disable-next-line no-template-curly-in-string - 'cypress run --e2e --browser chrome --config-file cypress-audits.config.js', + 'e2e:cypress:audits': 'cypress run --e2e --browser chrome --config-file cypress-audits.config.js', }, }); }, diff --git a/generators/cypress/index.ts b/generators/cypress/index.ts index f3ccaf492f17..082d5730094c 100644 --- a/generators/cypress/index.ts +++ b/generators/cypress/index.ts @@ -18,5 +18,4 @@ */ export { default } from './generator.js'; export { default as command } from './command.js'; -export * from './generator.js'; export { cypressFiles, cypressEntityFiles } from './files.js'; diff --git a/generators/docker-compose/files.js b/generators/docker-compose/files.js index 1c2bfaa04102..132aa08000e1 100644 --- a/generators/docker-compose/files.js +++ b/generators/docker-compose/files.js @@ -22,7 +22,6 @@ const { PROMETHEUS } = monitoringTypes; const { MICROSERVICE } = applicationTypes; const { OAUTH2 } = authenticationTypes; -// eslint-disable-next-line import/prefer-default-export export function writeFiles() { return { cleanup() { diff --git a/generators/docker-compose/generator.js b/generators/docker-compose/generator.js index 17bf0692b875..a214616051ac 100644 --- a/generators/docker-compose/generator.js +++ b/generators/docker-compose/generator.js @@ -38,7 +38,6 @@ const { PROMETHEUS, NO: NO_MONITORING } = monitoringTypes; const { CONSUL, EUREKA, NO: NO_SERVICE_DISCOVERY } = serviceDiscoveryTypes; const { Options: DeploymentOptions } = deploymentOptions; -/* eslint-disable consistent-return */ /** * @class * @extends {import('../base/index.js')} diff --git a/generators/docker/files.js b/generators/docker/files.js index ba00e1ef0b48..3abff2b75785 100644 --- a/generators/docker/files.js +++ b/generators/docker/files.js @@ -2,7 +2,6 @@ import { TEMPLATES_DOCKER_DIR } from '../generator-constants.js'; const renameTo = (ctx, filepath) => `${ctx.dockerServicesDir}${filepath}`.replace('/_eureka_', '').replace('/_consul_', ''); -// eslint-disable-next-line import/prefer-default-export export const dockerFiles = { commonFiles: [ { diff --git a/generators/docker/generator.js b/generators/docker/generator.js index 08daf0989f29..e3db19b46686 100644 --- a/generators/docker/generator.js +++ b/generators/docker/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable camelcase */ + import { intersection } from 'lodash-es'; import BaseApplicationGenerator from '../base-application/index.js'; import { createDockerComposeFile, createDockerExtendedServices } from '../docker/support/index.js'; diff --git a/generators/docker/generator.spec.ts b/generators/docker/generator.spec.ts index 0912712d9768..1fae3f0666b8 100644 --- a/generators/docker/generator.spec.ts +++ b/generators/docker/generator.spec.ts @@ -56,7 +56,6 @@ matrix = extendMatrix(matrix, { prodDatabaseType: [POSTGRESQL, MARIADB, MYSQL, MSSQL, ORACLE, ...NO_SQL], }); -// eslint-disable-next-line @typescript-eslint/no-unused-vars Object.entries(matrix).forEach(([_name, config]) => { if (NO_SQL.includes(config.prodDatabaseType)) { config.databaseType = config.prodDatabaseType; diff --git a/generators/entity/generator.js b/generators/entity/generator.js index 635695110db4..e600a6750ecd 100644 --- a/generators/entity/generator.js +++ b/generators/entity/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import fs from 'fs'; import path from 'path'; import chalk from 'chalk'; diff --git a/generators/entity/support/index.ts b/generators/entity/support/index.ts index 7fb102603143..2fed641c9877 100644 --- a/generators/entity/support/index.ts +++ b/generators/entity/support/index.ts @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// eslint-disable-next-line import/prefer-default-export + export { isNumber as inputIsNumber, isSignedNumber as inputIsSignedNumber, diff --git a/generators/export-jdl/generator.ts b/generators/export-jdl/generator.ts index b324dbc0d2d9..1c3411f3792d 100644 --- a/generators/export-jdl/generator.ts +++ b/generators/export-jdl/generator.ts @@ -55,7 +55,6 @@ export default class extends BaseGenerator { this.jdlContent = jdlObject.toString(); } } catch (error: unknown) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any throw new Error(`An error occurred while exporting to JDL: ${(error as any).message}\n${error}`, { cause: error }); } }, diff --git a/generators/git/files.js b/generators/git/files.js index 7464803c7f6d..9a00c7089aed 100644 --- a/generators/git/files.js +++ b/generators/git/files.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// eslint-disable-next-line import/prefer-default-export + export const files = { git: [ { diff --git a/generators/git/generator.ts b/generators/git/generator.ts index e3eed603b3ea..5995340df61c 100644 --- a/generators/git/generator.ts +++ b/generators/git/generator.ts @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import chalk from 'chalk'; import type { QueuedAdapter } from '@yeoman/types'; diff --git a/generators/gradle/generator.ts b/generators/gradle/generator.ts index 6e0e8eaafd1b..a178a7fbd46d 100644 --- a/generators/gradle/generator.ts +++ b/generators/gradle/generator.ts @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import assert from 'assert/strict'; import BaseApplicationGenerator from '../base-application/index.js'; diff --git a/generators/gradle/support/dependabot-gradle.ts b/generators/gradle/support/dependabot-gradle.ts index 6a2aafcfe25c..8be6b838fc75 100644 --- a/generators/gradle/support/dependabot-gradle.ts +++ b/generators/gradle/support/dependabot-gradle.ts @@ -24,7 +24,6 @@ type LibsToml = { plugins?: Record; }; -// eslint-disable-next-line import/prefer-default-export export function getGradleLibsVersionsProperties(libsVersionsContent: string): Record { const parsed = parse(libsVersionsContent) as LibsToml; return { diff --git a/generators/heroku/generator.js b/generators/heroku/generator.js index 1d3921feb6eb..d261799b0312 100644 --- a/generators/heroku/generator.js +++ b/generators/heroku/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import { kebabCase } from 'lodash-es'; import chalk from 'chalk'; import { glob } from 'glob'; diff --git a/generators/heroku/templates.js b/generators/heroku/templates.js index 4663ca893080..5fb22eb660c6 100644 --- a/generators/heroku/templates.js +++ b/generators/heroku/templates.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/prefer-default-export export const mavenProfileContent = data => { return ` diff --git a/generators/info/generator.ts b/generators/info/generator.ts index 2abfa3bfa582..b5edb862cca2 100644 --- a/generators/info/generator.ts +++ b/generators/info/generator.ts @@ -125,7 +125,7 @@ export default class InfoGenerator extends BaseApplicationGenerator { ) { try { printInfo(await this.spawn(command, args, { stdio: 'pipe' })); - } catch (_error) { + } catch { console.log(chalk.red(`'${command}' command could not be found`)); } } diff --git a/generators/java/generators/bootstrap/generator.ts b/generators/java/generators/bootstrap/generator.ts index 0e72cc6d8b41..ee1bdd67d682 100644 --- a/generators/java/generators/bootstrap/generator.ts +++ b/generators/java/generators/bootstrap/generator.ts @@ -125,8 +125,8 @@ export default class BootstrapGenerator extends BaseApplicationGenerator { const { srcMainJava } = application; if (this.packageInfoFile && srcMainJava) { - const mainPackageMatch = matchMainJavaFiles(srcMainJava!); - const root = this.destinationPath(srcMainJava!); + const mainPackageMatch = matchMainJavaFiles(srcMainJava); + const root = this.destinationPath(srcMainJava); this.queueTransformStream( { name: 'adding package-info.java files', diff --git a/generators/java/generators/domain/generator.spec.ts b/generators/java/generators/domain/generator.spec.ts index 9c29cda1d6e5..d92e55178220 100644 --- a/generators/java/generators/domain/generator.spec.ts +++ b/generators/java/generators/domain/generator.spec.ts @@ -61,9 +61,10 @@ describe(`generator - ${generator}`, () => { }); it('should have options defaults set', () => { - expect(result.generator.generateEntities).toBe(true); - expect(result.generator.generateEnums).toBe(true); - expect(result.generator.useJakartaValidation).toBe(true); + const generator: any = result.generator; + expect(generator.generateEntities).toBe(true); + expect(generator.generateEnums).toBe(true); + expect(generator.useJakartaValidation).toBe(true); }); }); @@ -118,7 +119,7 @@ describe(`generator - ${generator}`, () => { await helpers .runJHipster(generator) .withJHipsterConfig({}) - .onGenerator(generator => { + .onGenerator((generator: any) => { generator.generateEntities = false; generator.generateEnums = false; generator.useJakartaValidation = false; @@ -126,9 +127,10 @@ describe(`generator - ${generator}`, () => { }); it('should not override custom values', () => { - expect(result.generator.generateEntities).toBe(false); - expect(result.generator.generateEnums).toBe(false); - expect(result.generator.useJakartaValidation).toBe(false); + const generator: any = result.generator; + expect(generator.generateEntities).toBe(false); + expect(generator.generateEnums).toBe(false); + expect(generator.useJakartaValidation).toBe(false); }); }); }); diff --git a/generators/java/generators/openapi-generator/generator.ts b/generators/java/generators/openapi-generator/generator.ts index 05ed6c29fca8..5210dd11ba9b 100644 --- a/generators/java/generators/openapi-generator/generator.ts +++ b/generators/java/generators/openapi-generator/generator.ts @@ -82,6 +82,7 @@ export default class OpenapiGeneratorGenerator extends BaseApplicationGenerator { groupId: 'org.openapitools', artifactId: 'openapi-generator-maven-plugin', + // eslint-disable-next-line no-template-curly-in-string version: '${openapi-generator-maven-plugin.version}', additionalContent: ` diff --git a/generators/java/support/checks/check-java.spec.ts b/generators/java/support/checks/check-java.spec.ts index ec9874de81a0..0dd2b76ba5bd 100644 --- a/generators/java/support/checks/check-java.spec.ts +++ b/generators/java/support/checks/check-java.spec.ts @@ -31,7 +31,7 @@ describe('generator - server - checkJava', () => { let result; before(async () => { - execa.execaCommandSync.mockReturnValue({ ...baseResult, stderr } as any); + execa.execaCommandSync.mockReturnValue({ ...baseResult, stderr }); const { default: checkJava } = await import('./check-java.js'); result = checkJava([]); }); @@ -50,7 +50,7 @@ describe('generator - server - checkJava', () => { let result; before(async () => { - execa.execaCommandSync.mockReturnValue({ ...baseResult, exitCode, stderr } as any); + execa.execaCommandSync.mockReturnValue({ ...baseResult, exitCode, stderr }); const { default: checkJava } = await import('./check-java.js'); result = checkJava([]); }); diff --git a/generators/java/support/checks/index.ts b/generators/java/support/checks/index.ts index 32d9c4cbc8d3..54b65f4caa84 100644 --- a/generators/java/support/checks/index.ts +++ b/generators/java/support/checks/index.ts @@ -1,2 +1 @@ -// eslint-disable-next-line import/prefer-default-export export { default as checkJava } from './check-java.js'; diff --git a/generators/java/support/key-store.ts b/generators/java/support/key-store.ts index 71884d274ab4..2c5620ed4508 100644 --- a/generators/java/support/key-store.ts +++ b/generators/java/support/key-store.ts @@ -6,7 +6,7 @@ import { ValidationResult } from '../../base/api.js'; /** * Generate a KeyStore. */ -// eslint-disable-next-line import/prefer-default-export + export async function generateKeyStore(keyStoreFile: string, { packageName }: { packageName: string }): Promise { try { const stat = await lstat(keyStoreFile); diff --git a/generators/jdl/generator.ts b/generators/jdl/generator.ts index 14781b951b52..8208adfb9cd8 100644 --- a/generators/jdl/generator.ts +++ b/generators/jdl/generator.ts @@ -18,7 +18,6 @@ */ import { extname } from 'path'; import { readFile } from 'fs/promises'; -import { QueuedAdapter } from '@yeoman/adapter'; import { upperFirst } from 'lodash-es'; import { create as createMemFs, type Store as MemFs } from 'mem-fs'; import { create as createMemFsEditor, type MemFsEditor } from 'mem-fs-editor'; @@ -270,7 +269,7 @@ export default class JdlGenerator extends BaseGenerator { applications.map(async application => { const rootCwd = this.destinationPath(); const cwd = application.folder ? this.destinationPath(application.folder) : rootCwd; - const adapter = (this.env.adapter as QueuedAdapter).newAdapter(); + const adapter = this.env.adapter.newAdapter(); const envOptions: any = { cwd, logCwd: rootCwd, sharedFs: application.sharedFs, adapter }; const generatorOptions = { ...this.options, ...options, skipPriorities: ['prompting'] }; diff --git a/generators/kubernetes-helm/generator.js b/generators/kubernetes-helm/generator.js index 3fc4c6915b91..69d215650847 100644 --- a/generators/kubernetes-helm/generator.js +++ b/generators/kubernetes-helm/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return, import/no-named-as-default-member */ + import fs from 'fs'; import chalk from 'chalk'; @@ -185,7 +185,7 @@ export default class KubernetesHelmGenerator extends BaseWorkspacesGenerator { try { fs.chmodSync('helm-apply.sh', '755'); fs.chmodSync('helm-upgrade.sh', '755'); - } catch (err) { + } catch { this.log.warn( "Failed to make 'helm-apply.sh', 'helm-upgrade.sh' executable, you may need to run 'chmod +x helm-apply.sh helm-upgrade.sh", ); diff --git a/generators/kubernetes-knative/files.js b/generators/kubernetes-knative/files.js index a3d0455a2cfa..c8e3da6c2a89 100644 --- a/generators/kubernetes-knative/files.js +++ b/generators/kubernetes-knative/files.js @@ -37,7 +37,6 @@ const { GeneratorTypes } = kubernetesPlatformTypes; const { K8S } = GeneratorTypes; -// eslint-disable-next-line import/prefer-default-export export function writeFiles() { const suffix = 'knative'; return { diff --git a/generators/kubernetes-knative/generator.js b/generators/kubernetes-knative/generator.js index 447344e0fd49..8107b533493a 100644 --- a/generators/kubernetes-knative/generator.js +++ b/generators/kubernetes-knative/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import fs from 'fs'; import chalk from 'chalk'; @@ -76,7 +76,7 @@ export default class KubernetesKnativeGenerator extends BaseWorkspacesGenerator await this.spawnCommand( 'kubectl get deploy -n knative-serving --label-columns=serving.knative.dev/release | grep -E "v0\\.[8-9]{1,3}\\.[0-9]*', ); - } catch (error) { + } catch { this.log.warn( 'Knative 0.8.* or later is not installed on your computer.\n' + 'Make sure you have Knative and Istio installed. Read https://knative.dev/docs/install/\n', @@ -218,7 +218,7 @@ export default class KubernetesKnativeGenerator extends BaseWorkspacesGenerator // Make the apply script executable try { fs.chmodSync('kubectl-knative-apply.sh', '755'); - } catch (err) { + } catch { this.log.warn("Failed to make 'kubectl-knative-apply.sh' executable, you may need to run 'chmod +x kubectl-knative-apply.sh'"); } } else { @@ -229,7 +229,7 @@ export default class KubernetesKnativeGenerator extends BaseWorkspacesGenerator try { fs.chmodSync('helm-knative-apply.sh', '755'); fs.chmodSync('helm-knative-upgrade.sh', '755'); - } catch (err) { + } catch { this.log.warn( "Failed to make 'helm-knative-apply.sh', 'helm-knative-upgrade.sh' executable, you may need to run 'chmod +x helm-knative-apply.sh helm-knative-upgrade.sh", ); diff --git a/generators/kubernetes/generator.js b/generators/kubernetes/generator.js index 3bc3ebf3b494..e786099bbca9 100644 --- a/generators/kubernetes/generator.js +++ b/generators/kubernetes/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return, import/no-named-as-default-member */ + import fs from 'fs'; import chalk from 'chalk'; @@ -211,7 +211,7 @@ export default class KubernetesGenerator extends BaseWorkspacesGenerator { // Make the apply script executable try { fs.chmodSync('kubectl-apply.sh', '755'); - } catch (err) { + } catch { this.log.warn("Failed to make 'kubectl-apply.sh' executable, you may need to run 'chmod +x kubectl-apply.sh'"); } }, diff --git a/generators/kubernetes/prompts.js b/generators/kubernetes/prompts.js index 703a2d85221d..86d006dea463 100644 --- a/generators/kubernetes/prompts.js +++ b/generators/kubernetes/prompts.js @@ -132,7 +132,7 @@ export async function askForIngressDomain() { try { const { stdout: istioIngressIp } = this.spawnCommandSync(istioIpCommand, { stdio: 'pipe' }); defaultValue = `${istioIngressIp}.nip.io`; - } catch (ex) { + } catch { istioMessage = `Unable to determine Istio Ingress IP address. You can find the Istio Ingress IP address by running the command line:\n ${istioIpCommand}`; } } else if (this.ingressType === NGINX) { diff --git a/generators/languages/files.js b/generators/languages/files.js index 573aa7528932..e7dfc3cea204 100644 --- a/generators/languages/files.js +++ b/generators/languages/files.js @@ -18,7 +18,6 @@ */ import { CLIENT_MAIN_SRC_DIR } from '../generator-constants.js'; -// eslint-disable-next-line import/prefer-default-export export const clientI18nFiles = { clientI18nFiles: [ { diff --git a/generators/languages/generator-needles.spec.ts b/generators/languages/generator-needles.spec.ts index f647f96ccb5e..ce54900da800 100644 --- a/generators/languages/generator-needles.spec.ts +++ b/generators/languages/generator-needles.spec.ts @@ -6,7 +6,6 @@ import LanguagesGenerator from './index.js'; const generatorPath = getGenerator('languages'); -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends LanguagesGenerator { constructor(args, opts, features) { super(args, opts, features); diff --git a/generators/languages/generator.js b/generators/languages/generator.js index 55f0e9870ada..ae78b4dfd68f 100644 --- a/generators/languages/generator.js +++ b/generators/languages/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import chalk from 'chalk'; import { padEnd, startCase } from 'lodash-es'; diff --git a/generators/languages/support/detect-language.ts b/generators/languages/support/detect-language.ts index 152a129741e3..83b642f47841 100644 --- a/generators/languages/support/detect-language.ts +++ b/generators/languages/support/detect-language.ts @@ -20,7 +20,7 @@ import { osLocaleSync } from 'os-locale'; import { findLanguageForTag, Language, supportedLanguages } from './languages.js'; -const detectLanguage = (languages: ReadonlyArray = supportedLanguages) => { +const detectLanguage = (languages: readonly Language[] = supportedLanguages) => { const locale = osLocaleSync(); if (locale) { const language = findLanguageForTag(locale.toLowerCase(), languages) ?? findLanguageForTag(locale.split('-')[0], languages); diff --git a/generators/languages/support/languages.ts b/generators/languages/support/languages.ts index 1a374139048b..6cfe9afeb750 100644 --- a/generators/languages/support/languages.ts +++ b/generators/languages/support/languages.ts @@ -263,7 +263,7 @@ const partialLanguages: PartialLanguage[] = [ }, ]; -export const supportedLanguages: ReadonlyArray = partialLanguages.map(language => ({ +export const supportedLanguages: readonly Language[] = partialLanguages.map(language => ({ rtl: false, javaLocaleMessageSourceSuffix: languageToJavaLanguage(language.languageTag), angularLocale: languageToAngularLanguage(language.languageTag), @@ -272,7 +272,7 @@ export const supportedLanguages: ReadonlyArray = partialLanguages.map( ...language, })); -export const findLanguageForTag = (languageTag: string, languages: ReadonlyArray = supportedLanguages): Language | undefined => +export const findLanguageForTag = (languageTag: string, languages: readonly Language[] = supportedLanguages): Language | undefined => languages.find(lang => lang.languageTag === languageTag); export const defaultLanguage = findLanguageForTag('en') as Required; @@ -281,7 +281,7 @@ export const defaultLanguage = findLanguageForTag('en') as Required; * Generate language objects in array of "'en': { name: 'English' }" format * @param languages */ -export const generateLanguagesWebappOptions = (languages: ReadonlyArray) => +export const generateLanguagesWebappOptions = (languages: readonly Language[]) => languages.map(language => `'${language.languageTag}': { name: '${language.displayName}'${language.rtl ? ', rtl: true' : ''} }`); type LanguageIdParts = { language: string; script?: string; country?: string; variant?: string }; @@ -325,6 +325,6 @@ function buildLanguageTag(parts: LanguageIdParts): string { return languageTag; } -export function languagesAsChoices(languages: ReadonlyArray = supportedLanguages) { +export function languagesAsChoices(languages: readonly Language[] = supportedLanguages) { return languages.map(language => ({ value: language.languageTag, name: language.name })); } diff --git a/generators/languages/support/translate.ts b/generators/languages/support/translate.ts index fe5050a7740b..fda457bb9ea1 100644 --- a/generators/languages/support/translate.ts +++ b/generators/languages/support/translate.ts @@ -90,7 +90,7 @@ export const replaceTranslationKeysWithText = ( } else if (stringify) { replacement = JSON.stringify(replacement); } - body = `${body.slice(0, match.index!)}${replacement}${body.slice(match.index! + target.length)}`; + body = `${body.slice(0, match.index)}${replacement}${body.slice(match.index + target.length)}`; } return body; }; @@ -144,7 +144,7 @@ export const replaceTranslateContents = (body: string, filePath: string, regexp: } } - body = `${body.slice(0, match.index!)}${converter({ filePath, key, interpolate, parsedInterpolate, type, prefix, suffix })}${body.slice(match.index! + target.length)}`; + body = `${body.slice(0, match.index)}${converter({ filePath, key, interpolate, parsedInterpolate, type, prefix, suffix })}${body.slice(match.index + target.length)}`; } return body; }; diff --git a/generators/languages/types.d.ts b/generators/languages/types.d.ts index 67ffc730bc23..b8820981ff91 100644 --- a/generators/languages/types.d.ts +++ b/generators/languages/types.d.ts @@ -29,6 +29,6 @@ export type I18nApplication = { | { enableTranslation: true; languages: string[]; - languagesDefinition: ReadonlyArray; + languagesDefinition: readonly Language[]; } ); diff --git a/generators/liquibase/files.ts b/generators/liquibase/files.ts index 814594e158b2..a4e44e13e455 100644 --- a/generators/liquibase/files.ts +++ b/generators/liquibase/files.ts @@ -22,7 +22,6 @@ import { moveToJavaPackageSrcDir } from '../server/support/index.js'; import { CommonClientServerApplication } from '../base-application/types.js'; import type LiquibaseGenerator from './generator.js'; -// eslint-disable-next-line import/prefer-default-export export const liquibaseFiles: WriteFileSection = { liquibase: [ { diff --git a/generators/liquibase/generator.ts b/generators/liquibase/generator.ts index d32b214ccdb0..5031644822cd 100644 --- a/generators/liquibase/generator.ts +++ b/generators/liquibase/generator.ts @@ -200,7 +200,7 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator { this.options.entities ?? entities.filter(entity => !entity.builtIn && !entity.skipServer).map(entity => entity.name); // Write only specified entities changelogs. const changes = entityChanges.filter( - databaseChangelog => entitiesToWrite!.length === 0 || entitiesToWrite!.includes(databaseChangelog.entityName), + databaseChangelog => entitiesToWrite.length === 0 || entitiesToWrite.includes(databaseChangelog.entityName), ); for (const databaseChangelog of changes) { @@ -697,7 +697,6 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator { return undefined; } - // eslint-disable-next-line no-nested-ternary const entityChanges = databaseChangelog.changelogData; entityChanges.skipFakeData = application.skipFakeData || entity.skipFakeData; diff --git a/generators/maven/generator.ts b/generators/maven/generator.ts index 4e5d58bb5f87..2f1ed46293bd 100644 --- a/generators/maven/generator.ts +++ b/generators/maven/generator.ts @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import assert from 'node:assert/strict'; import { passthrough } from '@yeoman/transform'; import { isFileStateModified } from 'mem-fs-editor/state'; @@ -98,7 +98,7 @@ export default class MavenGenerator extends BaseApplicationGenerator { properties = Array.isArray(properties) ? properties : [properties]; for (const property of properties) { - javaProperties![property.property] = property.value!; + javaProperties[property.property] = property.value!; this.pomStorage.addProperty(property); } }; diff --git a/generators/project-name/generator.js b/generators/project-name/generator.js index 9035149bf2fd..0a5f84318f4c 100644 --- a/generators/project-name/generator.js +++ b/generators/project-name/generator.js @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable consistent-return */ + import { defaults, kebabCase, upperFirst, camelCase, startCase } from 'lodash-es'; import BaseApplicationGenerator from '../base-application/index.js'; diff --git a/generators/project-name/support/index.ts b/generators/project-name/support/index.ts index 3e03e5cd6d03..92495851ff5a 100644 --- a/generators/project-name/support/index.ts +++ b/generators/project-name/support/index.ts @@ -17,5 +17,4 @@ * limitations under the License. */ -// eslint-disable-next-line import/prefer-default-export export { default as getDefaultAppName } from './name-resolver.js'; diff --git a/generators/react/application/entities/index.ts b/generators/react/application/entities/index.ts index 078e35eeeb4b..914752ebf222 100644 --- a/generators/react/application/entities/index.ts +++ b/generators/react/application/entities/index.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/prefer-default-export export function prepareEntity({ entity, application }) { entity.entityReactState = application.applicationTypeMonolith ? entity.entityInstance diff --git a/generators/server/__test-support/index.ts b/generators/server/__test-support/index.ts index 7f45d20c380c..5e96ed8c93b3 100644 --- a/generators/server/__test-support/index.ts +++ b/generators/server/__test-support/index.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ import assert from 'assert'; import { messageBrokerTypes, databaseTypes } from '../../../jdl/jhipster/index.js'; diff --git a/generators/server/generator.js b/generators/server/generator.js index 14bb8e7aa412..6a0e55bcb89b 100644 --- a/generators/server/generator.js +++ b/generators/server/generator.js @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ /** * Copyright 2013-2024 the original author or authors from the JHipster project. * @@ -18,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable consistent-return */ import { existsSync } from 'fs'; import chalk from 'chalk'; diff --git a/generators/server/resources/Dockerfile b/generators/server/resources/Dockerfile index f41c7df7affd..22d31c4cd253 100644 --- a/generators/server/resources/Dockerfile +++ b/generators/server/resources/Dockerfile @@ -33,7 +33,7 @@ LABEL ALIAS=mssql FROM neo4j:5.22.0 -FROM hazelcast/management-center:5.5.0 +FROM hazelcast/management-center:5.5.1 LABEL ALIAS=hazelcast FROM memcached:1.6.29-alpine diff --git a/generators/server/support/relationship.ts b/generators/server/support/relationship.ts index 0641e2734b1c..a8ca37f610a8 100644 --- a/generators/server/support/relationship.ts +++ b/generators/server/support/relationship.ts @@ -24,7 +24,6 @@ import { databaseTypes } from '../../../jdl/index.js'; const { NO: NO_DATABASE, SQL, NEO4J } = databaseTypes; -// eslint-disable-next-line import/prefer-default-export export const addEntitiesOtherRelationships = (entities: JSONEntity[]): ValidationResult => { const result: { warning: string[] } = { warning: [] }; for (const entity of entities.filter(entity => !entity.builtIn)) { diff --git a/generators/server/support/spring-factories.ts b/generators/server/support/spring-factories.ts index 438d6df0ce94..0213fd914dd1 100644 --- a/generators/server/support/spring-factories.ts +++ b/generators/server/support/spring-factories.ts @@ -1,6 +1,5 @@ import properties from 'dot-properties'; -// eslint-disable-next-line import/prefer-default-export export const addSpringFactory = ({ key, value }) => content => { diff --git a/generators/server/support/string.ts b/generators/server/support/string.ts index e958d8870c01..919ddc5a4384 100644 --- a/generators/server/support/string.ts +++ b/generators/server/support/string.ts @@ -24,7 +24,7 @@ * @see org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy * @returns hibernate SnakeCase in JHipster preferred style */ -// eslint-disable-next-line import/prefer-default-export + export function hibernateSnakeCase(value: string): string { let res = ''; if (value) { diff --git a/generators/server/types.d.ts b/generators/server/types.d.ts index f930b7d8e130..96228981010f 100644 --- a/generators/server/types.d.ts +++ b/generators/server/types.d.ts @@ -4,7 +4,7 @@ import { MavenSourceType } from '../maven/types.js'; import { LiquibaseSourceType } from '../liquibase/types.js'; import { SpringCacheSourceType } from '../spring-cache/types.js'; import type { DeterministicOptionWithDerivedProperties, OptionWithDerivedProperties } from '../base-application/application-options.js'; -import { GatewayApplication } from '../spring-cloud/generators/gateway/types.ts'; +import { GatewayApplication } from '../spring-cloud/generators/gateway/types.js'; import { JavaAnnotation } from '../java/support/add-java-annotation.ts'; import { ApplicationPropertiesNeedles } from './support/needles.ts'; import { MessageBrokerApplicationType } from './options/message-broker.js'; diff --git a/generators/spring-boot/entity-cleanup.js b/generators/spring-boot/entity-cleanup.js index dd84fb505d01..07ee7cf74433 100644 --- a/generators/spring-boot/entity-cleanup.js +++ b/generators/spring-boot/entity-cleanup.js @@ -24,7 +24,7 @@ * @param {Object} application * @param {Object} entity */ -// eslint-disable-next-line import/prefer-default-export + export function cleanupOldFiles({ application: { packageFolder, srcMainJava, srcTestJava, searchEngineElasticsearch }, entity: { entityClass, entityAbsoluteFolder }, diff --git a/generators/spring-boot/generator.ts b/generators/spring-boot/generator.ts index 53c37d95e7a9..3d4771fee2ca 100644 --- a/generators/spring-boot/generator.ts +++ b/generators/spring-boot/generator.ts @@ -453,7 +453,7 @@ public void set${javaBeanCase(propertyName)}(${propertyType} ${propertyName}) { async writeFiles({ application }) { return this.writeFiles({ sections: serverFiles, - rootTemplatesPath: ['', '../../server/templates/', '../../java/generators/domain/templates/'], + rootTemplatesPath: ['', '../../java/generators/domain/templates/'], context: application, }); }, diff --git a/generators/server/templates/.devcontainer/Dockerfile.ejs b/generators/spring-boot/templates/.devcontainer/Dockerfile.ejs similarity index 100% rename from generators/server/templates/.devcontainer/Dockerfile.ejs rename to generators/spring-boot/templates/.devcontainer/Dockerfile.ejs diff --git a/generators/server/templates/.devcontainer/devcontainer.json.ejs b/generators/spring-boot/templates/.devcontainer/devcontainer.json.ejs similarity index 100% rename from generators/server/templates/.devcontainer/devcontainer.json.ejs rename to generators/spring-boot/templates/.devcontainer/devcontainer.json.ejs diff --git a/generators/server/templates/README.md.jhi.spring-boot.ejs b/generators/spring-boot/templates/README.md.jhi.spring-boot.ejs similarity index 100% rename from generators/server/templates/README.md.jhi.spring-boot.ejs rename to generators/spring-boot/templates/README.md.jhi.spring-boot.ejs diff --git a/generators/server/templates/build.gradle.ejs b/generators/spring-boot/templates/build.gradle.ejs similarity index 100% rename from generators/server/templates/build.gradle.ejs rename to generators/spring-boot/templates/build.gradle.ejs diff --git a/generators/server/templates/gradle.properties.ejs b/generators/spring-boot/templates/gradle.properties.ejs similarity index 100% rename from generators/server/templates/gradle.properties.ejs rename to generators/spring-boot/templates/gradle.properties.ejs diff --git a/generators/server/templates/gradle/profile_dev.gradle.ejs b/generators/spring-boot/templates/gradle/profile_dev.gradle.ejs similarity index 100% rename from generators/server/templates/gradle/profile_dev.gradle.ejs rename to generators/spring-boot/templates/gradle/profile_dev.gradle.ejs diff --git a/generators/server/templates/gradle/profile_prod.gradle.ejs b/generators/spring-boot/templates/gradle/profile_prod.gradle.ejs similarity index 100% rename from generators/server/templates/gradle/profile_prod.gradle.ejs rename to generators/spring-boot/templates/gradle/profile_prod.gradle.ejs diff --git a/generators/server/templates/gradle/war.gradle.ejs b/generators/spring-boot/templates/gradle/war.gradle.ejs similarity index 100% rename from generators/server/templates/gradle/war.gradle.ejs rename to generators/spring-boot/templates/gradle/war.gradle.ejs diff --git a/generators/server/templates/gradle/zipkin.gradle.ejs b/generators/spring-boot/templates/gradle/zipkin.gradle.ejs similarity index 100% rename from generators/server/templates/gradle/zipkin.gradle.ejs rename to generators/spring-boot/templates/gradle/zipkin.gradle.ejs diff --git a/generators/server/templates/micro_services_architecture.md b/generators/spring-boot/templates/micro_services_architecture.md similarity index 100% rename from generators/server/templates/micro_services_architecture.md rename to generators/spring-boot/templates/micro_services_architecture.md diff --git a/generators/server/templates/package.json.ejs b/generators/spring-boot/templates/package.json.ejs similarity index 100% rename from generators/server/templates/package.json.ejs rename to generators/spring-boot/templates/package.json.ejs diff --git a/generators/server/templates/pom.xml.ejs b/generators/spring-boot/templates/pom.xml.ejs similarity index 100% rename from generators/server/templates/pom.xml.ejs rename to generators/spring-boot/templates/pom.xml.ejs diff --git a/generators/server/templates/settings.gradle.ejs b/generators/spring-boot/templates/settings.gradle.ejs similarity index 100% rename from generators/server/templates/settings.gradle.ejs rename to generators/spring-boot/templates/settings.gradle.ejs diff --git a/generators/server/templates/src/main/java/_package_/Application.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/Application.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/ApplicationWebXml.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/ApplicationWebXml.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/ApplicationWebXml.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/ApplicationWebXml.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/EntityMapper.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/mapper/EntityMapper.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/EntityMapper.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/mapper/EntityMapper.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/aop/logging/LoggingAspect.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/aop/logging/LoggingAspect.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/aop/logging/LoggingAspect.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/aop/logging/LoggingAspect.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/ApplicationProperties.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/ApplicationProperties.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/ApplicationProperties.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/ApplicationProperties.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/CRLFLogConverter.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/CRLFLogConverter.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/CRLFLogConverter.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/CRLFLogConverter.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/Constants.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/Constants.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/Constants.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/DateTimeFormatConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/DateTimeFormatConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/DateTimeFormatConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/DateTimeFormatConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/EurekaWorkaroundConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/EurekaWorkaroundConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/EurekaWorkaroundConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/EurekaWorkaroundConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/LoggingAspectConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/LoggingAspectConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/LoggingAspectConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/LoggingAspectConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/LoggingConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/LoggingConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/LoggingConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/LoggingConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/OAuth2Configuration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/OAuth2Configuration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/OAuth2Configuration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/OAuth2Configuration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/OpenApiConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/OpenApiConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/OpenApiConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/OpenApiConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/ReactorConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/ReactorConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/ReactorConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/ReactorConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/SecurityInMemoryConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/SecurityInMemoryConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/SecurityInMemoryConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/SecurityInMemoryConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/StaticResourcesWebConfiguration.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/StaticResourcesWebConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/StaticResourcesWebConfiguration.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/StaticResourcesWebConfiguration.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/config/WebConfigurer.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/config/WebConfigurer.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/domain/AbstractAuditingEntity.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/domain/AbstractAuditingEntity.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/domain/AbstractAuditingEntity.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/domain/AbstractAuditingEntity.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/domain/PersistentToken.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/domain/PersistentToken.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/domain/PersistentToken.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/domain/PersistentToken.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/domain/User.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/domain/User.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/domain/User.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/domain/User.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/management/SecurityMetersService.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/management/SecurityMetersService.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/management/SecurityMetersService.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/management/SecurityMetersService.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/repository/PersistentTokenRepository.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/repository/PersistentTokenRepository.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/repository/PersistentTokenRepository.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/repository/PersistentTokenRepository.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/AuthoritiesConstants.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/AuthoritiesConstants.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/AuthoritiesConstants.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/AuthoritiesConstants.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/SpringSecurityAuditorAware.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/SpringSecurityAuditorAware.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/SpringSecurityAuditorAware.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/SpringSecurityAuditorAware.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/UserNotActivatedException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/UserNotActivatedException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/UserNotActivatedException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/UserNotActivatedException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/EmailAlreadyUsedException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/EmailAlreadyUsedException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/EmailAlreadyUsedException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/EmailAlreadyUsedException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/InvalidPasswordException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/InvalidPasswordException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/InvalidPasswordException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/InvalidPasswordException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/MailService.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/MailService.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/MailService.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/UsernameAlreadyUsedException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/UsernameAlreadyUsedException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/UsernameAlreadyUsedException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/UsernameAlreadyUsedException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/dto/AdminUserDTO.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/dto/AdminUserDTO.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/dto/AdminUserDTO.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/dto/AdminUserDTO.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/dto/PasswordChangeDTO.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/dto/PasswordChangeDTO.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/dto/PasswordChangeDTO.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/dto/PasswordChangeDTO.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/filter/OAuth2RefreshTokensWebFilter.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/filter/OAuth2RefreshTokensWebFilter.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/filter/OAuth2RefreshTokensWebFilter.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/filter/OAuth2RefreshTokensWebFilter.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_reactive.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/filter/SpaWebFilter_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_reactive.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/filter/SpaWebFilter_reactive.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/AuthInfoResource.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthInfoResource.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/AuthInfoResource.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthInfoResource.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/BadRequestAlertException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/BadRequestAlertException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/BadRequestAlertException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/BadRequestAlertException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/EmailAlreadyUsedException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/EmailAlreadyUsedException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/EmailAlreadyUsedException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/EmailAlreadyUsedException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/ErrorConstants.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ErrorConstants.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/ErrorConstants.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ErrorConstants.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/FieldErrorVM.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/FieldErrorVM.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/FieldErrorVM.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/FieldErrorVM.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/InvalidPasswordException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/InvalidPasswordException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/InvalidPasswordException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/InvalidPasswordException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/errors/LoginAlreadyUsedException.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/LoginAlreadyUsedException.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/errors/LoginAlreadyUsedException.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/LoginAlreadyUsedException.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/vm/KeyAndPasswordVM.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/vm/KeyAndPasswordVM.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/vm/KeyAndPasswordVM.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/vm/KeyAndPasswordVM.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/vm/LoginVM.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/vm/LoginVM.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/vm/LoginVM.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/vm/LoginVM.java.ejs diff --git a/generators/server/templates/src/main/java/_package_/web/rest/vm/ManagedUserVM.java.ejs b/generators/spring-boot/templates/src/main/java/_package_/web/rest/vm/ManagedUserVM.java.ejs similarity index 100% rename from generators/server/templates/src/main/java/_package_/web/rest/vm/ManagedUserVM.java.ejs rename to generators/spring-boot/templates/src/main/java/_package_/web/rest/vm/ManagedUserVM.java.ejs diff --git a/generators/server/templates/src/main/resources/banner-no-color.txt b/generators/spring-boot/templates/src/main/resources/banner-no-color.txt similarity index 100% rename from generators/server/templates/src/main/resources/banner-no-color.txt rename to generators/spring-boot/templates/src/main/resources/banner-no-color.txt diff --git a/generators/server/templates/src/main/resources/banner.txt b/generators/spring-boot/templates/src/main/resources/banner.txt similarity index 100% rename from generators/server/templates/src/main/resources/banner.txt rename to generators/spring-boot/templates/src/main/resources/banner.txt diff --git a/generators/server/templates/src/main/resources/banner_react.txt b/generators/spring-boot/templates/src/main/resources/banner_react.txt similarity index 100% rename from generators/server/templates/src/main/resources/banner_react.txt rename to generators/spring-boot/templates/src/main/resources/banner_react.txt diff --git a/generators/server/templates/src/main/resources/banner_vue.txt b/generators/spring-boot/templates/src/main/resources/banner_vue.txt similarity index 100% rename from generators/server/templates/src/main/resources/banner_vue.txt rename to generators/spring-boot/templates/src/main/resources/banner_vue.txt diff --git a/generators/server/templates/src/main/resources/config/application-dev.yml.ejs b/generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/config/application-dev.yml.ejs rename to generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs diff --git a/generators/server/templates/src/main/resources/config/application-prod.yml.ejs b/generators/spring-boot/templates/src/main/resources/config/application-prod.yml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/config/application-prod.yml.ejs rename to generators/spring-boot/templates/src/main/resources/config/application-prod.yml.ejs diff --git a/generators/server/templates/src/main/resources/config/application-tls.yml.ejs b/generators/spring-boot/templates/src/main/resources/config/application-tls.yml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/config/application-tls.yml.ejs rename to generators/spring-boot/templates/src/main/resources/config/application-tls.yml.ejs diff --git a/generators/server/templates/src/main/resources/config/application.yml.ejs b/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/config/application.yml.ejs rename to generators/spring-boot/templates/src/main/resources/config/application.yml.ejs diff --git a/generators/server/templates/src/main/resources/config/bootstrap-prod.yml.ejs b/generators/spring-boot/templates/src/main/resources/config/bootstrap-prod.yml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/config/bootstrap-prod.yml.ejs rename to generators/spring-boot/templates/src/main/resources/config/bootstrap-prod.yml.ejs diff --git a/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs b/generators/spring-boot/templates/src/main/resources/config/bootstrap.yml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/config/bootstrap.yml.ejs rename to generators/spring-boot/templates/src/main/resources/config/bootstrap.yml.ejs diff --git a/generators/server/templates/src/main/resources/i18n/messages.properties.ejs b/generators/spring-boot/templates/src/main/resources/i18n/messages.properties.ejs similarity index 100% rename from generators/server/templates/src/main/resources/i18n/messages.properties.ejs rename to generators/spring-boot/templates/src/main/resources/i18n/messages.properties.ejs diff --git a/generators/server/templates/src/main/resources/logback-spring.xml.ejs b/generators/spring-boot/templates/src/main/resources/logback-spring.xml.ejs similarity index 100% rename from generators/server/templates/src/main/resources/logback-spring.xml.ejs rename to generators/spring-boot/templates/src/main/resources/logback-spring.xml.ejs diff --git a/generators/server/templates/src/main/resources/static/index_microservices.html.ejs b/generators/spring-boot/templates/src/main/resources/static/index_microservices.html.ejs similarity index 100% rename from generators/server/templates/src/main/resources/static/index_microservices.html.ejs rename to generators/spring-boot/templates/src/main/resources/static/index_microservices.html.ejs diff --git a/generators/server/templates/src/main/resources/templates/error.html.ejs b/generators/spring-boot/templates/src/main/resources/templates/error.html.ejs similarity index 100% rename from generators/server/templates/src/main/resources/templates/error.html.ejs rename to generators/spring-boot/templates/src/main/resources/templates/error.html.ejs diff --git a/generators/server/templates/src/main/resources/templates/mail/activationEmail.html.ejs b/generators/spring-boot/templates/src/main/resources/templates/mail/activationEmail.html.ejs similarity index 100% rename from generators/server/templates/src/main/resources/templates/mail/activationEmail.html.ejs rename to generators/spring-boot/templates/src/main/resources/templates/mail/activationEmail.html.ejs diff --git a/generators/server/templates/src/main/resources/templates/mail/creationEmail.html.ejs b/generators/spring-boot/templates/src/main/resources/templates/mail/creationEmail.html.ejs similarity index 100% rename from generators/server/templates/src/main/resources/templates/mail/creationEmail.html.ejs rename to generators/spring-boot/templates/src/main/resources/templates/mail/creationEmail.html.ejs diff --git a/generators/server/templates/src/main/resources/templates/mail/passwordResetEmail.html.ejs b/generators/spring-boot/templates/src/main/resources/templates/mail/passwordResetEmail.html.ejs similarity index 100% rename from generators/server/templates/src/main/resources/templates/mail/passwordResetEmail.html.ejs rename to generators/spring-boot/templates/src/main/resources/templates/mail/passwordResetEmail.html.ejs diff --git a/generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/IntegrationTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/IntegrationTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/_entityPackage_/service/dto/_dtoClass_Test.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/dto/_dtoClass_Test.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/_entityPackage_/service/dto/_dtoClass_Test.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/dto/_dtoClass_Test.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/_entityPackage_/service/mapper/_entityClass_MapperTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/mapper/_entityClass_MapperTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/_entityPackage_/service/mapper/_entityClass_MapperTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/mapper/_entityClass_MapperTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/AsyncSyncConfiguration.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/AsyncSyncConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/AsyncSyncConfiguration.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/AsyncSyncConfiguration.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/CRLFLogConverterTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/CRLFLogConverterTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/CRLFLogConverterTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/CRLFLogConverterTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/SpringBootTestClassOrderer.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/SpringBootTestClassOrderer.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/SpringBootTestClassOrderer.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/SpringBootTestClassOrderer.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/StaticResourcesWebConfigurerTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/StaticResourcesWebConfigurerTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/StaticResourcesWebConfigurerTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/StaticResourcesWebConfigurerTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/TestSecurityConfiguration.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/TestSecurityConfiguration.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/TestSecurityConfiguration.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/TestSecurityConfiguration.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/config/WebConfigurerTestController.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTestController.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/config/WebConfigurerTestController.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTestController.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/oauth2/AudienceValidatorTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/AudienceValidatorTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/oauth2/AudienceValidatorTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/oauth2/AudienceValidatorTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/service/MailServiceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/service/MailServiceIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/test/util/OAuth2TestUtil.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/test/util/OAuth2TestUtil.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/test/util/OAuth2TestUtil.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/test/util/OAuth2TestUtil.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/filter/SpaWebFilterTestController_reactive.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterTestController_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/filter/SpaWebFilterTestController_reactive.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterTestController_reactive.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/AuthenticateControllerIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/AuthenticateControllerIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/AuthenticateControllerIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/AuthenticateControllerIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/TestUtil.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/TestUtil.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/TestUtil.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/TestUtil.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/WithUnauthenticatedMockUser.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/WithUnauthenticatedMockUser.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/WithUnauthenticatedMockUser.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/WithUnauthenticatedMockUser.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs diff --git a/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs similarity index 100% rename from generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs rename to generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs diff --git a/generators/server/templates/src/test/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration.ejs b/generators/spring-boot/templates/src/test/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration.ejs similarity index 100% rename from generators/server/templates/src/test/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration.ejs rename to generators/spring-boot/templates/src/test/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration.ejs diff --git a/generators/server/templates/src/test/resources/config/application.yml.ejs b/generators/spring-boot/templates/src/test/resources/config/application.yml.ejs similarity index 100% rename from generators/server/templates/src/test/resources/config/application.yml.ejs rename to generators/spring-boot/templates/src/test/resources/config/application.yml.ejs diff --git a/generators/server/templates/src/test/resources/config/bootstrap.yml.ejs b/generators/spring-boot/templates/src/test/resources/config/bootstrap.yml.ejs similarity index 100% rename from generators/server/templates/src/test/resources/config/bootstrap.yml.ejs rename to generators/spring-boot/templates/src/test/resources/config/bootstrap.yml.ejs diff --git a/generators/server/templates/src/test/resources/i18n/messages_en.properties.ejs b/generators/spring-boot/templates/src/test/resources/i18n/messages_en.properties.ejs similarity index 100% rename from generators/server/templates/src/test/resources/i18n/messages_en.properties.ejs rename to generators/spring-boot/templates/src/test/resources/i18n/messages_en.properties.ejs diff --git a/generators/server/templates/src/test/resources/junit-platform.properties.ejs b/generators/spring-boot/templates/src/test/resources/junit-platform.properties.ejs similarity index 100% rename from generators/server/templates/src/test/resources/junit-platform.properties.ejs rename to generators/spring-boot/templates/src/test/resources/junit-platform.properties.ejs diff --git a/generators/server/templates/src/test/resources/logback.xml.ejs b/generators/spring-boot/templates/src/test/resources/logback.xml.ejs similarity index 100% rename from generators/server/templates/src/test/resources/logback.xml.ejs rename to generators/spring-boot/templates/src/test/resources/logback.xml.ejs diff --git a/generators/server/templates/src/test/resources/templates/mail/activationEmail.html.ejs b/generators/spring-boot/templates/src/test/resources/templates/mail/activationEmail.html.ejs similarity index 100% rename from generators/server/templates/src/test/resources/templates/mail/activationEmail.html.ejs rename to generators/spring-boot/templates/src/test/resources/templates/mail/activationEmail.html.ejs diff --git a/generators/server/templates/src/test/resources/templates/mail/creationEmail.html.ejs b/generators/spring-boot/templates/src/test/resources/templates/mail/creationEmail.html.ejs similarity index 100% rename from generators/server/templates/src/test/resources/templates/mail/creationEmail.html.ejs rename to generators/spring-boot/templates/src/test/resources/templates/mail/creationEmail.html.ejs diff --git a/generators/server/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs b/generators/spring-boot/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs similarity index 100% rename from generators/server/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs rename to generators/spring-boot/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs diff --git a/generators/server/templates/src/test/resources/templates/mail/testEmail.html.ejs b/generators/spring-boot/templates/src/test/resources/templates/mail/testEmail.html.ejs similarity index 100% rename from generators/server/templates/src/test/resources/templates/mail/testEmail.html.ejs rename to generators/spring-boot/templates/src/test/resources/templates/mail/testEmail.html.ejs diff --git a/generators/spring-cache/generator.ts b/generators/spring-cache/generator.ts index bd6a8a48e9b5..a73336bc5f3b 100644 --- a/generators/spring-cache/generator.ts +++ b/generators/spring-cache/generator.ts @@ -141,10 +141,10 @@ export default class SpringCacheGenerator extends BaseApplicationGenerator { const versions: JavaDependencyVersion[] = []; const definition = getCacheProviderMavenDefinition(cacheProvider, javaDependencies); versions.push(...(definition.base.versions ?? [])); - dependencies.push(...definition.base.dependencies!); + dependencies.push(...definition.base.dependencies); if (enableHibernateCache && definition.hibernateCache) { versions.push(...(definition.hibernateCache.versions ?? [])); - dependencies.push(...definition.hibernateCache.dependencies!); + dependencies.push(...definition.hibernateCache.dependencies); } source.addJavaDefinition?.( { dependencies, versions }, diff --git a/generators/spring-cache/internal/dependencies.ts b/generators/spring-cache/internal/dependencies.ts index 66b72ad48df6..17851cbc7194 100644 --- a/generators/spring-cache/internal/dependencies.ts +++ b/generators/spring-cache/internal/dependencies.ts @@ -35,7 +35,6 @@ type CacheProviderDependencies = { hibernateCache?: CacheProviderDefinition; }; -// eslint-disable-next-line import/prefer-default-export export const getCacheProviderMavenDefinition: ( cacheProvider: string, javaDependencies: Record, diff --git a/generators/spring-cache/needles.spec.ts b/generators/spring-cache/needles.spec.ts index 5398a33dea5f..ce1a668b1b72 100644 --- a/generators/spring-cache/needles.spec.ts +++ b/generators/spring-cache/needles.spec.ts @@ -4,7 +4,6 @@ import BaseApplicationGenerator from '../base-application/index.js'; import { SERVER_MAIN_SRC_DIR } from '../generator-constants.js'; import { GENERATOR_SPRING_CACHE } from '../generator-list.js'; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends BaseApplicationGenerator { constructor(args, opts, features) { super(args, opts, features); diff --git a/generators/spring-cloud/generators/gateway/types.d.ts b/generators/spring-cloud/generators/gateway/types.d.ts index f6c7b0e93071..3f2b0391fc11 100644 --- a/generators/spring-cloud/generators/gateway/types.d.ts +++ b/generators/spring-cloud/generators/gateway/types.d.ts @@ -1,5 +1,5 @@ export type GatewayApplication = { gatewayServicesApiAvailable?: boolean; - gatewayRoutes?: Array<{ route: string; host: string; serverPort: string }>; + gatewayRoutes?: { route: string; host: string; serverPort: string }[]; routes?: string[]; }; diff --git a/generators/spring-data-relational/internal/dependencies.ts b/generators/spring-data-relational/internal/dependencies.ts index 97f5786e9148..f8e926461f1e 100644 --- a/generators/spring-data-relational/internal/dependencies.ts +++ b/generators/spring-data-relational/internal/dependencies.ts @@ -93,7 +93,6 @@ export const getH2MavenDefinition = ({ }; }; -// eslint-disable-next-line import/prefer-default-export export const getDatabaseTypeMavenDefinition: ( databaseType: string, options: { inProfile?: string; javaDependencies: Record }, diff --git a/generators/vue/resources/package.json b/generators/vue/resources/package.json index c96a93a30bd7..5a2077ba3600 100644 --- a/generators/vue/resources/package.json +++ b/generators/vue/resources/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@eslint/js": "9.8.0", "@module-federation/utilities": "3.0.3-0", - "@pinia/testing": "0.1.4", + "@pinia/testing": "0.1.5", "@tsconfig/node18": "18.2.4", "@types/node": "20.11.25", "@types/sinon": "17.0.3", @@ -57,7 +57,7 @@ "ts-loader": "9.5.1", "typescript": "5.5.4", "typescript-eslint": "8.0.1", - "vite": "5.3.5", + "vite": "5.4.0", "vite-plugin-static-copy": "1.0.6", "vitest": "2.0.5", "vitest-sonar-reporter": "2.0.0", diff --git a/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.ts b/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.ts index 7386aea03036..aedbce93ed60 100644 --- a/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.ts +++ b/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.ts @@ -18,7 +18,7 @@ */ import JSONEntity from '../../jhipster/json-entity.js'; -import formatComment from '../../utils/format-utils.js'; +import { formatComment } from '../../utils/format-utils.js'; import { getTableNameFromEntityNameFallback } from '../../jhipster/entity-table-name-creator.js'; import { JDLEntity } from '../../models/index.js'; diff --git a/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-information-converter.spec.ts b/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-information-converter.spec.ts index 99d982f2bf5a..ef949a382366 100644 --- a/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-information-converter.spec.ts +++ b/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-information-converter.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import chai, { expect } from 'chai'; import sinonChai from 'sinon-chai'; diff --git a/jdl/converters/jdl-to-json/jdl-to-json-field-converter.spec.ts b/jdl/converters/jdl-to-json/jdl-to-json-field-converter.spec.ts index c949de40e172..6267fdba5e26 100644 --- a/jdl/converters/jdl-to-json/jdl-to-json-field-converter.spec.ts +++ b/jdl/converters/jdl-to-json/jdl-to-json-field-converter.spec.ts @@ -286,7 +286,7 @@ describe('jdl - JDLToJSONFieldConverter', () => { }); const patternValidation = new JDLValidation({ name: PATTERN, - // eslint-disable-next-line prettier/prettier,no-useless-escape + value: '^d$', }); const minBytesValidation = new JDLValidation({ diff --git a/jdl/converters/jdl-to-json/jdl-to-json-field-converter.ts b/jdl/converters/jdl-to-json/jdl-to-json-field-converter.ts index 55ad79497066..eb18597c79fb 100644 --- a/jdl/converters/jdl-to-json/jdl-to-json-field-converter.ts +++ b/jdl/converters/jdl-to-json/jdl-to-json-field-converter.ts @@ -19,7 +19,7 @@ import { capitalize } from 'lodash-es'; import { validations } from '../../jhipster/index.js'; -import formatComment from '../../utils/format-utils.js'; +import { formatComment } from '../../utils/format-utils.js'; import { camelCase } from '../../utils/string-utils.js'; import fieldTypes from '../../jhipster/field-types.js'; import JDLObject from '../../models/jdl-object.js'; diff --git a/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.spec.ts b/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.spec.ts index 03c93a8a34de..71f9c27e6d2c 100644 --- a/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.spec.ts +++ b/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.spec.ts b/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.spec.ts index ea674044154e..575c28255958 100644 --- a/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.spec.ts +++ b/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, after, expect as jestExpect } from 'esmocha'; import chai, { expect } from 'chai'; import sinon from 'sinon'; @@ -809,7 +808,7 @@ JSONEntity { }); const patternValidation = new JDLValidation({ name: PATTERN, - // eslint-disable-next-line prettier/prettier,no-useless-escape + value: '^d$', }); const minBytesValidation = new JDLValidation({ @@ -1781,7 +1780,7 @@ JSONEntity { }); const dtoWithMapstructOption = new JDLBinaryOption({ name: binaryOptions.Options.DTO, - value: binaryOptions.Values.dto.MAPSTRUCT!, + value: binaryOptions.Values.dto.MAPSTRUCT, entityNames: new Set(['D', 'F']), }); jdlObject.addOption(paginationWithInfiniteScrollOption); diff --git a/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.spec.ts b/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.spec.ts index 6ae01932b5eb..cffb33f041e9 100644 --- a/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.spec.ts +++ b/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, after, expect as jestExpect } from 'esmocha'; import chai, { expect } from 'chai'; import sinon from 'sinon'; @@ -753,7 +752,7 @@ JSONEntity { }); const patternValidation = new JDLValidation({ name: PATTERN, - // eslint-disable-next-line prettier/prettier,no-useless-escape + value: '^d$', }); const minBytesValidation = new JDLValidation({ diff --git a/jdl/converters/json-to-jdl-converter.spec.ts b/jdl/converters/json-to-jdl-converter.spec.ts index 5af9edaffbeb..a4adab6c826d 100644 --- a/jdl/converters/json-to-jdl-converter.spec.ts +++ b/jdl/converters/json-to-jdl-converter.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import fs, { readFileSync } from 'fs'; import path, { dirname } from 'path'; diff --git a/jdl/converters/json-to-jdl-converter.ts b/jdl/converters/json-to-jdl-converter.ts index 915df293f437..05fc8fe6b3ed 100644 --- a/jdl/converters/json-to-jdl-converter.ts +++ b/jdl/converters/json-to-jdl-converter.ts @@ -53,7 +53,7 @@ export function convertToJDL(directory = '.', output: string | false = 'app.jdl' } else { try { jdlObject = getJDLObjectFromMultipleApplications(directory); - } catch (error) { + } catch { return undefined; } } @@ -77,7 +77,7 @@ function getJDLObjectFromMultipleApplications(directory: string): JDLObject { subDirectories.forEach(subDirectory => { const applicationDirectory = path.join(directory, subDirectory); const yoRcFileContent: JHipsterYoRcContent = readJSONFile(path.join(applicationDirectory, '.yo-rc.json')); - let entities: Map = new Map(); + let entities = new Map(); if (doesDirectoryExist(path.join(applicationDirectory, '.jhipster'))) { entities = getJSONEntityFiles(applicationDirectory); } @@ -119,7 +119,7 @@ function cleanYoRcFileContent(yoRcFileContent: JHipsterYoRcContent): PostProcess } function getJSONEntityFiles(applicationDirectory: string): Map { - const entities: Map = new Map(); + const entities = new Map(); fs.readdirSync(path.join(applicationDirectory, '.jhipster')).forEach(file => { const entityName = file.slice(0, file.indexOf('.json')); const jsonFilePath = path.join(applicationDirectory, '.jhipster', file); diff --git a/jdl/converters/json-to-jdl-entity-converter.spec.ts b/jdl/converters/json-to-jdl-entity-converter.spec.ts index fd00cdf96b81..a30223e8422e 100644 --- a/jdl/converters/json-to-jdl-entity-converter.spec.ts +++ b/jdl/converters/json-to-jdl-entity-converter.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ - import fs from 'fs'; import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; diff --git a/jdl/converters/json-to-jdl-entity-converter.ts b/jdl/converters/json-to-jdl-entity-converter.ts index 072cae18aca9..d5ff7aff9442 100644 --- a/jdl/converters/json-to-jdl-entity-converter.ts +++ b/jdl/converters/json-to-jdl-entity-converter.ts @@ -118,7 +118,7 @@ function getTypeForBlob(blobContentType: string): string { function addValidations(jdlField: JDLField, field: JSONField): void { if (field.fieldValidateRules) { - field.fieldValidateRules!.forEach((rule: string) => { + field.fieldValidateRules.forEach((rule: string) => { jdlField.addValidation(convertJSONToJDLValidation(rule, field)); }); } diff --git a/jdl/converters/json-to-jdl-option-converter.spec.ts b/jdl/converters/json-to-jdl-option-converter.spec.ts index 4c8fadd907d9..59e3326d98e5 100644 --- a/jdl/converters/json-to-jdl-option-converter.spec.ts +++ b/jdl/converters/json-to-jdl-option-converter.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ - import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; import { convertServerOptionsToJDL } from '../converters/json-to-jdl-option-converter.js'; diff --git a/jdl/converters/parsed-jdl-to-jdl-object/option-converter.spec.ts b/jdl/converters/parsed-jdl-to-jdl-object/option-converter.spec.ts index e49df00e9906..d99c26864122 100644 --- a/jdl/converters/parsed-jdl-to-jdl-object/option-converter.spec.ts +++ b/jdl/converters/parsed-jdl-to-jdl-object/option-converter.spec.ts @@ -71,7 +71,7 @@ describe('jdl - OptionConverter', () => { convertedOptions = convertOptions( { [optionName]: { - [optionValue!]: { list: ['A'], excluded: ['B'] }, + [optionValue]: { list: ['A'], excluded: ['B'] }, }, }, [], diff --git a/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.spec.ts b/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.spec.ts index 530350b5523d..f2512a8324f2 100644 --- a/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.spec.ts +++ b/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; import { before, it, describe, expect as jestExpect } from 'esmocha'; diff --git a/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.ts b/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.ts index 7a7b2539f639..5cb0422c2846 100644 --- a/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.ts +++ b/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.ts @@ -82,8 +82,8 @@ function init(passedConfiguration: ParsedJDLRoot) { function fillApplications(): void { // TODO: Function which expects two arguments is called with three. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error + + // @ts-expect-error TODO const jdlApplications: JDLApplication[] = convertApplications(parsedContent.applications, configuration, entityNames); jdlApplications.forEach((jdlApplication: JDLApplication) => { jdlObject.addApplication(jdlApplication); @@ -147,7 +147,7 @@ function fillAssociations(): void { const jdlRelationships = convertRelationships(parsedContent.relationships, convertAnnotationsToOptions); jdlRelationships.forEach(jdlRelationship => { // TODO: addRelationship only expects one argument. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + jdlObject.addRelationship(jdlRelationship); }); } diff --git a/jdl/exporters/export-utils.spec.ts b/jdl/exporters/export-utils.spec.ts index ab7c96a63631..4d1f1e6679f1 100644 --- a/jdl/exporters/export-utils.spec.ts +++ b/jdl/exporters/export-utils.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { readFileSync, writeFileSync } from 'fs'; import { dirname } from 'path'; diff --git a/jdl/exporters/jdl-exporter.spec.ts b/jdl/exporters/jdl-exporter.spec.ts index 7cf82eab0844..2f4bb579f7b8 100644 --- a/jdl/exporters/jdl-exporter.spec.ts +++ b/jdl/exporters/jdl-exporter.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import fs from 'fs'; import { expect } from 'chai'; import { it, describe, expect as jestExpect, beforeEach } from 'esmocha'; diff --git a/jdl/exporters/jhipster-deployment-exporter.spec.ts b/jdl/exporters/jhipster-deployment-exporter.spec.ts index 0d46e1168226..1de9b51a3bdc 100644 --- a/jdl/exporters/jhipster-deployment-exporter.spec.ts +++ b/jdl/exporters/jhipster-deployment-exporter.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ - import fs from 'fs'; import path from 'path'; import { it, describe, expect as jestExpect, beforeEach } from 'esmocha'; diff --git a/jdl/exporters/jhipster-entity-exporter.spec.ts b/jdl/exporters/jhipster-entity-exporter.spec.ts index 676d1fcf3863..855c53abdeed 100644 --- a/jdl/exporters/jhipster-entity-exporter.spec.ts +++ b/jdl/exporters/jhipster-entity-exporter.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { it, describe, expect as jestExpect, beforeEach } from 'esmocha'; import { expect } from 'chai'; import exportEntities from '../exporters/jhipster-entity-exporter.js'; diff --git a/jdl/integration-test.spec.ts b/jdl/integration-test.spec.ts index 1381359ab1d8..00433fe60e66 100644 --- a/jdl/integration-test.spec.ts +++ b/jdl/integration-test.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; import { expect } from 'chai'; diff --git a/jdl/jdl-importer.spec.ts b/jdl/jdl-importer.spec.ts index 40358cbc3b14..ef885a6b48c7 100644 --- a/jdl/jdl-importer.spec.ts +++ b/jdl/jdl-importer.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; import { readFileSync, rmSync } from 'fs'; diff --git a/jdl/jhipster/binary-options.spec.ts b/jdl/jhipster/binary-options.spec.ts index 142e813b03dd..73d8fb3a717c 100644 --- a/jdl/jhipster/binary-options.spec.ts +++ b/jdl/jhipster/binary-options.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; import { binaryOptions } from '../jhipster/index.js'; diff --git a/jdl/jhipster/database-types.spec.ts b/jdl/jhipster/database-types.spec.ts index f174111be18c..abbc29e6354c 100644 --- a/jdl/jhipster/database-types.spec.ts +++ b/jdl/jhipster/database-types.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; import { databaseTypes } from '../jhipster/index.js'; diff --git a/jdl/jhipster/default-application-options.spec.ts b/jdl/jhipster/default-application-options.spec.ts index 4f2efb435c59..21506a1d7f4b 100644 --- a/jdl/jhipster/default-application-options.spec.ts +++ b/jdl/jhipster/default-application-options.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/jhipster/deployment-options.spec.ts b/jdl/jhipster/deployment-options.spec.ts index 081424e35e8d..8b0f9b97a512 100644 --- a/jdl/jhipster/deployment-options.spec.ts +++ b/jdl/jhipster/deployment-options.spec.ts @@ -17,9 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new */ -/* eslint-disable no-unused-expressions */ - import { it, describe } from 'esmocha'; import { expect } from 'chai'; import { deploymentOptions } from '../jhipster/index.js'; diff --git a/jdl/jhipster/field-types.spec.ts b/jdl/jhipster/field-types.spec.ts index 10d5b2a41793..7d155882947e 100644 --- a/jdl/jhipster/field-types.spec.ts +++ b/jdl/jhipster/field-types.spec.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ /** * Copyright 2013-2024 the original author or authors from the JHipster project. * @@ -18,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/jhipster/field-types.ts b/jdl/jhipster/field-types.ts index 213c159e8660..001b13507b2b 100644 --- a/jdl/jhipster/field-types.ts +++ b/jdl/jhipster/field-types.ts @@ -139,7 +139,7 @@ export function getIsType(databaseType?: string, callback?: any): (type: any) => isType = () => true; break; default: - callback && callback(); + callback?.(); throw new Error( "The passed database type must either be 'sql', 'mysql', 'mariadb', 'postgresql'," + " 'oracle', 'mssql', 'mongodb', 'couchbase', 'neo4j' or 'cassandra'", diff --git a/jdl/jhipster/json-entity.spec.ts b/jdl/jhipster/json-entity.spec.ts index 100069929fcd..3fe7d2a069e1 100644 --- a/jdl/jhipster/json-entity.spec.ts +++ b/jdl/jhipster/json-entity.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new,no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; import { jsonEntity as JSONEntity } from '../jhipster/index.js'; diff --git a/jdl/jhipster/relationship-options.spec.ts b/jdl/jhipster/relationship-options.spec.ts index 7f85c0770d52..a8a924129ab5 100644 --- a/jdl/jhipster/relationship-options.spec.ts +++ b/jdl/jhipster/relationship-options.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ - import { it, describe } from 'esmocha'; import { expect } from 'chai'; import { relationshipOptions } from '../jhipster/index.js'; diff --git a/jdl/jhipster/relationship-types.spec.ts b/jdl/jhipster/relationship-types.spec.ts index 83b7610cb021..dd8681e5f54e 100644 --- a/jdl/jhipster/relationship-types.spec.ts +++ b/jdl/jhipster/relationship-types.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; import { relationshipTypes } from '../jhipster/index.js'; diff --git a/jdl/jhipster/reserved-keywords.spec.ts b/jdl/jhipster/reserved-keywords.spec.ts index 71ec4c332cb6..efa8a1918981 100644 --- a/jdl/jhipster/reserved-keywords.spec.ts +++ b/jdl/jhipster/reserved-keywords.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; import { reservedKeywords } from '../jhipster/index.js'; diff --git a/jdl/jhipster/unary-options.spec.ts b/jdl/jhipster/unary-options.spec.ts index ffb3dc7b4fcb..71a688e7d069 100644 --- a/jdl/jhipster/unary-options.spec.ts +++ b/jdl/jhipster/unary-options.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; import { unaryOptions } from '../jhipster/index.js'; diff --git a/jdl/jhipster/validations.spec.ts b/jdl/jhipster/validations.spec.ts index 386e8a83909f..cfa6ddb84a4f 100644 --- a/jdl/jhipster/validations.spec.ts +++ b/jdl/jhipster/validations.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; import { validations } from '../jhipster/index.js'; diff --git a/jdl/linters/jdl-linter.spec.ts b/jdl/linters/jdl-linter.spec.ts index 8638dcb9ff1c..2ab68707104b 100644 --- a/jdl/linters/jdl-linter.spec.ts +++ b/jdl/linters/jdl-linter.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ - import { writeFileSync } from 'fs'; import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; diff --git a/jdl/linters/rules.spec.ts b/jdl/linters/rules.spec.ts index 5dc4cf3f1d5f..a0f4b458e41e 100644 --- a/jdl/linters/rules.spec.ts +++ b/jdl/linters/rules.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; @@ -37,7 +36,7 @@ describe('jdl - Rules', () => { expect(getRule('toto')).to.be.undefined; }); }); - (Object.keys(rulesNames) as Array).forEach(ruleName => { + (Object.keys(rulesNames) as (keyof typeof rulesNames)[]).forEach(ruleName => { describe(`for rule name ${ruleName}`, () => { it('should return the corresponding rule', () => { expect(getRule(ruleName)).to.deep.equal(rules[ruleName]); diff --git a/jdl/models/abstract-jdl-option.spec.ts b/jdl/models/abstract-jdl-option.spec.ts index f3f9c98d4024..20d926d35517 100644 --- a/jdl/models/abstract-jdl-option.spec.ts +++ b/jdl/models/abstract-jdl-option.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect } from 'esmocha'; import JDLBinaryOption from '../models/jdl-binary-option.js'; import { binaryOptions } from '../jhipster/index.js'; diff --git a/jdl/models/index.ts b/jdl/models/index.ts index bb74ae7a39a4..41a9effd667a 100644 --- a/jdl/models/index.ts +++ b/jdl/models/index.ts @@ -16,6 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// eslint-disable-next-line import/prefer-default-export + export { default as JDLEntity } from './jdl-entity.js'; export { default as JDLEnum } from './jdl-enum.js'; diff --git a/jdl/models/jdl-application-configuration-factory.ts b/jdl/models/jdl-application-configuration-factory.ts index 28e5375c8986..da85553c46b9 100644 --- a/jdl/models/jdl-application-configuration-factory.ts +++ b/jdl/models/jdl-application-configuration-factory.ts @@ -43,7 +43,7 @@ export default function createApplicationConfigurationFromObject(configurationOb export function createApplicationNamespaceConfigurationFromObject( parsedNamespaceConfigs: Record> = {}, -): Array { +): JDLApplicationConfiguration[] { return Object.entries(parsedNamespaceConfigs).map(([namespace, parsedConfig]) => { const configuration = new JDLApplicationConfiguration(namespace); for (const [optionName, optionValue] of Object.entries(parsedConfig)) { diff --git a/jdl/models/jdl-application-configuration.spec.ts b/jdl/models/jdl-application-configuration.spec.ts index 411dfa68cf55..b548e96aa0dc 100644 --- a/jdl/models/jdl-application-configuration.spec.ts +++ b/jdl/models/jdl-application-configuration.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-application-definition.spec.ts b/jdl/models/jdl-application-definition.spec.ts index 7a9b76965936..fde297440ef3 100644 --- a/jdl/models/jdl-application-definition.spec.ts +++ b/jdl/models/jdl-application-definition.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-application.spec.ts b/jdl/models/jdl-application.spec.ts index 71054c533cc7..5bfcda786592 100644 --- a/jdl/models/jdl-application.spec.ts +++ b/jdl/models/jdl-application.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-application.ts b/jdl/models/jdl-application.ts index db0a0b996634..2fbbf4b9141b 100644 --- a/jdl/models/jdl-application.ts +++ b/jdl/models/jdl-application.ts @@ -28,7 +28,7 @@ import AbstractJDLOption from './abstract-jdl-option.js'; export default class JDLApplication { config: JDLApplicationConfiguration; - namespaceConfigs: Array; + namespaceConfigs: JDLApplicationConfiguration[]; entityNames: JDLApplicationEntities; options: JDLOptions; @@ -116,7 +116,7 @@ export default class JDLApplication { } toString(): string { - let stringifiedApplication: string = `application { + let stringifiedApplication = `application { ${this.config.toString(2)} ${this.namespaceConfigs.map(config => `${config.toString(2)}\n`).join()}`; if (this.entityNames.size() !== 0) { diff --git a/jdl/models/jdl-binary-option.spec.ts b/jdl/models/jdl-binary-option.spec.ts index 026a3fedba82..15258a02e1ed 100644 --- a/jdl/models/jdl-binary-option.spec.ts +++ b/jdl/models/jdl-binary-option.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; import JDLBinaryOption from '../models/jdl-binary-option.js'; diff --git a/jdl/models/jdl-deployment.spec.ts b/jdl/models/jdl-deployment.spec.ts index f9be8af0a061..70c8620c0a08 100644 --- a/jdl/models/jdl-deployment.spec.ts +++ b/jdl/models/jdl-deployment.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect } from 'esmocha'; import JDLDeployment from '../models/jdl-deployment.js'; diff --git a/jdl/models/jdl-deployment.ts b/jdl/models/jdl-deployment.ts index 72ff849df59e..ed6502aa244f 100644 --- a/jdl/models/jdl-deployment.ts +++ b/jdl/models/jdl-deployment.ts @@ -84,5 +84,5 @@ function stringifyOptionValue(name: string, value: any): string { } function defaults(deploymentType: string) { - return (deploymentOptions.Options as any).defaults(deploymentType); + return deploymentOptions.Options.defaults(deploymentType); } diff --git a/jdl/models/jdl-entity.spec.ts b/jdl/models/jdl-entity.spec.ts index 771d44004087..f9c4db5cf69b 100644 --- a/jdl/models/jdl-entity.spec.ts +++ b/jdl/models/jdl-entity.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; import { JDLEntity } from '../models/index.js'; diff --git a/jdl/models/jdl-enum-value.spec.ts b/jdl/models/jdl-enum-value.spec.ts index 9476fdad1f1b..1f849980dbf6 100644 --- a/jdl/models/jdl-enum-value.spec.ts +++ b/jdl/models/jdl-enum-value.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; import JDLEnumValue from '../models/jdl-enum-value.js'; diff --git a/jdl/models/jdl-enum.spec.ts b/jdl/models/jdl-enum.spec.ts index 105349223ec3..bca9a09989da 100644 --- a/jdl/models/jdl-enum.spec.ts +++ b/jdl/models/jdl-enum.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; import { JDLEnum } from '../models/index.js'; diff --git a/jdl/models/jdl-enums.spec.ts b/jdl/models/jdl-enums.spec.ts index da789c5ed4a3..5f68c3ab89c4 100644 --- a/jdl/models/jdl-enums.spec.ts +++ b/jdl/models/jdl-enums.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, after, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; import JDLEnums from '../models/jdl-enums.js'; diff --git a/jdl/models/jdl-field.spec.ts b/jdl/models/jdl-field.spec.ts index a4a4d31787f8..fd41b0bf8404 100644 --- a/jdl/models/jdl-field.spec.ts +++ b/jdl/models/jdl-field.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-object.spec.ts b/jdl/models/jdl-object.spec.ts index d6facc9d735f..580dcbe2f0fa 100644 --- a/jdl/models/jdl-object.spec.ts +++ b/jdl/models/jdl-object.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect as jestExpect, afterEach } from 'esmocha'; import { expect } from 'chai'; import { applicationTypes, binaryOptions, unaryOptions, relationshipTypes } from '../jhipster/index.js'; diff --git a/jdl/models/jdl-options.spec.ts b/jdl/models/jdl-options.spec.ts index e2b16367bd91..28aca2f61b50 100644 --- a/jdl/models/jdl-options.spec.ts +++ b/jdl/models/jdl-options.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ import { before, it, describe, expect as jestExpect, afterEach } from 'esmocha'; import { expect } from 'chai'; import { unaryOptions, binaryOptions } from '../jhipster/index.js'; diff --git a/jdl/models/jdl-relationship.spec.ts b/jdl/models/jdl-relationship.spec.ts index 4ba787179732..44c5c019cfdb 100644 --- a/jdl/models/jdl-relationship.spec.ts +++ b/jdl/models/jdl-relationship.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-relationships.spec.ts b/jdl/models/jdl-relationships.spec.ts index ec66f28d6e20..3671c3d59bdd 100644 --- a/jdl/models/jdl-relationships.spec.ts +++ b/jdl/models/jdl-relationships.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-unary-option.spec.ts b/jdl/models/jdl-unary-option.spec.ts index ddf77f1cebd7..965fec355645 100644 --- a/jdl/models/jdl-unary-option.spec.ts +++ b/jdl/models/jdl-unary-option.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/models/jdl-validation.spec.ts b/jdl/models/jdl-validation.spec.ts index d3c48fbbe245..f6618bb4c7d6 100644 --- a/jdl/models/jdl-validation.spec.ts +++ b/jdl/models/jdl-validation.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; import JDLValidation from '../models/jdl-validation.js'; diff --git a/jdl/models/list-jdl-application-configuration-option.ts b/jdl/models/list-jdl-application-configuration-option.ts index f42454ed5a70..55bca8348fba 100644 --- a/jdl/models/list-jdl-application-configuration-option.ts +++ b/jdl/models/list-jdl-application-configuration-option.ts @@ -24,7 +24,7 @@ export default class ListJDLApplicationConfigurationOption extends JDLApplicatio // TODO for v9, use set everywhere quoted: boolean; - constructor(name: string, value: string[], quoted: boolean = false) { + constructor(name: string, value: string[], quoted = false) { super(name, new Set(value)); this.quoted = quoted; } diff --git a/jdl/parsing/grammar.spec.ts b/jdl/parsing/grammar.spec.ts index c8a472875518..9f781d2e0947 100644 --- a/jdl/parsing/grammar.spec.ts +++ b/jdl/parsing/grammar.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ - import { before, it, describe, expect as jestExpect } from 'esmocha'; import { expect } from 'chai'; import { parseFromContent } from '../readers/jdl-reader.js'; diff --git a/jdl/parsing/lexer/lexer.spec.ts b/jdl/parsing/lexer/lexer.spec.ts index 9e8f7482b09f..3a858d04fc26 100644 --- a/jdl/parsing/lexer/lexer.spec.ts +++ b/jdl/parsing/lexer/lexer.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe } from 'esmocha'; import { expect } from 'chai'; import { JDLLexer } from './lexer.js'; diff --git a/jdl/parsing/self-checks/parsing-system-checker.ts b/jdl/parsing/self-checks/parsing-system-checker.ts index b7b92055f5ce..9921b259bdca 100644 --- a/jdl/parsing/self-checks/parsing-system-checker.ts +++ b/jdl/parsing/self-checks/parsing-system-checker.ts @@ -41,11 +41,11 @@ function getUsedTokens(rules) { function getUselessTokens(usedTokens: any[], allDefinedTokens: any[]) { const usedCategories = uniq(flatMap(usedTokens, 'CATEGORIES')); // TODO: Calling uniq with two parameters is probably a bug. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error + + // @ts-expect-error TODO const notDirectlyUsedTokens = difference(allDefinedTokens, uniq(usedTokens, usedCategories)); const redundant = reject(notDirectlyUsedTokens, token => { - const tokCategories = (token as any).CATEGORIES; + const tokCategories = token.CATEGORIES; return some(tokCategories, category => includes(usedCategories, category)); }); return reject(redundant, tokenType => tokenType.GROUP === Lexer.SKIPPED); diff --git a/jdl/parsing/validator.spec.ts b/jdl/parsing/validator.spec.ts index 9fa1cc796c79..104bf1eee843 100644 --- a/jdl/parsing/validator.spec.ts +++ b/jdl/parsing/validator.spec.ts @@ -16,7 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* eslint-disable no-useless-escape */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/readers/jdl-reader.spec.ts b/jdl/readers/jdl-reader.spec.ts index c6bc3337a6b1..b4efdb5e14c6 100644 --- a/jdl/readers/jdl-reader.spec.ts +++ b/jdl/readers/jdl-reader.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import fs from 'fs'; import path, { dirname } from 'path'; diff --git a/jdl/readers/json-file-reader.spec.ts b/jdl/readers/json-file-reader.spec.ts index 9eb25a17c6b5..b8299cb02263 100644 --- a/jdl/readers/json-file-reader.spec.ts +++ b/jdl/readers/json-file-reader.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import path from 'path'; import { it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/readers/json-reader.spec.ts b/jdl/readers/json-reader.spec.ts index 0db4fe59f631..9f4a6c00625a 100644 --- a/jdl/readers/json-reader.spec.ts +++ b/jdl/readers/json-reader.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { renameSync } from 'fs'; import { join, dirname } from 'path'; import { fileURLToPath } from 'url'; diff --git a/jdl/readers/json-reader.ts b/jdl/readers/json-reader.ts index 3c2e92939b6d..e81fef51960c 100644 --- a/jdl/readers/json-reader.ts +++ b/jdl/readers/json-reader.ts @@ -45,15 +45,14 @@ export default function parseFromDir(dir: string): JDLObject { const entityName = file.slice(0, file.length - 5); try { entities.set(entityName, readJSONFile(`${entityDir}/${file}`)); - } catch (error) { + } catch { // Not an entity file, not adding } } }); const applicationOptions = readJSONFile(`${dir}/.yo-rc.json`)['generator-jhipster']; - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error + // @ts-expect-error TODO const jdlObject = convertServerOptionsToJDL(applicationOptions); const convertedJDLObject = convertEntitiesToJDL(entities); return mergeJDLObjects(jdlObject, convertedJDLObject); diff --git a/jdl/utils/file-utils.ts b/jdl/utils/file-utils.ts index 10ffe40de7c5..d16b9d7a93fe 100644 --- a/jdl/utils/file-utils.ts +++ b/jdl/utils/file-utils.ts @@ -58,7 +58,7 @@ export function createFolderIfItDoesNotExist(directory: string) { function getStatObject(file: string) { try { return fs.statSync(file); - } catch (error) { + } catch { return false; } } diff --git a/jdl/utils/files-utils.spec.ts b/jdl/utils/files-utils.spec.ts index cc434c56e7bb..13665cd6565a 100644 --- a/jdl/utils/files-utils.spec.ts +++ b/jdl/utils/files-utils.spec.ts @@ -17,8 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-unused-expressions */ - import fs from 'fs'; import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; diff --git a/jdl/utils/format-utils.spec.ts b/jdl/utils/format-utils.spec.ts index 3a6c7285c0e9..46ad90b3ef22 100644 --- a/jdl/utils/format-utils.spec.ts +++ b/jdl/utils/format-utils.spec.ts @@ -17,10 +17,9 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { it, describe } from 'esmocha'; import { expect } from 'chai'; -import formatComment from '../utils/format-utils.js'; +import { formatComment } from '../utils/format-utils.js'; describe('jdl - FormatUtils', () => { describe('formatComment', () => { diff --git a/jdl/utils/object-utils.spec.ts b/jdl/utils/object-utils.spec.ts index 7424c9f444eb..5799c87049ad 100644 --- a/jdl/utils/object-utils.spec.ts +++ b/jdl/utils/object-utils.spec.ts @@ -17,7 +17,6 @@ * limitations under the License. */ -/* eslint-disable no-new, no-unused-expressions */ import { before, it, describe, after } from 'esmocha'; import { expect } from 'chai'; import { areEntitiesEqual, merge } from '../utils/object-utils.js'; diff --git a/jdl/utils/string_utils.spec.ts b/jdl/utils/string_utils.spec.ts index 23cbf3db002a..432593e81a6f 100644 --- a/jdl/utils/string_utils.spec.ts +++ b/jdl/utils/string_utils.spec.ts @@ -18,7 +18,7 @@ */ /* define global expect */ -/* eslint-disable no-new, no-unused-expressions */ + import { it, describe } from 'esmocha'; import { expect } from 'chai'; diff --git a/jdl/validators/jdl-with-application-validator.spec.ts b/jdl/validators/jdl-with-application-validator.spec.ts index dd8d371163b4..7f5114bec4c5 100644 --- a/jdl/validators/jdl-with-application-validator.spec.ts +++ b/jdl/validators/jdl-with-application-validator.spec.ts @@ -327,14 +327,14 @@ describe('jdl - JDLWithApplicationValidator', () => { jdlObject.addOption( new JDLBinaryOption({ name: binaryOptions.Options.DTO, - value: binaryOptions.Values.dto.MAPSTRUCT!, + value: binaryOptions.Values.dto.MAPSTRUCT, entityNames: new Set(['A', 'B', 'C']), }), ); jdlObject.addOption( new JDLBinaryOption({ name: binaryOptions.Options.SERVICE, - value: binaryOptions.Values.service.SERVICE_CLASS!, + value: binaryOptions.Values.service.SERVICE_CLASS, entityNames: new Set(['B']), }), ); @@ -378,14 +378,14 @@ describe('jdl - JDLWithApplicationValidator', () => { jdlObject.addOption( new JDLBinaryOption({ name: binaryOptions.Options.DTO, - value: binaryOptions.Values.dto.MAPSTRUCT!, + value: binaryOptions.Values.dto.MAPSTRUCT, entityNames: new Set(['A', 'B']), }), ); jdlObject.addOption( new JDLBinaryOption({ name: binaryOptions.Options.SERVICE, - value: binaryOptions.Values.service.SERVICE_CLASS!, + value: binaryOptions.Values.service.SERVICE_CLASS, excludedNames: new Set(['C']), }), ); diff --git a/jdl/validators/jdl-without-application-validator.spec.ts b/jdl/validators/jdl-without-application-validator.spec.ts index 54f296e82562..6b35d5c06b67 100644 --- a/jdl/validators/jdl-without-application-validator.spec.ts +++ b/jdl/validators/jdl-without-application-validator.spec.ts @@ -316,7 +316,7 @@ describe('jdl - JDLWithoutApplicationValidator', () => { jdlObject.addOption( new JDLBinaryOption({ name: binaryOptions.Options.PAGINATION, - value: binaryOptions.Values.pagination.PAGINATION!, + value: binaryOptions.Values.pagination.PAGINATION, }), ); validator = createValidator(jdlObject, { databaseType: databaseTypes.CASSANDRA }); diff --git a/lib/eslint/base.js b/lib/eslint/base.js index db61a6c2e3ec..6746f13dee26 100644 --- a/lib/eslint/base.js +++ b/lib/eslint/base.js @@ -1,28 +1,33 @@ import unusedImports from 'eslint-plugin-unused-imports'; import imports from 'eslint-plugin-import'; +import { fixupPluginRules } from '@eslint/compat'; -export const baseRules = { - 'no-unused-vars': 'off', - 'import/no-duplicates': 'error', - 'import/order': 'error', - 'unused-imports/no-unused-imports': 'error', - 'unused-imports/no-unused-vars': [ - 'warn', - { - vars: 'all', - varsIgnorePattern: '^_', - args: 'after-used', - argsIgnorePattern: '^_', - }, - ], -}; - +/** + * @type {import('typescript-eslint').ConfigWithExtends} + * + * Config applied to transformed source in generation process. + * Rules must be compatible with auto fix to be applied. + */ const baseConfig = { plugins: { 'unused-imports': unusedImports, - import: imports, + import: fixupPluginRules(imports), + }, + rules: { + 'no-unused-vars': 'off', + 'import/no-duplicates': 'error', + 'import/order': 'error', + 'unused-imports/no-unused-imports': 'error', + 'unused-imports/no-unused-vars': [ + 'warn', + { + vars: 'all', + varsIgnorePattern: '^_', + args: 'after-used', + argsIgnorePattern: '^_', + }, + ], }, - rules: baseRules, }; export default baseConfig; diff --git a/lib/eslint/index.js b/lib/eslint/index.js new file mode 100644 index 000000000000..e37e1df4a7e8 --- /dev/null +++ b/lib/eslint/index.js @@ -0,0 +1,6 @@ +import recommended from './recommended.js'; +import base from './base.js'; + +recommended.recommended = recommended; + +export default { ...recommended, recommended, base }; diff --git a/lib/eslint/recommended.ts b/lib/eslint/recommended.js similarity index 87% rename from lib/eslint/recommended.ts rename to lib/eslint/recommended.js index 741e6764f972..f103b2073ca0 100644 --- a/lib/eslint/recommended.ts +++ b/lib/eslint/recommended.js @@ -1,6 +1,7 @@ import js from '@eslint/js'; import baseConfig from './base.js'; +/** @type {import('typescript-eslint').ConfigWithExtends} */ const recommended = { languageOptions: { ecmaVersion: 2022, diff --git a/lib/index.ts b/lib/index.ts index f945a95b5ab4..9815d74355c2 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -15,5 +15,4 @@ export const getPackageRoot = (relativePath?: string) => { return relativePath ? join(packageDirectory, relativePath) : packageDirectory; }; -// eslint-disable-next-line import/prefer-default-export export const packageJson = JSON.parse(readFileSync(getPackageRoot('package.json')).toString()); diff --git a/lib/internal/config-def.ts b/lib/internal/config-def.ts index 63e02d783ada..9a4c01bc02ff 100644 --- a/lib/internal/config-def.ts +++ b/lib/internal/config-def.ts @@ -26,7 +26,6 @@ export function loadConfig( let source = config; if (!source) { if (def.scope === 'generator') { - // eslint-disable-next-line @typescript-eslint/no-this-alias source = this; } else if (def.scope === 'blueprint') { source = (this as any).blueprintStorage.getAll(); diff --git a/package-lock.json b/package-lock.json index 4f0adfe482a0..8a869a1385b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,12 @@ "version": "8.6.0", "license": "Apache-2.0", "dependencies": { + "@eslint/compat": "1.1.1", "@eslint/js": "9.8.0", "@faker-js/faker": "8.4.1", "@iarna/toml": "3.0.0", "@types/ejs": "3.1.5", "@types/lodash": "4.17.6", - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", "@yeoman/adapter": "1.4.0", "@yeoman/conflicter": "2.0.0", "@yeoman/namespace": "1.0.0", @@ -31,12 +30,13 @@ "dockerfile-ast": "0.6.1", "dot-properties": "1.0.1", "ejs": "3.1.10", - "eslint": "8.57.0", + "eslint": "9.8.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-unused-imports": "3.2.0", + "eslint-plugin-unused-imports": "4.0.1", "execa": "9.3.0", "fast-xml-parser": "4.4.1", "glob": "10.4.2", + "globals": "15.9.0", "isbinaryfile": "5.0.2", "java-lint": "0.3.0", "js-yaml": "4.1.0", @@ -61,6 +61,7 @@ "sort-keys": "5.0.0", "type-fest": "4.23.0", "typescript": "5.4.5", + "typescript-eslint": "8.0.1", "winston": "3.13.1", "yaml": "2.5.0", "yeoman-environment": "4.4.1", @@ -79,8 +80,8 @@ "cpy-cli": "5.0.0", "ejs-lint": "2.0.0", "eslint-config-prettier": "9.1.0", + "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-chai-friendly": "1.0.1", - "eslint-plugin-mocha": "10.5.0", "eslint-plugin-prettier": "5.2.1", "esmocha": "1.2.0", "jest-extended": "4.0.2", @@ -1164,16 +1165,56 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/compat": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.1.1.tgz", + "integrity": "sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "license": "MIT", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -1181,7 +1222,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1191,7 +1232,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1207,23 +1247,31 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1240,6 +1288,14 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@faker-js/faker": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.4.1.tgz", @@ -1266,43 +1322,6 @@ "node": ">=14" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -1316,12 +1335,17 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "license": "BSD-3-Clause" + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@iarna/toml": { "version": "3.0.0", @@ -3176,31 +3200,30 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.1.tgz", + "integrity": "sha512-5g3Y7GDFsJAnY4Yhvk8sZtFfV6YNF2caLzjrRPUBzewjPCaj0yokePB4LJSobyCzGMzjZZYFbwuzbfDHlimXbQ==", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.0.1", + "@typescript-eslint/type-utils": "8.0.1", + "@typescript-eslint/utils": "8.0.1", + "@typescript-eslint/visitor-keys": "8.0.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3209,26 +3232,25 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", - "license": "BSD-2-Clause", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.0.1.tgz", + "integrity": "sha512-5IgYJ9EO/12pOUwiBKFkpU7rS3IU21mtXzB81TNwq2xEybcmAZrE9qwDtsb5uQd9aVO9o0fdabFyAmKveXyujg==", "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.0.1", + "@typescript-eslint/types": "8.0.1", + "@typescript-eslint/typescript-estree": "8.0.1", + "@typescript-eslint/visitor-keys": "8.0.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3237,16 +3259,15 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.1.tgz", + "integrity": "sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ==", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.0.1", + "@typescript-eslint/visitor-keys": "8.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3254,26 +3275,22 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.0.1.tgz", + "integrity": "sha512-+/UT25MWvXeDX9YaHv1IS6KI1fiuTto43WprE7pgSMswHbn1Jm9GEM4Txp+X74ifOWV8emu2AWcbLhpJAvD5Ng==", "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/typescript-estree": "8.0.1", + "@typescript-eslint/utils": "8.0.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^8.56.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -3281,12 +3298,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.1.tgz", + "integrity": "sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw==", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3294,13 +3310,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "license": "BSD-2-Clause", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.1.tgz", + "integrity": "sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w==", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.0.1", + "@typescript-eslint/visitor-keys": "8.0.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3309,7 +3324,7 @@ "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3322,50 +3337,42 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.1.tgz", + "integrity": "sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA==", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@typescript-eslint/scope-manager": "8.0.1", + "@typescript-eslint/types": "8.0.1", + "@typescript-eslint/typescript-estree": "8.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.1.tgz", + "integrity": "sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ==", "dependencies": { - "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/types": "8.0.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "license": "ISC" - }, "node_modules/@yeoman/adapter": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@yeoman/adapter/-/adapter-1.4.0.tgz", @@ -3512,7 +3519,6 @@ "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3524,7 +3530,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -3754,7 +3759,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", "engines": { "node": ">=8" } @@ -4294,7 +4298,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", "engines": { "node": ">=6" } @@ -5269,18 +5272,6 @@ "node": "*" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dot-prop": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", @@ -5450,6 +5441,19 @@ "node": ">=0.10.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -5686,41 +5690,36 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "license": "MIT", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.8.0.tgz", + "integrity": "sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.8.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -5734,10 +5733,10 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" } }, "node_modules/eslint-config-prettier": { @@ -5773,6 +5772,31 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, "node_modules/eslint-module-utils": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", @@ -5895,24 +5919,6 @@ "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-mocha": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", - "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-utils": "^3.0.0", - "globals": "^13.24.0", - "rambda": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, "node_modules/eslint-plugin-prettier": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", @@ -5945,19 +5951,18 @@ } }, "node_modules/eslint-plugin-unused-imports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz", - "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==", - "license": "MIT", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.0.1.tgz", + "integrity": "sha512-rax76s05z64uQgG9YXsWFmXrgjkaK79AvfeAWiSxhPP6RVGxeRaj4+2u+wxxu/mDy2pmJoOy1QTOEALMia2xGQ==", "dependencies": { "eslint-rule-composer": "^0.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "6 - 7", - "eslint": "8" + "@typescript-eslint/eslint-plugin": "^8.0.0-0", + "eslint": "^9.0.0" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -5975,50 +5980,20 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "license": "BSD-2-Clause", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -6031,15 +6006,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6115,6 +6081,17 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6361,17 +6338,27 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -6407,7 +6394,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -6648,15 +6634,14 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "license": "MIT", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-type": { @@ -6762,83 +6747,21 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "license": "MIT", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "license": "ISC" + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, "node_modules/fly-import": { "version": "0.4.0", @@ -6944,6 +6867,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, "license": "ISC" }, "node_modules/fsevents": { @@ -7174,27 +7098,11 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7220,7 +7128,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -7240,7 +7147,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", "engines": { "node": ">=8" } @@ -7303,8 +7209,7 @@ "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "license": "MIT" + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/grouped-queue": { "version": "2.0.0", @@ -7551,7 +7456,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7598,6 +7502,7 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -11258,7 +11163,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -11342,6 +11246,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -11791,13 +11696,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rambda": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", - "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "dev": true, - "license": "MIT" - }, "node_modules/randexp": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", @@ -12217,7 +12115,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", "engines": { "node": ">=4" } @@ -13127,6 +13024,15 @@ "acorn-node": "^1.2.0" } }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -13428,7 +13334,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "license": "MIT", "engines": { "node": ">=16" }, @@ -13610,6 +13515,28 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.0.1.tgz", + "integrity": "sha512-V3Y+MdfhawxEjE16dWpb7/IOgeXnLwAEEkS7v8oDqNcR1oYlqWhGH/iHqHdKVdpWme1VPZ0SoywXAkCqawj2eQ==", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.0.1", + "@typescript-eslint/parser": "8.0.1", + "@typescript-eslint/utils": "8.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", diff --git a/package.json b/package.json index ae644434b6f6..9ec7ca68797b 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,8 @@ }, "./package.json": "./package.json", "./eslint/recommended": { - "types": "./dist/types/lib/eslint/recommended.d.ts", - "default": "./dist/lib/eslint/recommended.js" + "types": "./dist/types/lib/eslint/index.d.ts", + "default": "./dist/lib/eslint/index.js" }, "./generators": { "types": "./dist/types/generators/generator-list.d.ts", @@ -101,7 +101,7 @@ "copy-files": "cpy \"jdl/*.json\" \"dist/jdl\" && cpy \"generators/**\" \"!**/*.(js|cjs|mjs|ts|cts|mts|snap)\" \"!**/__*/*\" dist/generators", "copy-types": "cpy \"generators/**/*.d.(|c|m)ts\" dist/types/generators && cpy \"jdl/**/*.d.(|c|m)ts\" dist/types/jdl", "ejslint": "ejslint generators/**/*.ejs", - "eslint": "eslint . --ext .js,.cjs,.mjs,.ts,.cts,.mts --max-warnings 5", + "eslint": "eslint . --max-warnings 5", "jdl:test": "esmocha jdl --no-insight --forbid-only -p", "jdl:test-watch": "npm run jdl:test -- --watch", "jsdoc": "jsdoc --configure jsdoc-conf.json", @@ -117,13 +117,12 @@ "update-snapshots": "esmocha jdl generators cli --update-snapshot --no-insight --forbid-only" }, "dependencies": { + "@eslint/compat": "1.1.1", "@eslint/js": "9.8.0", "@faker-js/faker": "8.4.1", "@iarna/toml": "3.0.0", "@types/ejs": "3.1.5", "@types/lodash": "4.17.6", - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", "@yeoman/adapter": "1.4.0", "@yeoman/conflicter": "2.0.0", "@yeoman/namespace": "1.0.0", @@ -139,12 +138,13 @@ "dockerfile-ast": "0.6.1", "dot-properties": "1.0.1", "ejs": "3.1.10", - "eslint": "8.57.0", + "eslint": "9.8.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-unused-imports": "3.2.0", + "eslint-plugin-unused-imports": "4.0.1", "execa": "9.3.0", "fast-xml-parser": "4.4.1", "glob": "10.4.2", + "globals": "15.9.0", "isbinaryfile": "5.0.2", "java-lint": "0.3.0", "js-yaml": "4.1.0", @@ -169,6 +169,7 @@ "sort-keys": "5.0.0", "type-fest": "4.23.0", "typescript": "5.4.5", + "typescript-eslint": "8.0.1", "winston": "3.13.1", "yaml": "2.5.0", "yeoman-environment": "4.4.1", @@ -184,8 +185,8 @@ "cpy-cli": "5.0.0", "ejs-lint": "2.0.0", "eslint-config-prettier": "9.1.0", + "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-chai-friendly": "1.0.1", - "eslint-plugin-mocha": "10.5.0", "eslint-plugin-prettier": "5.2.1", "esmocha": "1.2.0", "jest-extended": "4.0.2", @@ -214,5 +215,10 @@ "type": "opencollective", "url": "https://opencollective.com/generator-jhipster", "logo": "https://opencollective.com/opencollective/logo.txt" + }, + "overrides": { + "eslint-plugin-import": { + "eslint": "$eslint" + } } } diff --git a/test-integration/scripts/99-write-matrix.js b/test-integration/scripts/99-write-matrix.js index dbd0c9981b03..d733b73617dc 100755 --- a/test-integration/scripts/99-write-matrix.js +++ b/test-integration/scripts/99-write-matrix.js @@ -17,7 +17,8 @@ const MATRIX_FILE = 'matrix.json'; let existing = {}; try { existing = JSON.parse(readFileSync(MATRIX_FILE)); -} catch (_) { +} catch { + // eslint-disable-next-line no-console console.log(`File ${MATRIX_FILE} not found`); existing = { include: [] }; } @@ -67,6 +68,7 @@ writeFileSync( }; }); } catch (error) { + // eslint-disable-next-line no-console console.log(`File ${file} not found`, error); return []; } diff --git a/test/api.spec.js b/test/api.spec.js index 9a37528b952e..ad225dd6fa3a 100644 --- a/test/api.spec.js +++ b/test/api.spec.js @@ -20,7 +20,6 @@ import { it, describe, expect } from 'esmocha'; describe('public api', () => { it('generator-jhipster/generators should match snapshot', async () => { - // eslint-disable-next-line import/no-unresolved expect(await import('generator-jhipster/generators')).toMatchSnapshot(); }); diff --git a/test/integration-test.spec.ts b/test/integration-test.spec.ts index d7eadae0de9d..1a26c85cd599 100644 --- a/test/integration-test.spec.ts +++ b/test/integration-test.spec.ts @@ -157,7 +157,7 @@ describe('integration-test', () => { }); describe('::entities samples reproducibility', () => { - const changelogDates = []; + const changelogDates: string[] = []; for (const [name, entitySample] of itEntitiesSamplesEntries) { let entityJson = readJsonSync(entitySample); before(() => { diff --git a/test/needle-api/needle-client-react-generator.spec.ts b/test/needle-api/needle-client-react-generator.spec.ts index 12ea6c67625e..5f4df3d61c97 100644 --- a/test/needle-api/needle-client-react-generator.spec.ts +++ b/test/needle-api/needle-client-react-generator.spec.ts @@ -1,5 +1,5 @@ -import { before, it, describe } from 'esmocha'; -import { basicHelpers as helpers, result as runResult, getGenerator } from '../../testing/index.js'; +import { before, describe, it } from 'esmocha'; +import { getGenerator, defaultHelpers as helpers, result as runResult } from '../../testing/index.js'; import { CLIENT_MAIN_SRC_DIR } from '../../generators/generator-constants.js'; import { clientFrameworkTypes } from '../../jdl/jhipster/index.js'; import ReactGenerator from '../../generators/react/index.js'; @@ -7,7 +7,6 @@ import BaseApplicationGenerator from '../../generators/base-application/index.js const { REACT } = clientFrameworkTypes; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockReactBlueprintSubGen: any = class extends ReactGenerator { constructor(args, opts, features) { super(args, opts, features); diff --git a/test/needle-api/needle-client-react.spec.ts b/test/needle-api/needle-client-react.spec.ts index 8a237df729bc..a6e4587de3e4 100644 --- a/test/needle-api/needle-client-react.spec.ts +++ b/test/needle-api/needle-client-react.spec.ts @@ -7,7 +7,6 @@ import ReactGenerator from '../../generators/react/index.js'; const { REACT } = clientFrameworkTypes; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends ReactGenerator { constructor(args, opts, features) { super(args, opts, features); diff --git a/test/needle-api/needle-client-vue-generator.spec.ts b/test/needle-api/needle-client-vue-generator.spec.ts index 9b92eb2cade3..921da24ee1a9 100644 --- a/test/needle-api/needle-client-vue-generator.spec.ts +++ b/test/needle-api/needle-client-vue-generator.spec.ts @@ -8,7 +8,6 @@ import BaseApplicationGenerator from '../../generators/base-application/index.js const { VUE } = clientFrameworkTypes; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends VueGenerator { constructor(args, opts, features) { super(args, opts, features); diff --git a/test/needle-api/needle-client-vue.spec.ts b/test/needle-api/needle-client-vue.spec.ts index f3f230a5b354..7cc11ad5228a 100644 --- a/test/needle-api/needle-client-vue.spec.ts +++ b/test/needle-api/needle-client-vue.spec.ts @@ -6,7 +6,6 @@ import { clientFrameworkTypes } from '../../jdl/jhipster/index.js'; const { VUE } = clientFrameworkTypes; -// eslint-disable-next-line @typescript-eslint/no-explicit-any const mockBlueprintSubGen: any = class extends ClientGenerator { constructor(args, opts, features) { super(args, opts, features); diff --git a/testing/helpers.ts b/testing/helpers.ts index 1b2b4705fccc..a462ce8f25fe 100644 --- a/testing/helpers.ts +++ b/testing/helpers.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-classes-per-file */ import { basename, dirname, join } from 'path'; import { fileURLToPath } from 'url'; import { merge, set, snakeCase } from 'lodash-es'; @@ -185,7 +184,7 @@ class JHipsterRunContext extends RunContext { }); } - withGenerateWorkspaceApplications(generateWorkspaces: boolean = false): this { + withGenerateWorkspaceApplications(generateWorkspaces = false): this { return this.onBeforePrepare(() => { this.generateApplicationsSet = true; this.withOptions({ generateApplications: true, workspacesFolders: this.workspaceApplications, workspaces: generateWorkspaces }); @@ -308,13 +307,13 @@ plugins { Object.entries(this.sharedSource).map(([name, fn]) => [name, fn.mock.calls.map(args => args[0])]), ); if (sourceCallsArg.addEntitiesToClient) { - sourceCallsArg.addEntitiesToClient = (sourceCallsArg.addEntitiesToClient as any).map(({ application, entities }) => ({ + sourceCallsArg.addEntitiesToClient = sourceCallsArg.addEntitiesToClient.map(({ application, entities }) => ({ application: `Application[${application.baseName}]`, entities: entities.map(entity => `Entity[${entity.name}]`), })); } if (sourceCallsArg.addEntityToCache) { - sourceCallsArg.addEntityToCache = (sourceCallsArg.addEntityToCache as any).map(({ relationships, ...fields }) => ({ + sourceCallsArg.addEntityToCache = sourceCallsArg.addEntityToCache.map(({ relationships, ...fields }) => ({ ...fields, relationships: relationships.map(rel => `Relationship[${rel.relationshipName}]`), })); diff --git a/testing/support/client-samples.ts b/testing/support/client-samples.ts index 5afeae21506c..270a124a15ac 100644 --- a/testing/support/client-samples.ts +++ b/testing/support/client-samples.ts @@ -24,5 +24,4 @@ export const buildClientSamples = (commonConfig?: Record): Reco return buildSamplesFromMatrix(clientMatrix, { commonConfig }); }; -// eslint-disable-next-line import/prefer-default-export export const clientSamples = buildClientSamples(); diff --git a/testing/support/server-samples.ts b/testing/support/server-samples.ts index 96f305db624e..6b68c4a214a9 100644 --- a/testing/support/server-samples.ts +++ b/testing/support/server-samples.ts @@ -1,7 +1,6 @@ import { MatrixMonolith, MatrixMicroservice, MatrixGateway } from './application-samples.js'; import { fromMatrix, extendMatrix, extendFilteredMatrix, buildSamplesFromMatrix } from './matrix-utils.js'; -// eslint-disable-next-line import/prefer-default-export export const buildServerMatrix = (matrix: Record = {}) => { let serverMatrix = { ...fromMatrix({ diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 000000000000..c85b9bbac31f --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,8 @@ +{ + "exclude": [], + "extends": "./tsconfig.spec.json", + "compilerOptions": { + "noEmit": false, + "types": [] + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json index 78ff50dcc4f4..654337ac9f36 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -1,14 +1,11 @@ { - "include": ["cli/**/*", "generators/**/*", "jdl/**/*", "lib/**/*", "testing/**/*"], + "include": ["cli/**/*", "generators/**/*", "jdl/**/*", "lib/**/*", "testing/**/*", "test/**/*", ".blueprint/**/*"], "exclude": [ - "generators/base-application/*.spec.*", - "generators/base-core/*.spec.*", + "generators/base-application/generator.spec.*", + "generators/base-core/generator-core.spec.*", "generators/base/**/*.spec.*", - "generators/base-application/*.spec.*", - "generators/bootstrap-application/*.spec.*", - "generators/bootstrap-application-base/*.spec.*", - "generators/java/generators/domain/*.spec.*", - "generators/server/support/needles.spec.ts" + "generators/server/support/needles.spec.ts", + "test/needle-api/**" ], "extends": "./tsconfig.json", "compilerOptions": {