diff --git a/generators/migrate/constants.js b/generators/migrate/constants.js index cddcc55..f10e362 100644 --- a/generators/migrate/constants.js +++ b/generators/migrate/constants.js @@ -2,6 +2,8 @@ import { dirname } from 'path'; import untildify from 'untildify'; import { fileURLToPath } from 'url'; +export const V7_NODE = '16.20.2'; + export const BASE_APPLICATION = 'source'; export const ACTUAL_APPLICATION = 'actual'; diff --git a/generators/migrate/generator.js b/generators/migrate/generator.js index 4e86c49..6cc20ad 100644 --- a/generators/migrate/generator.js +++ b/generators/migrate/generator.js @@ -6,7 +6,7 @@ import { transform } from 'p-transform'; import { globby } from 'globby'; import semver from 'semver'; import gitignore from 'parse-gitignore'; -import { join, resolve } from 'path'; +import { join } from 'path'; import latestVersion from 'latest-version'; import { loadFile } from 'mem-fs'; import { setModifiedFileState } from 'mem-fs-editor/state'; @@ -14,6 +14,7 @@ import { createCommitTransform } from 'mem-fs-editor/transform'; import ora from 'ora'; import { ResetMode } from 'simple-git'; import BaseGenerator from 'generator-jhipster/generators/base-application'; +import getNode from 'get-node'; import { createPrettierTransform, createESLintTransform, @@ -35,6 +36,7 @@ import { GIT_DRIVER_PACKAGEJSON_REF, ACTUAL_APPLICATION, BASE_APPLICATION, + V7_NODE, } from './constants.js'; import { GENERATOR_JHIPSTER } from 'generator-jhipster'; import command from './command.js'; @@ -472,7 +474,7 @@ export default class extends BaseGenerator { } async rmRf(file) { - const absolutePath = resolve(file); + const absolutePath = this.destinationPath(file); if (this.verbose) { this.log.verboseInfo(`Removing ${absolutePath}`); } @@ -497,9 +499,12 @@ export default class extends BaseGenerator { } async regenerate({ cli, jhipsterVersion, blueprints, type, cliOptions }) { - const spinner = this.verbose ? undefined : ora(`regenerating ${chalk.yellow(type)} application`); + const regenerateMessage = `regenerating ${chalk.yellow(type)} application using JHipster ${jhipsterVersion}`; + const spinner = this.verbose ? undefined : ora(regenerateMessage); + const packageJsonJHipsterVersion = this.getPackageJsonVersion(); + let requiresManualNode16; if (this.verbose) { - this.log.info(`regenerating ${chalk.yellow(type)} application`); + this.log.info(regenerateMessage); } cliOptions = [...cliOptions, ...DEFAULT_CLI_OPTIONS.split(' ')]; @@ -509,6 +514,7 @@ export default class extends BaseGenerator { const blueprintInfo = blueprints.length > 0 ? ` and ${blueprints.map(bp => `${bp.name}@${bp.version}`).join(', ')} ` : ''; const message = `JHipster ${jhipsterVersion}${blueprintInfo}`; + let spawnCommandOptions = { ...this.spawnCommandOptions }; if (type === 'target') { await this.removeJHipsterVersion(); } @@ -517,22 +523,29 @@ export default class extends BaseGenerator { if (jhipsterVersion === 'none') { this.log.info(`Running command ${cli} ${cliOptions.join(' ')}`); spinner?.start?.(); - await this.spawn(cli, cliOptions, this.spawnCommandOptions); - } else if (jhipsterVersion === 'current' && this.getPackageJsonVersion()) { - if (this.isV7(this.getPackageJsonVersion())) { + await this.spawn(cli, cliOptions, spawnCommandOptions); + } else if (jhipsterVersion === 'current' && packageJsonJHipsterVersion) { + if (this.isV7(packageJsonJHipsterVersion)) { cliOptions = [...cliOptions, ...DEFAULT_CLI_OPTIONS_V7.split(' ')]; } + cliOptions = [cli, ...cliOptions]; + cli = 'npx'; this.log.info(`Running local npx ${cli} ${cliOptions.join(' ')}`); spinner?.start?.(); await this.spawnCommand('npm install', this.spawnCommandOptions); - await this.spawn('npx', [cli, ...cliOptions], this.spawnCommandOptions); + if (this.isV7(packageJsonJHipsterVersion)) { + const { path: nodePath } = await getNode(V7_NODE); + spawnCommandOptions = { ...spawnCommandOptions, execPath: nodePath, preferLocal: true }; + } + + await this.spawn(cli, cliOptions, spawnCommandOptions); } else if (jhipsterVersion === 'bundled') { - const bundledCli = join(fileURLToPath(new URL('../../cli/cli.cjs', import.meta.url))); + cli = join(fileURLToPath(new URL('../../cli/cli.cjs', import.meta.url))); cliOptions = ['app', ...cliOptions]; this.log.info(`Running bundled ${bundledCli} ${cliOptions.join(' ')}`); spinner?.start?.(); - await this.spawn(bundledCli, cliOptions, this.spawnCommandOptions); + await this.spawn(cli, cliOptions, spawnCommandOptions); } else { if (jhipsterVersion === 'current') { jhipsterVersion = this.getCurrentSourceVersion(); @@ -542,6 +555,17 @@ export default class extends BaseGenerator { } this.log.info(`Running npx ${cli} ${cliOptions.join(' ')}`); + if (this.isV7(jhipsterVersion)) { + requiresManualNode16 = true; + await this.prompt([ + { + type: 'confirm', + name: 'installNode16', + message: `To generate the application using JHipster ${jhipsterVersion}, node 16 is required, install it globally now.`, + }, + ]); + } + spinner?.start?.(); await libexec({ yes: true, @@ -570,13 +594,23 @@ export default class extends BaseGenerator { } } catch (error) { if (spinner) { - spinner.fail(`successfully regenerated ${chalk.yellow(type)} application using ${message}`); + spinner.fail(`failed to regenerate ${chalk.yellow(type)} application using ${message}`); } else { - this.log.error(`successfully regenerated ${chalk.yellow(type)} application using ${message}`); + this.log.error(`failed to regenerate ${chalk.yellow(type)} application using ${message}`); } throw error; } + + if (requiresManualNode16) { + await this.prompt([ + { + type: 'confirm', + name: 'revertNode16', + message: 'Revert node version to the previous one.', + }, + ]); + } } /** diff --git a/generators/migrate/generator.spec.js b/generators/migrate/generator.spec.js index 4915ea1..6adf9ca 100644 --- a/generators/migrate/generator.spec.js +++ b/generators/migrate/generator.spec.js @@ -38,6 +38,10 @@ describe('SubGenerator migrate of migrate JHipster blueprint', () => { it( 'generated git commits to match snapshot', + { + // Git order is not always the same. + retry: 5, + }, async () => { const git = createGit(); const log = await git.log(); @@ -58,10 +62,6 @@ describe('SubGenerator migrate of migrate JHipster blueprint', () => { Initial version of upgradeTest generated by generator-jhipster@undefined" `); }, - { - // Git order is not always the same. - retry: 5, - }, ); it('generated branches to match snapshot', async () => { diff --git a/package-lock.json b/package-lock.json index 1e38527..50b767b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@yeoman/namespace": "^1.0.0", "chalk": "^5.3.0", "generator-jhipster": "8.2.1", + "get-node": "^15.0.0", "globby": "^14.0.1", "latest-version": "^9.0.0", "libnpmexec": "^7.0.8", @@ -3627,6 +3628,31 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "node_modules/all-node-versions": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/all-node-versions/-/all-node-versions-13.0.0.tgz", + "integrity": "sha512-HfGnf0j4oekFwRN1LJgs86pMKb69p/k99tB8CTpVevQHDHiefe+NSvueRSF/5nESoaCInhoAJ9l1dgNuFQxlqg==", + "dependencies": { + "fetch-node-website": "^9.0.0", + "filter-obj": "^5.1.0", + "global-cache-dir": "^6.0.0", + "is-plain-obj": "^4.1.0", + "path-exists": "^5.0.0", + "semver": "^7.5.4", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/all-node-versions/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -3933,6 +3959,11 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -3977,6 +4008,38 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.3.tgz", + "integrity": "sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "streamx": "^2.13.0" + } + }, + "node_modules/bare-os": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.1.tgz", + "integrity": "sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.1.tgz", + "integrity": "sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -4256,6 +4319,14 @@ "node": ">=14.16" } }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -4464,6 +4535,17 @@ "node": ">=8" } }, + "node_modules/cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "dependencies": { + "string-width": "^4.2.3" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/cli-spinners": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", @@ -4698,6 +4780,18 @@ "node": ">=0.1.90" } }, + "node_modules/colors-option": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-6.0.0.tgz", + "integrity": "sha512-HBOITH+ixtQMY0D0mFLkHHbSlYdoN9KGu8vS6bLSYkaJm/bb6JbCNWdHKw71jhYNNf2IVlIe9K0TdACq+8Ztrw==", + "dependencies": { + "chalk": "^5.3.0", + "is-plain-obj": "^4.1.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, "node_modules/colorspace": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", @@ -6181,6 +6275,45 @@ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, + "node_modules/fetch-node-website": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-9.0.0.tgz", + "integrity": "sha512-55q4PFH+9le4Y71DOQJpvi98tOvkELX3X0IjsSj48pnsi4wQFWS3xs7hSnMu+aGYFP9JhMOyn0m6dfE1r5GgSw==", + "dependencies": { + "cli-progress": "^3.12.0", + "colors-option": "^6.0.0", + "figures": "^5.0.0", + "got": "^13.0.0", + "is-plain-obj": "^4.1.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/fetch-node-website/node_modules/got": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/figures": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", @@ -6256,6 +6389,17 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", + "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6837,6 +6981,101 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-node": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/get-node/-/get-node-15.0.0.tgz", + "integrity": "sha512-YPsJQ0N02BJQycGpLwrg516TkA5rfKw3qvXvS3V2+uD26Abgc62rGggWkLWp2/9LsJ9zACnwfO7IUn3pajmMqw==", + "dependencies": { + "execa": "^8.0.1", + "fetch-node-website": "^9.0.0", + "global-cache-dir": "^6.0.0", + "is-plain-obj": "^4.1.0", + "jszip": "^3.10.1", + "mem": "^9.0.2", + "move-file": "^3.0.0", + "node-version-alias": "^5.0.0", + "path-exists": "^5.0.0", + "path-key": "^4.0.0", + "preferred-node-version": "^5.0.0", + "semver": "^7.5.4", + "tar-fs": "^3.0.4", + "tmp-promise": "^3.0.3" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/get-node/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/get-node/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-node/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/get-node/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/get-node/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-node/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -6979,6 +7218,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/global-cache-dir": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-6.0.0.tgz", + "integrity": "sha512-UOwXU6ulg3VQsSyKf0QAVcW4EFq3hFehFHV/ne76iQ9FAw4ZpXHXsmw8AwUueGI13y4apVML/Pb+njilLn/RCw==", + "dependencies": { + "cachedir": "^2.4.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/global-cache-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -7360,6 +7619,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -9263,6 +9527,49 @@ "node": ">=0.6.0" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/just-diff": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", @@ -9375,6 +9682,14 @@ "node": ">=8" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lilconfig": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", @@ -9957,6 +10272,32 @@ "tmpl": "1.0.5" } }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mem": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/mem/-/mem-9.0.2.tgz", + "integrity": "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, "node_modules/mem-fs": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-4.1.0.tgz", @@ -10673,6 +11014,28 @@ "node": ">=10" } }, + "node_modules/move-file": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.1.0.tgz", + "integrity": "sha512-4aE3U7CCBWgrQlQDMq8da4woBWDGHioJFiOZ8Ie6Yq2uwYQ9V2kGhTz4x3u6Wc+OU17nw0yc3rJ/lQ4jIiPe3A==", + "dependencies": { + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/move-file/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10866,6 +11229,30 @@ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, + "node_modules/node-version-alias": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-version-alias/-/node-version-alias-5.0.0.tgz", + "integrity": "sha512-mFI5Yo8ApCP9NsKJ1sFa/GU3RoNqqWlwOsFwibZiuFgNivM6kCk5FrCVZajDm+MSFS/FNODROZws+52JutIdUA==", + "dependencies": { + "all-node-versions": "^13.0.0", + "filter-obj": "^5.1.0", + "is-plain-obj": "^4.1.0", + "normalize-node-version": "^14.0.0", + "path-exists": "^5.0.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/node-version-alias/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/nopt": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", @@ -10880,6 +11267,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/normalize-node-version": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-14.0.0.tgz", + "integrity": "sha512-Tm8aM4xVs0RJad7U/uSAAfpEX6eRLT13hEcWLiFmIlgfWcelALnSiiDql3PH8v3LRtJ1O46zBgXa4Rh5bK9KOA==", + "dependencies": { + "all-node-versions": "^13.0.0", + "filter-obj": "^5.1.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=18.18.0" + } + }, "node_modules/normalize-package-data": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", @@ -11401,6 +11801,14 @@ "node": ">=12.20" } }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", @@ -11543,6 +11951,11 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11879,6 +12292,20 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/preferred-node-version": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/preferred-node-version/-/preferred-node-version-5.0.0.tgz", + "integrity": "sha512-EEr7B/Xl5oeGFdU6JXINfB7i+9kuUeuVRJPj9lhjWiz9j1r/v+SLV0DKQiS8N86AIVb2xyEKCUxLhV/6+6sX8w==", + "dependencies": { + "is-plain-obj": "^4.1.0", + "node-version-alias": "^5.0.0", + "p-locate": "^6.0.0", + "path-type": "^5.0.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -12017,6 +12444,11 @@ "node": ">= 0.6.0" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -13045,6 +13477,11 @@ "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13716,6 +14153,29 @@ "node": ">=10" } }, + "node_modules/tar-fs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -13870,6 +14330,22 @@ "node": ">=0.6.0" } }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/tmp-promise/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "engines": { + "node": ">=14.14" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", diff --git a/package.json b/package.json index fae68a5..00752be 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "@yeoman/namespace": "^1.0.0", "chalk": "^5.3.0", "generator-jhipster": "8.2.1", + "get-node": "^15.0.0", "globby": "^14.0.1", "latest-version": "^9.0.0", "libnpmexec": "^7.0.8",