diff --git a/.github/workflows/backwards-compatibility-test.yml b/.github/workflows/backwards-compatibility-test.yml index b59f5371..c3521be8 100644 --- a/.github/workflows/backwards-compatibility-test.yml +++ b/.github/workflows/backwards-compatibility-test.yml @@ -12,7 +12,12 @@ jobs: node-version: 22 - nx-version: '' node-version: 20 - - nx-version: '' + + - nx-version: 'previous' + node-version: 22 + - nx-version: 'previous' + node-version: 20 + - nx-version: 'previous' node-version: 18 - nx-version: '18.3.5' diff --git a/.github/workflows/basic-test.yml b/.github/workflows/basic-test.yml index 92f72f34..ebf57159 100644 --- a/.github/workflows/basic-test.yml +++ b/.github/workflows/basic-test.yml @@ -39,7 +39,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest] - node-version: [18, 20, 22] + node-version: [20, 22] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index ee5cdbe2..7dfcd6e8 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -7,7 +7,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest] - node-version: [18, 20, 22] + node-version: [20, 22] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.nvmrc b/.nvmrc index 3c032078..209e3ef4 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18 +20 diff --git a/README.md b/README.md index b956851c..3c01ca9e 100644 --- a/README.md +++ b/README.md @@ -227,13 +227,14 @@ For testing: Run through without making any changes. Execute with `--dry-run`, a ## Compatibility overview with Nx -| Version | Nx Workspace Version | -| ------- | ------------------------------------------------ | -| v8.2.0 | `^19.0.0 \|\| ^18.0.0 \|\| ^17.0.0 \|\| ^16.0.0` | -| v8.1.0 | `^18.0.0 \|\| ^17.0.0 \|\| ^16.0.0` | -| v8.0.0 | `^17.0.0 \|\| ^16.0.0` | -| v7.1.0 | `^17.0.0 \|\| ^16.0.0` | -| v7.0.1 | `^16.0.0` | +| Version | Nx Workspace Version | +| ------- | ------------------------------------------------------------- | +| v8.3.0 | `^20.0.0 \|\| ^19.0.0 \|\| ^18.0.0 \|\| ^17.0.0 \|\| ^16.0.0` | +| v8.2.0 | `^19.0.0 \|\| ^18.0.0 \|\| ^17.0.0 \|\| ^16.0.0` | +| v8.1.0 | `^18.0.0 \|\| ^17.0.0 \|\| ^16.0.0` | +| v8.0.0 | `^17.0.0 \|\| ^16.0.0` | +| v7.1.0 | `^17.0.0 \|\| ^16.0.0` | +| v7.0.1 | `^16.0.0` | ## 📁 Configuration File diff --git a/e2e/ngx-deploy-npm-e2e/tests/build.spec.ts b/e2e/ngx-deploy-npm-e2e/tests/build.spec.ts index d98fc862..ebb09d58 100644 --- a/e2e/ngx-deploy-npm-e2e/tests/build.spec.ts +++ b/e2e/ngx-deploy-npm-e2e/tests/build.spec.ts @@ -1,30 +1,17 @@ -import { checkFilesExist, runNxCommand } from '@nx/plugin/testing'; -import { - generateLib, - initNgxDeployNPMProject, - installDependencies, - installNgxDeployNPMProject, -} from '../utils'; +import { checkFilesExist, runNxCommand, uniq } from '@nx/plugin/testing'; +import { setup } from '../utils'; describe('build', () => { - const publishableLib = 'basic-lib'; - const nxPlugin = '@nx/node'; + const buildSetUp = (libName: string) => + setup([{ name: libName, generator: '@nx/node' }]); - initNgxDeployNPMProject(); - installDependencies(nxPlugin); + it('should build the lib due to the `dependsOn` option created on the target', async () => { + const [lib] = await buildSetUp(uniq('basic-lib')); - generateLib(nxPlugin, publishableLib, `--dir="libs"`); - - // Install the project - installNgxDeployNPMProject( - `--project="${publishableLib}" --distFolderPath="dist/libs/${publishableLib}"` - ); - - it('should build the lib due to the `dependsOn` option created on the target', () => { - runNxCommand(`deploy ${publishableLib} --dry-run`); + runNxCommand(`deploy ${lib.name} --dry-run`); expect(() => - checkFilesExist(`dist/libs/${publishableLib}/package.json`) + checkFilesExist(`dist/libs/${lib.name}/package.json`) ).not.toThrow(); }, 120000); }); diff --git a/e2e/ngx-deploy-npm-e2e/tests/install.spec.ts b/e2e/ngx-deploy-npm-e2e/tests/install.spec.ts index 541356bf..0034ab58 100644 --- a/e2e/ngx-deploy-npm-e2e/tests/install.spec.ts +++ b/e2e/ngx-deploy-npm-e2e/tests/install.spec.ts @@ -1,39 +1,27 @@ -import { ProjectConfiguration, TargetConfiguration } from '@nx/devkit'; -import { readJson } from '@nx/plugin/testing'; +import { TargetConfiguration } from '@nx/devkit'; +import { uniq } from '@nx/plugin/testing'; import { DeployExecutorOptions } from '../../../packages/ngx-deploy-npm/src/executors/deploy/schema'; import { npmAccess } from '../../../packages/ngx-deploy-npm/src/core'; -import { - generateLib, - initNgxDeployNPMProject, - installDependencies, - installNgxDeployNPMProject, -} from '../utils'; +import { setup } from '../utils'; -// TODO, migrate to SIFERS describe('install', () => { - const publicLib = 'node-lib1'; - let projectWorkSpacePublicLib: ProjectConfiguration; - - const publicLib2 = 'node-lib2'; - let projectWorkSpacePublicLib2: ProjectConfiguration; - - const restrictedLib = 'node-resctricted'; - let projectWorkSpaceRestrictedLib: ProjectConfiguration; - - const libNOTset = 'node-lib-not-set'; - let projectWorkSpaceLibNOTSet: ProjectConfiguration; - - const expectedTarget = ( - projectName: string, + const expectedTarget = ({ + projectName, isBuildable = true, - access: npmAccess = npmAccess.public - ): TargetConfiguration => { + access = npmAccess.public, + customDistFolderPath, + }: { + projectName: string; + isBuildable?: boolean; + access?: npmAccess; + customDistFolderPath?: string; + }): TargetConfiguration => { const target: TargetConfiguration = { executor: 'ngx-deploy-npm:deploy', options: { - distFolderPath: `dist/libs/${projectName}`, - access: access, + distFolderPath: customDistFolderPath || `dist/libs/${projectName}`, + access, }, }; @@ -44,54 +32,44 @@ describe('install', () => { return target; }; - initNgxDeployNPMProject(); - installDependencies('@nx/node'); - - // Init libs and projects - generateLib('@nx/node', publicLib, `--dir="libs"`); - generateLib('@nx/node', publicLib2, `--dir="libs"`); - generateLib('@nx/node', restrictedLib, `--dir="libs"`); - generateLib('@nx/node', libNOTset, `--dir="libs"`); - - const buildMockDistPath = (projectName: string) => { - return `dist/libs/${projectName}`; - }; - - installNgxDeployNPMProject( - `--project ${publicLib} --dist-folder-path="${buildMockDistPath( - publicLib - )}"` - ); - installNgxDeployNPMProject( - `--project ${publicLib2} --dist-folder-path="${buildMockDistPath( - publicLib2 - )}"` - ); - installNgxDeployNPMProject( - `--project=${restrictedLib} --dist-folder-path="${buildMockDistPath( - restrictedLib - )}" --access ${npmAccess.restricted}` - ); + it('should modify the workspace only for the indicated libs', async () => { + const [publicLib, publicLib2, restrictedLib, libNOTSet, smallLib] = + await setup([ + { name: uniq('node-lib1'), generator: '@nx/node' }, + { name: uniq('node-lib2'), generator: '@nx/node' }, + { + name: uniq('node-resctricted'), + access: npmAccess.restricted, + generator: '@nx/node', + }, + { + name: uniq('node-lib-not-set'), + skipInstall: true, + generator: '@nx/node', + }, + { name: uniq('small-lib'), generator: 'minimal' }, + ]); - beforeEach(() => { - projectWorkSpacePublicLib = readJson(`libs/${publicLib}/project.json`); - projectWorkSpacePublicLib2 = readJson(`libs/${publicLib2}/project.json`); - projectWorkSpaceRestrictedLib = readJson( - `libs/${restrictedLib}/project.json` + expect(publicLib.workspace.targets?.deploy).toEqual( + expectedTarget({ projectName: publicLib.name }) ); - projectWorkSpaceLibNOTSet = readJson(`libs/${libNOTset}/project.json`); - }); - - it('should modify the workspace for publishable libs', () => { - expect(projectWorkSpacePublicLib.targets?.deploy).toEqual( - expectedTarget(publicLib) + expect(publicLib2.workspace.targets?.deploy).toEqual( + expectedTarget({ projectName: publicLib2.name }) ); - expect(projectWorkSpacePublicLib2.targets?.deploy).toEqual( - expectedTarget(publicLib2) + expect(restrictedLib.workspace.targets?.deploy).toEqual( + expectedTarget({ + projectName: restrictedLib.name, + access: npmAccess.restricted, + }) ); - expect(projectWorkSpaceRestrictedLib.targets?.deploy).toEqual( - expectedTarget(restrictedLib, true, npmAccess.restricted) + expect(libNOTSet.workspace.targets?.deploy).toEqual(undefined); + + expect(smallLib.workspace.targets?.deploy).toEqual( + expectedTarget({ + projectName: smallLib.name, + customDistFolderPath: smallLib.workspace.sourceRoot, + isBuildable: false, + }) ); - expect(projectWorkSpaceLibNOTSet.targets?.deploy).toEqual(undefined); - }); + }, 120000); }); diff --git a/e2e/ngx-deploy-npm-e2e/tests/minimal.spec.ts b/e2e/ngx-deploy-npm-e2e/tests/minimal.spec.ts index 2c696e65..7215c74a 100644 --- a/e2e/ngx-deploy-npm-e2e/tests/minimal.spec.ts +++ b/e2e/ngx-deploy-npm-e2e/tests/minimal.spec.ts @@ -1,90 +1,14 @@ -import { - ensureNxProject, - runNxCommand, - runPackageManagerInstall, - uniq, -} from '@nx/plugin/testing'; -import * as fs from 'fs'; +import { runNxCommand, uniq } from '@nx/plugin/testing'; +import { setup } from '../utils'; describe('Minimal Project', () => { - const setup = async () => { - ensureNxProject('ngx-deploy-npm', 'dist/packages/ngx-deploy-npm'); - runPackageManagerInstall(); - - const uniqLibName = uniq('minimal-lib'); - - const { libRoot } = await createMinimalLib(uniqLibName); - - // Install the project - runNxCommand( - `generate ngx-deploy-npm:install --project="${uniqLibName}" --dist-folder-path="${libRoot}"` - ); - - async function createMinimalLib(libName: string) { - // Create Lib - const libRoot = `libs/${libName}`; - const libRootAbsolutePath = `./tmp/nx-e2e/proj/${libRoot}`; - - // Create the lib folder - await fs.promises.mkdir(libRootAbsolutePath, { - recursive: true, - }); - - const createProjectJsonPromise = fs.promises.writeFile( - `${libRootAbsolutePath}/project.json`, - generateProjectJSON(libName), - 'utf8' - ); - const createPackageJsonPromise = fs.promises.writeFile( - `${libRootAbsolutePath}/package.json`, - generatePackageJSON(libName), - 'utf8' - ); - const createUniqueFilePromise = fs.promises.writeFile( - `${libRootAbsolutePath}/hello-world.js`, - "console.log('Hello World!');", - 'utf8' - ); - await Promise.all([ - createProjectJsonPromise, - createPackageJsonPromise, - createUniqueFilePromise, - ]); - - return { libRoot }; - - function generateProjectJSON(projectName: string): string { - const content = { - name: projectName, - $schema: '../../node_modules/nx/schemas/project-schema.json', - projectType: 'library', - }; - - return JSON.stringify(content, null, 2); - } - - function generatePackageJSON(projectName: string): string { - const content = { - name: `@mock-domain/${projectName}`, - description: 'Minimal LIb', - version: '1.0.0', - }; - - return JSON.stringify(content, null, 2); - } - } - - return { - libRoot, - uniqLibName, - }; - }; - it('should publish the lib', async () => { - const { uniqLibName } = await setup(); + const [uniqLibName] = await setup([ + { name: uniq('minimal-lib'), generator: 'minimal' }, + ]); expect(() => { - runNxCommand(`deploy ${uniqLibName} --dry-run`); + runNxCommand(`deploy ${uniqLibName.name} --dry-run`); }).not.toThrow(); }, 120000); }); diff --git a/e2e/ngx-deploy-npm-e2e/tests/publish.spec.ts b/e2e/ngx-deploy-npm-e2e/tests/publish.spec.ts index 262ae3c6..416cba84 100644 --- a/e2e/ngx-deploy-npm-e2e/tests/publish.spec.ts +++ b/e2e/ngx-deploy-npm-e2e/tests/publish.spec.ts @@ -1,21 +1,31 @@ -import { initNgxDeployNPMProject, basicSetTestForLibs } from '../utils'; +import { runNxCommand, uniq } from '@nx/plugin/testing'; +import { setup } from '../utils'; describe('Publish', () => { - initNgxDeployNPMProject(); + it('should publish an Angular Lib', async () => { + const [angularLib] = await setup([ + { + name: uniq('angular-lib'), + generator: '@nx/angular', + extraOptions: '--style css', + }, + ]); - describe('Basic deploy test for Angular Libs', () => { - const libName = 'angular-lib'; - const nxPlugin = '@nx/angular'; + expect(() => { + runNxCommand(`deploy ${angularLib.name} --dry-run`); + }).not.toThrow(); + }, 120000); - basicSetTestForLibs(libName, nxPlugin, { - libGeneratorCommandOptions: '--style css --directory="libs"', - }); - }); + it('should publish an Node Lib', async () => { + const [angularLib] = await setup([ + { + name: uniq('node-lib'), + generator: '@nx/node', + }, + ]); - describe('Basic deploy test for Node Libs', () => { - const libName = 'node-lib'; - const nxPlugin = '@nx/node'; - - basicSetTestForLibs(libName, nxPlugin); - }); + expect(() => { + runNxCommand(`deploy ${angularLib.name} --dry-run`); + }).not.toThrow(); + }, 120000); }); diff --git a/e2e/ngx-deploy-npm-e2e/utils/basic-setup.ts b/e2e/ngx-deploy-npm-e2e/utils/basic-setup.ts new file mode 100644 index 00000000..ef8f83f5 --- /dev/null +++ b/e2e/ngx-deploy-npm-e2e/utils/basic-setup.ts @@ -0,0 +1,134 @@ +import * as fs from 'fs'; +import { ProjectConfiguration } from '@nx/devkit'; +import { readJson } from '@nx/plugin/testing'; + +import { npmAccess } from '../../../packages/ngx-deploy-npm/src/core'; +import { + generateLib, + initNgxDeployNPMProject, + installDependencies, + installNgxDeployNPMProject, +} from '.'; + +export const setup = async ( + libs: { + name: string; + generator: 'minimal' | string; + access?: npmAccess; + skipInstall?: boolean; + extraOptions?: string; + distFolderPath?: string; + }[] +) => { + initNgxDeployNPMProject(); + + // Install dependencies only once + const generators = new Set( + libs + .map(({ generator }) => generator) + .filter(generator => generator !== 'minimal') + ); + generators.forEach(dependency => { + installDependencies(dependency); + }); + + // Init libs + await Promise.all( + libs.map(async ({ name, generator, extraOptions = '' }) => { + if (generator === 'minimal') { + await createMinimalLib(name); + } else { + generateLib({ + nxPlugin: generator, + libName: name, + extraOptions: `--directory="libs/${name}" ${extraOptions}`, + }); + } + }) + ); + + // Install ngx-deploy-npm + libs + .filter(({ skipInstall }) => !!skipInstall === false) + .forEach(({ name, access, generator }) => { + const accessOption = !!access ? `--access ${access}` : ''; + + const distFolderPath = + generator === 'minimal' + ? getMinimalLibRoot(name).libRoot + : `dist/libs/${name}`; + + installNgxDeployNPMProject( + `--project="${name}" --dist-folder-path="${distFolderPath}" ${accessOption}` + ); + }); + + const processedLibs: { name: string; workspace: ProjectConfiguration }[] = + libs.map(({ name }) => ({ + name: name, + workspace: readJson(`libs/${name}/project.json`), + })); + + return processedLibs; +}; + +function getMinimalLibRoot(libName: string) { + const libRoot = `libs/${libName}`; + const libRootAbsolutePath = `./tmp/nx-e2e/proj/${libRoot}`; + + return { libRoot, libRootAbsolutePath }; +} + +async function createMinimalLib(libName: string) { + // Create Lib + const { libRoot, libRootAbsolutePath } = getMinimalLibRoot(libName); + + // Create the lib folder + await fs.promises.mkdir(libRootAbsolutePath, { + recursive: true, + }); + + const createProjectJsonPromise = fs.promises.writeFile( + `${libRootAbsolutePath}/project.json`, + generateProjectJSON(libName, libRoot), + 'utf8' + ); + const createPackageJsonPromise = fs.promises.writeFile( + `${libRootAbsolutePath}/package.json`, + generatePackageJSON(libName), + 'utf8' + ); + const createUniqueFilePromise = fs.promises.writeFile( + `${libRootAbsolutePath}/hello-world.js`, + "console.log('Hello World!');", + 'utf8' + ); + await Promise.all([ + createProjectJsonPromise, + createPackageJsonPromise, + createUniqueFilePromise, + ]); + + return { libRoot }; + + function generateProjectJSON(projectName: string, libRoot: string): string { + const content = { + name: projectName, + $schema: '../../node_modules/nx/schemas/project-schema.json', + projectType: 'library', + sourceRoot: libRoot, + }; + + return JSON.stringify(content, null, 2); + } + + function generatePackageJSON(projectName: string): string { + const content = { + name: `@mock-domain/${projectName}`, + description: 'Minimal LIb', + version: '1.0.0', + }; + + return JSON.stringify(content, null, 2); + } +} diff --git a/e2e/ngx-deploy-npm-e2e/utils/generate-lib.ts b/e2e/ngx-deploy-npm-e2e/utils/generate-lib.ts index a8a24d06..75f95844 100644 --- a/e2e/ngx-deploy-npm-e2e/utils/generate-lib.ts +++ b/e2e/ngx-deploy-npm-e2e/utils/generate-lib.ts @@ -1,17 +1,24 @@ import { runNxCommand } from '@nx/plugin/testing'; -export function generateLib( - nxPlugin: string, - libName: string, - extraOptions?: string, +type Options = { + nxPlugin: string; + libName: string; + extraOptions?: string; + generator?: string; + setPublishableOption?: boolean; +}; + +export function generateLib({ + nxPlugin, + libName, + extraOptions, generator = 'lib', - setPublishableOption = true -) { - beforeEach(() => { - runNxCommand( - `generate ${nxPlugin}:${generator} --name ${libName} ${ - setPublishableOption ? '--publishable' : '' - } --importPath ${libName} ${extraOptions ?? ''}` - ); - }, 120000); + setPublishableOption = true, +}: Options) { + const publishableOption = setPublishableOption ? '--publishable' : ''; + const extraOptionsNormalized = extraOptions ? extraOptions : ''; + + runNxCommand( + `generate ${nxPlugin}:${generator} --name ${libName} ${publishableOption} --importPath ${libName} ${extraOptionsNormalized}` + ); } diff --git a/e2e/ngx-deploy-npm-e2e/utils/index.ts b/e2e/ngx-deploy-npm-e2e/utils/index.ts index 8fd205bf..46d843d0 100644 --- a/e2e/ngx-deploy-npm-e2e/utils/index.ts +++ b/e2e/ngx-deploy-npm-e2e/utils/index.ts @@ -1,5 +1,5 @@ export * from './generate-lib'; export * from './install-deps'; -export * from './lib-test-set'; export * from './utils-ngx-deploy-npm'; export * from './get-nx-current-version'; +export * from './basic-setup'; diff --git a/e2e/ngx-deploy-npm-e2e/utils/install-deps.ts b/e2e/ngx-deploy-npm-e2e/utils/install-deps.ts index 3dfae210..a7fa953b 100644 --- a/e2e/ngx-deploy-npm-e2e/utils/install-deps.ts +++ b/e2e/ngx-deploy-npm-e2e/utils/install-deps.ts @@ -2,10 +2,8 @@ import { runCommand } from '@nx/plugin/testing'; import { currentNxVersion } from './get-nx-current-version'; export function installDependencies(nxPlugin: string) { - beforeEach(() => { - const packageToInstall = `${nxPlugin}@${currentNxVersion}`; + const packageToInstall = `${nxPlugin}@${currentNxVersion}`; - runCommand(`npm add -D ${packageToInstall}`, {}); - runCommand(`npx nx g ${nxPlugin}:init`, {}); - }, 120000); + runCommand(`npm add -D ${packageToInstall}`, {}); + runCommand(`npx nx g ${nxPlugin}:init`, {}); } diff --git a/e2e/ngx-deploy-npm-e2e/utils/lib-test-set.ts b/e2e/ngx-deploy-npm-e2e/utils/lib-test-set.ts deleted file mode 100644 index 4c4a8a43..00000000 --- a/e2e/ngx-deploy-npm-e2e/utils/lib-test-set.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { runNxCommand, uniq } from '@nx/plugin/testing'; - -import { installNgxDeployNPMProject } from './utils-ngx-deploy-npm'; -import { installDependencies } from './install-deps'; -import { generateLib } from './generate-lib'; - -type Options = { - /** - * The generator of the plugin to - */ - generator?: string; - /** - * Extra options on the command lib generator - */ - libGeneratorCommandOptions?: string; - /** - * Set the option --publishable when generating the library - */ - setPublishableOption?: boolean; -}; - -export function basicSetTestForLibs( - libName: string, - nxPlugin: string, - options?: Options -) { - installDependencies(nxPlugin); - - const uniqLibName = uniq(libName); - - generateLib( - nxPlugin, - uniqLibName, - options?.libGeneratorCommandOptions, - options?.generator, - options?.setPublishableOption - ); - - // Install the project - installNgxDeployNPMProject( - `--project="${uniqLibName}" --distFolderPath="dist/libs/${uniqLibName}"` - ); - - it('should publish the lib', () => { - expect(() => { - runNxCommand(`deploy ${uniqLibName} --dry-run`); - }).not.toThrow(); - }, 120000); -} diff --git a/e2e/ngx-deploy-npm-e2e/utils/utils-ngx-deploy-npm.ts b/e2e/ngx-deploy-npm-e2e/utils/utils-ngx-deploy-npm.ts index 4729f5c1..3adaccc7 100644 --- a/e2e/ngx-deploy-npm-e2e/utils/utils-ngx-deploy-npm.ts +++ b/e2e/ngx-deploy-npm-e2e/utils/utils-ngx-deploy-npm.ts @@ -6,15 +6,10 @@ import { export function initNgxDeployNPMProject() { // Init project - beforeAll(() => { - ensureNxProject('ngx-deploy-npm', 'dist/packages/ngx-deploy-npm'); - - runPackageManagerInstall(); - }, 120000); + ensureNxProject('ngx-deploy-npm', 'dist/packages/ngx-deploy-npm'); + runPackageManagerInstall(); } export function installNgxDeployNPMProject(options: string = '') { - beforeEach(() => { - runNxCommand(`generate ngx-deploy-npm:install ${options}`); - }, 5000); + runNxCommand(`generate ngx-deploy-npm:install ${options}`); } diff --git a/jest.config.ts b/jest.config.ts index d0dbd1b8..6b3f2d6e 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -1,5 +1,5 @@ -import { getJestProjects } from '@nx/jest'; +import { getJestProjectsAsync } from '@nx/jest'; -export default { - projects: getJestProjects(), -}; +export default async () => ({ + projects: await getJestProjectsAsync(), +}); diff --git a/nx.json b/nx.json index 75ea51c3..8b85b7de 100644 --- a/nx.json +++ b/nx.json @@ -35,6 +35,5 @@ } }, "useInferencePlugins": false, - "defaultBase": "main", - "nxCloudAccessToken": "OGIzYzQwMGItNjVmOC00ZmU5LWJiNzgtMTUyOGU1MmE3NzI5fHJlYWQtd3JpdGU=" + "defaultBase": "main" } diff --git a/package-lock.json b/package-lock.json index 8f74826b..5978c69f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,19 +15,19 @@ "@commitlint/cli": "18.5.0", "@commitlint/config-conventional": "18.5.0", "@jscutlery/semver": "5.3.1", - "@nx/devkit": "19.8.4", - "@nx/eslint": "19.8.4", - "@nx/eslint-plugin": "19.8.4", - "@nx/jest": "19.8.4", - "@nx/js": "19.8.4", - "@nx/plugin": "19.8.4", - "@nx/workspace": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/eslint": "20.0.0", + "@nx/eslint-plugin": "20.0.0", + "@nx/jest": "20.0.0", + "@nx/js": "20.0.0", + "@nx/plugin": "20.0.0", + "@nx/workspace": "20.0.0", "@types/jest": "29.4.1", - "@types/node": "18.19.34", + "@types/node": "^20.14.8", "@typescript-eslint/eslint-plugin": "7.17.0", "@typescript-eslint/parser": "7.17.0", "commitizen": "4.3.1", - "create-nx-workspace": "19.8.4", + "create-nx-workspace": "20.0.0", "cz-conventional-changelog": "3.3.0", "eslint": "8.57.0", "eslint-config-prettier": "9.0.0", @@ -35,7 +35,7 @@ "jest": "29.4.3", "jest-environment-jsdom": "^29.4.1", "jsonc-eslint-parser": "^2.1.0", - "nx": "19.8.4", + "nx": "20.0.0", "prettier": "2.8.4", "pretty-quick": "^3.1.3", "ts-jest": "29.1.0", @@ -73,9 +73,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", - "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", "dev": true, "license": "MIT", "engines": { @@ -83,9 +83,9 @@ } }, "node_modules/@babel/core": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", - "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", "dev": true, "license": "MIT", "dependencies": { @@ -95,10 +95,10 @@ "@babel/helper-compilation-targets": "^7.25.7", "@babel/helper-module-transforms": "^7.25.7", "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.7", + "@babel/parser": "^7.25.8", "@babel/template": "^7.25.7", "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/types": "^7.25.8", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -558,13 +558,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", - "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7" + "@babel/types": "^7.25.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -759,32 +759,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.25.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", @@ -1019,15 +993,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.7.tgz", - "integrity": "sha512-4B6OhTrwYKHYYgcwErvZjbmH9X5TxQBsaBHdzEIB4l71gR5jh/tuHGlb9in47udL2+wVUcOz5XXhhfhVJwEpEg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz", + "integrity": "sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.7", "@babel/helper-remap-async-to-generator": "^7.25.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/traverse": "^7.25.7" }, "engines": { @@ -1105,15 +1078,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.7.tgz", - "integrity": "sha512-rvUUtoVlkDWtDWxGAiiQj0aNktTPn3eFynBcMC2IhsXweehwgdI9ODe+XjWw515kEmv22sSOTp/rxIRuTiB7zg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz", + "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1237,14 +1209,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.7.tgz", - "integrity": "sha512-UvcLuual4h7/GfylKm2IAA3aph9rwvAM2XBA0uPKU3lca+Maai4jBjjEVUS568ld6kJcgbouuumCBhMd/Yz17w==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz", + "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1271,14 +1242,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.7.tgz", - "integrity": "sha512-h3MDAP5l34NQkkNulsTNyjdaR+OiB0Im67VU//sFupouP8Q6m9Spy7l66DcaAQxtmCqGdanPByLsnwFttxKISQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz", + "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1323,14 +1293,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.7.tgz", - "integrity": "sha512-Ot43PrL9TEAiCe8C/2erAjXMeVSnE/BLEx6eyrKLNFCCw5jvhTHKyHxdI1pA0kz5njZRYAnMO2KObGqOCRDYSA==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz", + "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1356,14 +1325,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.7.tgz", - "integrity": "sha512-iImzbA55BjiovLyG2bggWS+V+OLkaBorNvc/yJoeeDQGztknRnDdYfp2d/UPmunZYEnZi6Lg8QcTmNMHOB0lGA==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz", + "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1493,14 +1461,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.7.tgz", - "integrity": "sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz", + "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1510,14 +1477,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.7.tgz", - "integrity": "sha512-8CbutzSSh4hmD+jJHIA8vdTNk15kAzOnFLVVgBSMGr28rt85ouT01/rezMecks9pkU939wDInImwCKv4ahU4IA==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz", + "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1527,15 +1493,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.7.tgz", - "integrity": "sha512-1JdVKPhD7Y5PvgfFy0Mv2brdrolzpzSoUq2pr6xsR+m+3viGGeHEokFKsCgOkbeFOQxfB1Vt2F0cPJLRpFI4Zg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz", + "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.25.7", "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.25.7" }, "engines": { @@ -1563,14 +1528,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.7.tgz", - "integrity": "sha512-m9obYBA39mDPN7lJzD5WkGGb0GO54PPLXsbcnj1Hyeu8mSRz7Gb4b1A6zxNX32ZuUySDK4G6it8SDFWD1nCnqg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz", + "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1580,15 +1544,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.7.tgz", - "integrity": "sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz", + "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1631,16 +1594,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.7.tgz", - "integrity": "sha512-LzA5ESzBy7tqj00Yjey9yWfs3FKy4EmJyKOSWld144OxkTji81WWnUT8nkLUn+imN/zHL8ZQlOu/MTUAhHaX3g==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz", + "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.7", "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1898,13 +1860,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz", - "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz", + "integrity": "sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.7", + "@babel/compat-data": "^7.25.8", "@babel/helper-compilation-targets": "^7.25.7", "@babel/helper-plugin-utils": "^7.25.7", "@babel/helper-validator-option": "^7.25.7", @@ -1914,45 +1876,30 @@ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.25.7", "@babel/plugin-syntax-import-attributes": "^7.25.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.25.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.8", "@babel/plugin-transform-async-to-generator": "^7.25.7", "@babel/plugin-transform-block-scoped-functions": "^7.25.7", "@babel/plugin-transform-block-scoping": "^7.25.7", "@babel/plugin-transform-class-properties": "^7.25.7", - "@babel/plugin-transform-class-static-block": "^7.25.7", + "@babel/plugin-transform-class-static-block": "^7.25.8", "@babel/plugin-transform-classes": "^7.25.7", "@babel/plugin-transform-computed-properties": "^7.25.7", "@babel/plugin-transform-destructuring": "^7.25.7", "@babel/plugin-transform-dotall-regex": "^7.25.7", "@babel/plugin-transform-duplicate-keys": "^7.25.7", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7", - "@babel/plugin-transform-dynamic-import": "^7.25.7", + "@babel/plugin-transform-dynamic-import": "^7.25.8", "@babel/plugin-transform-exponentiation-operator": "^7.25.7", - "@babel/plugin-transform-export-namespace-from": "^7.25.7", + "@babel/plugin-transform-export-namespace-from": "^7.25.8", "@babel/plugin-transform-for-of": "^7.25.7", "@babel/plugin-transform-function-name": "^7.25.7", - "@babel/plugin-transform-json-strings": "^7.25.7", + "@babel/plugin-transform-json-strings": "^7.25.8", "@babel/plugin-transform-literals": "^7.25.7", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.8", "@babel/plugin-transform-member-expression-literals": "^7.25.7", "@babel/plugin-transform-modules-amd": "^7.25.7", "@babel/plugin-transform-modules-commonjs": "^7.25.7", @@ -1960,15 +1907,15 @@ "@babel/plugin-transform-modules-umd": "^7.25.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7", "@babel/plugin-transform-new-target": "^7.25.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7", - "@babel/plugin-transform-numeric-separator": "^7.25.7", - "@babel/plugin-transform-object-rest-spread": "^7.25.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.8", + "@babel/plugin-transform-numeric-separator": "^7.25.8", + "@babel/plugin-transform-object-rest-spread": "^7.25.8", "@babel/plugin-transform-object-super": "^7.25.7", - "@babel/plugin-transform-optional-catch-binding": "^7.25.7", - "@babel/plugin-transform-optional-chaining": "^7.25.7", + "@babel/plugin-transform-optional-catch-binding": "^7.25.8", + "@babel/plugin-transform-optional-chaining": "^7.25.8", "@babel/plugin-transform-parameters": "^7.25.7", "@babel/plugin-transform-private-methods": "^7.25.7", - "@babel/plugin-transform-private-property-in-object": "^7.25.7", + "@babel/plugin-transform-private-property-in-object": "^7.25.8", "@babel/plugin-transform-property-literals": "^7.25.7", "@babel/plugin-transform-regenerator": "^7.25.7", "@babel/plugin-transform-reserved-words": "^7.25.7", @@ -2098,9 +2045,9 @@ } }, "node_modules/@babel/types": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", - "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "dev": true, "license": "MIT", "dependencies": { @@ -2448,9 +2395,9 @@ } }, "node_modules/@emnapi/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.0.tgz", - "integrity": "sha512-9hRqVlhwqBqCoToZ3hFcNVqL+uyHV06Y47ax4UB8L6XgVRqYz7MFnfessojo6+5TK89pKwJnpophwjTMOeKI9Q==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", "dev": true, "license": "MIT", "dependencies": { @@ -2459,9 +2406,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.0.tgz", - "integrity": "sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "dev": true, "license": "MIT", "dependencies": { @@ -2602,13 +2549,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3342,88 +3282,13 @@ "node": ">= 8" } }, - "node_modules/@nrwl/devkit": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.8.4.tgz", - "integrity": "sha512-OoIqDjj2mWzLs3aSF6w5OiC2xywYi/jBxHc7t7Lyi56Vc4dQq8vJMELa9WtG6qH0k05fF7N+jAoKlfvLgbbEFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "19.8.4" - } - }, - "node_modules/@nrwl/eslint-plugin-nx": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.8.4.tgz", - "integrity": "sha512-D2RsuKOwuF3SO9/tA2R93zL2ixampDlQC8+6E7wfcU+KdfMhhGFG2+r53F98Q8cZKMt5Wls2nGSGpj2CWxCk5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/eslint-plugin": "19.8.4" - } - }, - "node_modules/@nrwl/jest": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-19.8.4.tgz", - "integrity": "sha512-N18UVEqTrOUotXdjpVZOe/qgT4m0cX9YIS6ATKXAYxX9Nl6Qo3hhbRDo9WHHulXE2Hql6S/RpnwwUP5TJthkZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/jest": "19.8.4" - } - }, - "node_modules/@nrwl/js": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-19.8.4.tgz", - "integrity": "sha512-XuPOJc77waJ3zgg42zntTy5eGCKTc6EjVvRVdUSf1iXWaMHAsknPjb4kz16iwdGhoRMQpZxHRr1KjY5WmcWq0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/js": "19.8.4" - } - }, - "node_modules/@nrwl/nx-plugin": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/nx-plugin/-/nx-plugin-19.8.4.tgz", - "integrity": "sha512-nPE+7iUTIEsO080MQNrZptFTQsPnKojGGdC9q9+T5Fj0TaAAKVKTrPQjRmgEoiG1JD+8r0BwR+e3YAXu/OhynQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/plugin": "19.8.4" - } - }, - "node_modules/@nrwl/tao": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.8.4.tgz", - "integrity": "sha512-03/+QZ4/6HmKbEmvzCutLI1XIclBspNYtiVHmGPRWuwhnZViqYfnyl8J7RWVdFEoKKA5fhJqpg7e28aGuoMBvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "nx": "19.8.4", - "tslib": "^2.3.0" - }, - "bin": { - "tao": "index.js" - } - }, - "node_modules/@nrwl/workspace": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-19.8.4.tgz", - "integrity": "sha512-ZdzVMuVDkD5nYRXkvBIZe6yUTcbllYanoIh38a7l3MfPqw+2cFY2Cr9uPNfH3LXpzZYgKcr4vffYWwLXeIwbjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/workspace": "19.8.4" - } - }, "node_modules/@nx/devkit": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.8.4.tgz", - "integrity": "sha512-FPFT8gVDFRSEmU0n7nRkT4Rnqy7OMznfPXLfDZtVuzEi5Cl6ftG3UBUvCgJcJFCYJVAZAUuv6vRSRarHd51XFQ==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.0.0.tgz", + "integrity": "sha512-9hSZBFnJ9pkdJnaNiuBwBGJAIYXEOwcXDhtUrm4jpVTDdYWP2m9fgu0Vf47TADf7vF1f2EVvS7dqqJbMDgULlg==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/devkit": "19.8.4", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", @@ -3434,19 +3299,18 @@ "yargs-parser": "21.1.1" }, "peerDependencies": { - "nx": ">= 17 <= 20" + "nx": ">= 19 <= 21" } }, "node_modules/@nx/eslint": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-19.8.4.tgz", - "integrity": "sha512-gJGtYd9ThKSM1pbV/iG/PGwtVKg1PwjAly2AjgebYmAey+hgxzwgjQy84Lf+FdkKNUQZjB0sYaKCw26oKXXYaA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-20.0.0.tgz", + "integrity": "sha512-FVTidgmNVCcRQ+jTIZdHzMjTC7ATHvoHv7lLuXMAn0rhv02T39Kfyu1rH7cevTkfB22jqSjL25yty5qoqZPjug==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "19.8.4", - "@nx/js": "19.8.4", - "@nx/linter": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/js": "20.0.0", "semver": "^7.5.3", "tslib": "^2.3.0", "typescript": "~5.4.2" @@ -3462,16 +3326,15 @@ } }, "node_modules/@nx/eslint-plugin": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-19.8.4.tgz", - "integrity": "sha512-0Q/2y/FZJyRxk5SbIXP+FlIY8//3chtaQz+FuorHGs0mDBN5FtBFqBL0atWClJO+B+QByO70ue/qHEHSiNrcJw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-20.0.0.tgz", + "integrity": "sha512-zDbjQx3qaT50K4GjId8Ab0uEh+1DIdHRm/M0M/yAbsbIb5zVWlOD4wfKiEsMtTyyzpq4OvDZpbJLby/2lFplPg==", "dev": true, "license": "MIT", "dependencies": { "@eslint/compat": "^1.1.1", - "@nrwl/eslint-plugin-nx": "19.8.4", - "@nx/devkit": "19.8.4", - "@nx/js": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/js": "20.0.0", "@typescript-eslint/type-utils": "^8.0.0", "@typescript-eslint/utils": "^8.0.0", "chalk": "^4.1.0", @@ -3581,15 +3444,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@nx/eslint-plugin/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0", - "optional": true, - "peer": true - }, "node_modules/@nx/eslint-plugin/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3805,17 +3659,16 @@ } }, "node_modules/@nx/jest": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-19.8.4.tgz", - "integrity": "sha512-oAC0zLkktCduq3ZNjIqPK/gCGPxPZMiWDFKqeEpZnIqgYuQfy6wUk3aSVWGPud0kuPJGJA0G1hkxCXtCmCXMNw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-20.0.0.tgz", + "integrity": "sha512-f/O/QXGIjeouXZhuzRvmvfCqmUnu33hM+rRuKab5Ttn2zDgvlGiM4NkyXhBUrmEUdDw+N+LRN/gq1S0GBj4+pw==", "dev": true, "license": "MIT", "dependencies": { "@jest/reporters": "^29.4.1", "@jest/test-result": "^29.4.1", - "@nrwl/jest": "19.8.4", - "@nx/devkit": "19.8.4", - "@nx/js": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/js": "20.0.0", "@phenomnomnominal/tsquery": "~5.0.1", "chalk": "^4.1.0", "identity-obj-proxy": "3.0.0", @@ -3830,9 +3683,9 @@ } }, "node_modules/@nx/js": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-19.8.4.tgz", - "integrity": "sha512-rBiBi0A9NsxA5cnMcDRXllNXFJYjk+YiNP4T5e+GmqHmicjRjF+mORrhQ4zBZXvZwS2O+ZO9iBOZX41IVqzFaw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/js/-/js-20.0.0.tgz", + "integrity": "sha512-CiWl9Np+YL55FZiQXIiOqwxU4Gj9l7pQFE3YV/4v1CTSuT+4uHNAS6hr7nSbVZ0Z4YTk0QnDLsxuvsezIG0LfA==", "dev": true, "license": "MIT", "dependencies": { @@ -3843,9 +3696,9 @@ "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", - "@nrwl/js": "19.8.4", - "@nx/devkit": "19.8.4", - "@nx/workspace": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/workspace": "20.0.0", + "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-typescript-metadata": "^0.3.1", @@ -3876,20 +3729,10 @@ } } }, - "node_modules/@nx/linter": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/linter/-/linter-19.8.4.tgz", - "integrity": "sha512-aK6Bic/iup5nkZDFQgBgilgtqfjuy+dT0agnE6HEdXKOIR++LJXpka5nrJ9VNNglp22DrFtBDAH/hfRpIwm8uw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/eslint": "19.8.4" - } - }, "node_modules/@nx/nx-darwin-arm64": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.8.4.tgz", - "integrity": "sha512-mbSGt63hYcVCSQ54kpHl0lFqr5CsbkGJ4L3liWE30Da7vXZJwUBr9f+b9DnQ64IZzlu6vAhNcaiYQXa9lAk0yQ==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.0.0.tgz", + "integrity": "sha512-sVG2qdQh192eQbsRVs/VpYkgRdbinLEj/6LvHXjU+Qi3ABKAnNDuNquNqpmxVU7YnoIZsyHMlbPsr47PgU2ljw==", "cpu": [ "arm64" ], @@ -3904,9 +3747,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.8.4.tgz", - "integrity": "sha512-lTcXUCXNvqHdLmrNCOyDF+u6pDx209Ew7nSR47sQPvkycIHYi0gvgk0yndFn1Swah0lP4OxWg7rzAfmOlZd6ew==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.0.0.tgz", + "integrity": "sha512-Vk1i9PYlzPr7XT9fu2nWKpzPS/kTM8bDCmBfu7lotJpR+gEp52vegy4bkz00C5sDtFZTFOUoDYvMxiS9lNuvbQ==", "cpu": [ "x64" ], @@ -3921,9 +3764,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.8.4.tgz", - "integrity": "sha512-4BUplOxPZeUwlUNfzHHMmebNVgDFW/jNX6TWRS+jINwOHnpWLkLFAXu27G80/S3OaniVCzEQklXO9b+1UsdgXw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.0.0.tgz", + "integrity": "sha512-g9L4KG34U8KLNBpoX5iQnevh/q3mTHBNLaoF+dFfBLDFdqVkLc1cUoWEITP41RfExhU/jqgo66T3Wtjt/FmYPw==", "cpu": [ "x64" ], @@ -3938,9 +3781,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.8.4.tgz", - "integrity": "sha512-Wahul8oz9huEm/Jv3wud5IGWdZxkGG4tdJm9i5TV5wxfUMAWbKU9v2nzZZins452UYESWvwvDkiuBPZqSto3qw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.0.0.tgz", + "integrity": "sha512-EcWjz4HM0UElppyDjIK9uGn0x+HgNMKloBQWYCQZv9z10joPDFleXNL66ywGi3KbpJp8jZZoBoXUBAuQ30wTkA==", "cpu": [ "arm" ], @@ -3955,9 +3798,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.8.4.tgz", - "integrity": "sha512-L0RVCZkNAtZDplLT7uJV7M9cXxq2Fxw+8ex3eb9XSp7eyLeFO21T0R6vTouJ42E/PEvGApCAcyGqtnyPNMZFfw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.0.0.tgz", + "integrity": "sha512-SNWNlG1IF3m84n//s9EVq4VXbACi4YC+0Zto6mBSWnJ54PQSBaPlYQOjA+zUg5j/TDBcErJwmWBhrsDpfUzASA==", "cpu": [ "arm64" ], @@ -3972,9 +3815,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.8.4.tgz", - "integrity": "sha512-0q8r8I8WCsY3xowDI2j109SCUSkFns/BJ40aCfRh9hhrtaIIc5qXUw2YFTjxUZNcRJXx9j9+hTe9jBkUSIGvCw==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.0.0.tgz", + "integrity": "sha512-dP8Z2wmouSoGbiNFchf5XuMEzZ9LOxIL9m+YZ+g1aBK1lakqugGmu5AWC4LujLdRYJ2Aq0NiTujFb9X8N65LEg==", "cpu": [ "arm64" ], @@ -3989,9 +3832,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.4.tgz", - "integrity": "sha512-XcRBNe0ws7KB0PMcUlpQqzzjjxMP8VdqirBz7CfB2XQ8xKmP3370p0cDvqs/4oKDHK4PCkmvVFX60tzakutylA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.0.0.tgz", + "integrity": "sha512-B9ePhJ6t4Q/T20jjuegmIujEbgQAjVYSbaVqlL1TpSz5JOjYqTMJVOdZfK1iSizanmdAr/tgNk/3U+pN68Qo2w==", "cpu": [ "x64" ], @@ -4006,9 +3849,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.8.4.tgz", - "integrity": "sha512-JB4tAuZBCF0yqSnKF3pHXa0b7LA3ebi3Bw08QmMr//ON4aU+eXURGBuj9XvULD2prY+gpBrvf+MsG1XJAHL6Zg==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.0.0.tgz", + "integrity": "sha512-SIJ42y+paUJ7OeOh1Wgk1BkgFj/oa/U3jsBrusyJMD1omShXJR0DW63yHHP19rhkVfkzDB4hl5AWYAb+IX0n1A==", "cpu": [ "x64" ], @@ -4023,9 +3866,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.8.4.tgz", - "integrity": "sha512-WvQag/pN9ofRWRDvOZxj3jvJoTetlvV1uyirnDrhupRgi+Fj67OlGGt2zVUHaXFGEa1MfCEG6Vhk6152m4KyaQ==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.0.0.tgz", + "integrity": "sha512-NZi88z+xa70L9E5ota3R6+/TjBDQ/XtoWuNDqPRcgBAHtOEH4YpF0pJ+sc+TybotcXFUs99v1TRxPHagsBn8QQ==", "cpu": [ "arm64" ], @@ -4040,9 +3883,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.8.4.tgz", - "integrity": "sha512-//JntLrN3L7WL/WgP3D0FE34caYTPcG/GIMBguC9w7YDyTlEikLgLbobjdCPz+2f9OWGvIZbJgGmtHNjnETM/g==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.0.0.tgz", + "integrity": "sha512-rtGphY7sXqHGQN1q6M6umR/iAIU0/IcstYW5IAXQ3wivaQJrV7sM+aumrFZfgAWHHDTWDdQncSQTdn49RoRjEA==", "cpu": [ "x64" ], @@ -4057,32 +3900,30 @@ } }, "node_modules/@nx/plugin": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/plugin/-/plugin-19.8.4.tgz", - "integrity": "sha512-ONukvL6/zbUA3GK4s/zR8XIK3vC4hcPPnuAJ7s99A2w8iD4V1J8ziqVgCmvqAtiwPE7tzhX9c3wIyrb/QTESEA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/plugin/-/plugin-20.0.0.tgz", + "integrity": "sha512-u6BHgDYSJeB09gs3xR7aiujYhj5IlN6pXxSQK0NyndpByBuAqwvqTanJzB85XCufClzw8crVjbbnELp+Ya/1hg==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/nx-plugin": "19.8.4", - "@nx/devkit": "19.8.4", - "@nx/eslint": "19.8.4", - "@nx/jest": "19.8.4", - "@nx/js": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/eslint": "20.0.0", + "@nx/jest": "20.0.0", + "@nx/js": "20.0.0", "tslib": "^2.3.0" } }, "node_modules/@nx/workspace": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-19.8.4.tgz", - "integrity": "sha512-ub4nD2klOj00onF1KrNXIlLB9hXN9ybHs7XSP9YW+52qz79KaJWJm46ebTqeLnDZApYbAcB0vSCp2+kaEV24Ew==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-20.0.0.tgz", + "integrity": "sha512-ReTyJrUdCVPa9fnFWOaYhtNPJkfHMsASjGCvijZv+9EyDmggZ9PmpZBN7fdaCQD8+MyRSOPCrPEzXU1NnjjgqQ==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/workspace": "19.8.4", - "@nx/devkit": "19.8.4", + "@nx/devkit": "20.0.0", "chalk": "^4.1.0", "enquirer": "~2.3.6", - "nx": "19.8.4", + "nx": "20.0.0", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } @@ -4306,9 +4147,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.34.tgz", - "integrity": "sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==", + "version": "20.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz", + "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", "dev": true, "license": "MIT", "dependencies": { @@ -4928,13 +4769,6 @@ "url": "https://opencollective.com/verdaccio" } }, - "node_modules/@verdaccio/config/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@verdaccio/config/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -5500,13 +5334,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@zkochan/js-yaml/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -5720,14 +5547,11 @@ "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "license": "Python-2.0" }, "node_modules/array-flatten": { "version": "1.1.1", @@ -6425,9 +6249,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "version": "1.0.30001668", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz", + "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==", "dev": true, "funding": [ { @@ -6707,22 +6531,6 @@ "node": ">= 12" } }, - "node_modules/commitizen/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/commitizen/node_modules/inquirer": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", @@ -7316,13 +7124,6 @@ "typescript": ">=4" } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/cosmiconfig/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -7359,9 +7160,9 @@ } }, "node_modules/create-nx-workspace": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/create-nx-workspace/-/create-nx-workspace-19.8.4.tgz", - "integrity": "sha512-dePBjpizSSUR+z8WV/3FfJlwKXQkvF40YMP4n1bhG0ExvudCPT4jOJA9zf9gyqM458sCSvoTr7rtyaF/UOtobQ==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/create-nx-workspace/-/create-nx-workspace-20.0.0.tgz", + "integrity": "sha512-BPjkID9x5C1bt3syMnLaIhOyKd1qGa0+3spARn3PDieKInBf+U9XDVRU4aD0feNfKUkuzvYlsDLVa71744mFHw==", "dev": true, "license": "MIT", "dependencies": { @@ -7879,13 +7680,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true, - "license": "MIT" - }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -7977,9 +7771,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.33", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", - "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", + "version": "1.5.36", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz", + "integrity": "sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==", "dev": true, "license": "ISC" }, @@ -8264,13 +8058,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8971,9 +8758,9 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, "license": "MIT", "dependencies": { @@ -9022,6 +8809,22 @@ "dev": true, "license": "MIT" }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -9530,9 +9333,9 @@ } }, "node_modules/globals": { - "version": "15.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.10.0.tgz", - "integrity": "sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==", + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", "dev": true, "license": "MIT", "engines": { @@ -11230,6 +11033,16 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -12271,15 +12084,14 @@ "license": "MIT" }, "node_modules/nx": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-19.8.4.tgz", - "integrity": "sha512-fc833c3UKo6kuoG4z0kSKet17yWym3VzcQ+yPWYspxxxd8GFVVk42+9wieyVQDi9YqtKZQ6PdQfSEPm59/M7SA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/nx/-/nx-20.0.0.tgz", + "integrity": "sha512-xfTCFiSYqxhchIXQvT6cxKcyRmReAvpzEQJbpEZTtmhMucBqvDTkK25WIhY4cW2uPPUXSOgQGbFt2uIVQz5RTw==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", - "@nrwl/tao": "19.8.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.7", @@ -12305,7 +12117,6 @@ "ora": "5.3.0", "semver": "^7.5.3", "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tsconfig-paths": "^4.1.2", @@ -12318,16 +12129,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "19.8.4", - "@nx/nx-darwin-x64": "19.8.4", - "@nx/nx-freebsd-x64": "19.8.4", - "@nx/nx-linux-arm-gnueabihf": "19.8.4", - "@nx/nx-linux-arm64-gnu": "19.8.4", - "@nx/nx-linux-arm64-musl": "19.8.4", - "@nx/nx-linux-x64-gnu": "19.8.4", - "@nx/nx-linux-x64-musl": "19.8.4", - "@nx/nx-win32-arm64-msvc": "19.8.4", - "@nx/nx-win32-x64-msvc": "19.8.4" + "@nx/nx-darwin-arm64": "20.0.0", + "@nx/nx-darwin-x64": "20.0.0", + "@nx/nx-freebsd-x64": "20.0.0", + "@nx/nx-linux-arm-gnueabihf": "20.0.0", + "@nx/nx-linux-arm64-gnu": "20.0.0", + "@nx/nx-linux-arm64-musl": "20.0.0", + "@nx/nx-linux-x64-gnu": "20.0.0", + "@nx/nx-linux-x64-musl": "20.0.0", + "@nx/nx-win32-arm64-msvc": "20.0.0", + "@nx/nx-win32-x64-msvc": "20.0.0" }, "peerDependencies": { "@swc-node/register": "^1.8.0", @@ -12592,13 +12403,13 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.0.tgz", + "integrity": "sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -14417,24 +14228,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15259,13 +15052,6 @@ "url": "https://opencollective.com/verdaccio" } }, - "node_modules/verdaccio/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/verdaccio/node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", diff --git a/package.json b/package.json index 1f02d07d..4ca760e0 100644 --- a/package.json +++ b/package.json @@ -16,19 +16,19 @@ "@commitlint/cli": "18.5.0", "@commitlint/config-conventional": "18.5.0", "@jscutlery/semver": "5.3.1", - "@nx/devkit": "19.8.4", - "@nx/eslint": "19.8.4", - "@nx/eslint-plugin": "19.8.4", - "@nx/jest": "19.8.4", - "@nx/js": "19.8.4", - "@nx/plugin": "19.8.4", - "@nx/workspace": "19.8.4", + "@nx/devkit": "20.0.0", + "@nx/eslint": "20.0.0", + "@nx/eslint-plugin": "20.0.0", + "@nx/jest": "20.0.0", + "@nx/js": "20.0.0", + "@nx/plugin": "20.0.0", + "@nx/workspace": "20.0.0", "@types/jest": "29.4.1", - "@types/node": "18.19.34", + "@types/node": "^20.14.8", "@typescript-eslint/eslint-plugin": "7.17.0", "@typescript-eslint/parser": "7.17.0", "commitizen": "4.3.1", - "create-nx-workspace": "19.8.4", + "create-nx-workspace": "20.0.0", "cz-conventional-changelog": "3.3.0", "eslint": "8.57.0", "eslint-config-prettier": "9.0.0", @@ -36,7 +36,7 @@ "jest": "29.4.3", "jest-environment-jsdom": "^29.4.1", "jsonc-eslint-parser": "^2.1.0", - "nx": "19.8.4", + "nx": "20.0.0", "prettier": "2.8.4", "pretty-quick": "^3.1.3", "ts-jest": "29.1.0", @@ -59,5 +59,10 @@ }, "nx": { "includedScripts": [] + }, + "overrides": { + "@jscutlery/semver": { + "@nx/devkit": "^20.0.0" + } } } diff --git a/packages/ngx-deploy-npm/package.json b/packages/ngx-deploy-npm/package.json index fa82a8cc..c614827e 100644 --- a/packages/ngx-deploy-npm/package.json +++ b/packages/ngx-deploy-npm/package.json @@ -9,7 +9,7 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@nx/devkit": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0", + "@nx/devkit": ">=16.0.0 <=21.0.0", "tslib": "^2.3.0" }, "repository": {