diff --git a/packages/builder/package.json b/packages/builder/package.json index b8e3aae6e..0c45d6c06 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -18,10 +18,6 @@ "LICENSE", "builders.json" ], - "dependencies": { - "@nx/devkit": ">= 19.5.4 < 20.0.0", - "nx": ">= 19.5.4 < 20.0.0" - }, "devDependencies": { "@angular-devkit/architect": ">= 0.1800.0 < 0.1900.0", "@angular-devkit/core": ">= 18.0.0 < 19.0.0" diff --git a/packages/builder/src/lint.impl.ts b/packages/builder/src/lint.impl.ts index 6800b8502..6b3d68d26 100644 --- a/packages/builder/src/lint.impl.ts +++ b/packages/builder/src/lint.impl.ts @@ -1,25 +1,20 @@ -import type { BuilderOutput } from '@angular-devkit/architect'; -import { - convertNxExecutor, - joinPathFragments, - workspaceRoot, -} from '@nx/devkit'; +import { createBuilder, type BuilderOutput } from '@angular-devkit/architect'; import type { ESLint } from 'eslint'; import { existsSync, mkdirSync, writeFileSync } from 'fs'; import { dirname, join, resolve } from 'path'; import type { Schema } from './schema'; import { resolveAndInstantiateESLint } from './utils/eslint-utils'; -export default convertNxExecutor( +export default createBuilder( async (options: Schema, context): Promise => { - const systemRoot = context.root; + const systemRoot = context.workspaceRoot; // eslint resolves files relative to the current working directory. // We want these paths to always be resolved relative to the workspace // root to be able to run the lint executor from any subfolder. process.chdir(systemRoot); - const projectName = context.projectName || ''; + const projectName = context.target?.project ?? ''; const printInfo = options.format && !options.silent; if (printInfo) { @@ -43,9 +38,7 @@ export default convertNxExecutor( * we only want to support it if the user has explicitly opted into it by converting * their root ESLint config to use eslint.config.js */ - const useFlatConfig = existsSync( - joinPathFragments(workspaceRoot, 'eslint.config.js'), - ); + const useFlatConfig = existsSync(join(systemRoot, 'eslint.config.js')); const { eslint, ESLint } = await resolveAndInstantiateESLint( eslintConfigPath, options, @@ -74,8 +67,9 @@ export default convertNxExecutor( ) ) { let eslintConfigPathForError = `for ${projectName}`; - if (context.projectsConfigurations?.projects?.[projectName]?.root) { - const { root } = context.projectsConfigurations.projects[projectName]; + const projectMetadata = await context.getProjectMetadata(projectName); + if (projectMetadata?.root) { + const { root } = projectMetadata; eslintConfigPathForError = `\`${root}/.eslintrc.json\``; } @@ -168,7 +162,7 @@ For full guidance on how to resolve this issue, please see https://github.com/an const formattedResults = await formatter.format(finalLintResults); if (options.outputFile) { - const pathToOutputFile = join(context.root, options.outputFile); + const pathToOutputFile = join(systemRoot, options.outputFile); mkdirSync(dirname(pathToOutputFile), { recursive: true }); writeFileSync(pathToOutputFile, formattedResults); } else { diff --git a/packages/schematics/package.json b/packages/schematics/package.json index b4536c4ea..11b944a4e 100644 --- a/packages/schematics/package.json +++ b/packages/schematics/package.json @@ -38,9 +38,7 @@ "dependencies": { "@angular-eslint/eslint-plugin": "18.2.0", "@angular-eslint/eslint-plugin-template": "18.2.0", - "@nx/devkit": ">= 19.5.4 < 20.0.0", "ignore": "5.3.2", - "nx": "^19.0.6", "semver": "7.6.3", "strip-json-comments": "3.1.1" }, diff --git a/packages/schematics/src/add-eslint-to-project/index.ts b/packages/schematics/src/add-eslint-to-project/index.ts index a91f56298..dcce12a95 100644 --- a/packages/schematics/src/add-eslint-to-project/index.ts +++ b/packages/schematics/src/add-eslint-to-project/index.ts @@ -1,5 +1,5 @@ -import type { Tree } from '../devkit-imports'; -import { convertNxGenerator } from '../devkit-imports'; +import type { Rule, Tree } from '@angular-devkit/schematics'; +import { chain } from '@angular-devkit/schematics'; import { addESLintTargetToProject, createESLintConfigForProject, @@ -11,26 +11,27 @@ interface Schema { setParserOptionsProject?: boolean; } -export default convertNxGenerator(async (tree: Tree, options: Schema) => { - const projectName = determineTargetProjectName(tree, options.project); - if (!projectName) { - throw new Error( - '\n' + - ` +export default function addESLintToProject(schema: Schema): Rule { + return (tree: Tree) => { + const projectName = determineTargetProjectName(tree, schema.project); + if (!projectName) { + throw new Error( + '\n' + + ` Error: You must specify a project to add ESLint to because you have multiple projects in your angular.json E.g. npx ng g @angular-eslint/schematics:add-eslint-to-project {{YOUR_PROJECT_NAME_GOES_HERE}} - `.trim(), - ); - } - - // Create the config file first so that we can check for its existence when setting the target - createESLintConfigForProject( - tree, - projectName, - options.setParserOptionsProject ?? false, - ); - - // Update the lint builder and config in angular.json - addESLintTargetToProject(tree, projectName, 'lint'); -}); + `.trim(), + ); + } + return chain([ + // Create the ESLint config file for the project + createESLintConfigForProject( + projectName, + schema.setParserOptionsProject ?? false, + ), + // Set the lint builder and config in angular.json + addESLintTargetToProject(projectName, 'lint'), + ]); + }; +} diff --git a/packages/schematics/src/application/index.ts b/packages/schematics/src/application/index.ts index 3bf102c65..210710ea8 100644 --- a/packages/schematics/src/application/index.ts +++ b/packages/schematics/src/application/index.ts @@ -1,14 +1,11 @@ +import type { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { chain, externalSchematic } from '@angular-devkit/schematics'; /** * We are able to use the full, unaltered Schema directly from @schematics/angular * The applicable json file is copied from node_modules as a prebuiid step to ensure * they stay in sync. */ import type { Schema as AngularSchema } from '@schematics/angular/application/schema'; -import type { Tree } from '../devkit-imports'; -import { - convertNxGenerator, - wrapAngularDevkitSchematic, -} from '../devkit-imports'; import { addESLintTargetToProject, createESLintConfigForProject, @@ -18,25 +15,27 @@ interface Schema extends AngularSchema { setParserOptionsProject?: boolean; } -export default convertNxGenerator(async (tree: Tree, options: Schema) => { - // Remove angular-eslint specific options before passing to the Angular schematic - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { setParserOptionsProject, ...angularOptions } = options; - - const applicationGenerator = wrapAngularDevkitSchematic( - '@schematics/angular', - 'application', - ); - - await applicationGenerator(tree, angularOptions); +function eslintRelatedChanges(options: Schema) { + return chain([ + // Create the ESLint config file for the project + createESLintConfigForProject( + options.name, + options.setParserOptionsProject ?? false, + ), + // Update the lint builder and config in angular.json + addESLintTargetToProject(options.name, 'lint'), + ]); +} - // Create the config file first so that we can check for its existence when setting the target - createESLintConfigForProject( - tree, - options.name, - options.setParserOptionsProject ?? false, - ); +export default function (options: Schema): Rule { + return (host: Tree, context: SchematicContext) => { + // Remove angular-eslint specific options before passing to the Angular schematic + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { setParserOptionsProject, ...angularOptions } = options; - // Update the lint builder and config in angular.json - addESLintTargetToProject(tree, options.name, 'lint'); -}); + return chain([ + externalSchematic('@schematics/angular', 'application', angularOptions), + eslintRelatedChanges(options), + ])(host, context); + }; +} diff --git a/packages/schematics/src/library/index.ts b/packages/schematics/src/library/index.ts index 581339892..79b71bec3 100644 --- a/packages/schematics/src/library/index.ts +++ b/packages/schematics/src/library/index.ts @@ -1,14 +1,11 @@ +import type { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { chain, externalSchematic } from '@angular-devkit/schematics'; /** * We are able to use the full, unaltered Schema directly from @schematics/angular * The applicable json file is copied from node_modules as a prebuiid step to ensure * they stay in sync. */ import type { Schema as AngularSchema } from '@schematics/angular/library/schema'; -import type { Tree } from '../devkit-imports'; -import { - convertNxGenerator, - wrapAngularDevkitSchematic, -} from '../devkit-imports'; import { addESLintTargetToProject, createESLintConfigForProject, @@ -18,25 +15,27 @@ interface Schema extends AngularSchema { setParserOptionsProject?: boolean; } -export default convertNxGenerator(async (tree: Tree, options: Schema) => { - // Remove angular-eslint specific options before passing to the Angular schematic - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { setParserOptionsProject, ...angularOptions } = options; - - const libraryGenerator = wrapAngularDevkitSchematic( - '@schematics/angular', - 'library', - ); - - await libraryGenerator(tree, angularOptions); +function eslintRelatedChanges(options: Schema) { + return chain([ + // Create the ESLint config file for the project + createESLintConfigForProject( + options.name, + options.setParserOptionsProject ?? false, + ), + // Update the lint builder and config in angular.json + addESLintTargetToProject(options.name, 'lint'), + ]); +} - // Create the config file first so that we can check for its existence when setting the target - createESLintConfigForProject( - tree, - options.name, - options.setParserOptionsProject ?? false, - ); +export default function (options: Schema): Rule { + return (host: Tree, context: SchematicContext) => { + // Remove angular-eslint specific options before passing to the Angular schematic + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { setParserOptionsProject, ...angularOptions } = options; - // Update the lint builder and config in angular.json - addESLintTargetToProject(tree, options.name, 'lint'); -}); + return chain([ + externalSchematic('@schematics/angular', 'library', angularOptions), + eslintRelatedChanges(options), + ])(host, context); + }; +} diff --git a/packages/schematics/src/utils.ts b/packages/schematics/src/utils.ts index 6d586f1a8..e454d6e61 100644 --- a/packages/schematics/src/utils.ts +++ b/packages/schematics/src/utils.ts @@ -1,13 +1,11 @@ import type { Path } from '@angular-devkit/core'; import { join, normalize } from '@angular-devkit/core'; import type { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; -import { callRule } from '@angular-devkit/schematics'; +import { callRule, chain } from '@angular-devkit/schematics'; import type { Ignore } from 'ignore'; import ignore from 'ignore'; import semver from 'semver'; import stripJsonComments from 'strip-json-comments'; -import type { Tree as NxTree, ProjectConfiguration } from './devkit-imports'; -import { offsetFromRoot, readJson, writeJson } from './devkit-imports'; const DEFAULT_PREFIX = 'app'; @@ -76,65 +74,79 @@ export function getTargetsConfigFromProject( return null; } -function serializeJson(json: unknown): string { - return `${JSON.stringify(json, null, 2)}\n`; +function offsetFromRoot(fullPathToSourceDir: string): string { + const parts = normalize(fullPathToSourceDir).split('/'); + let offset = ''; + for (let i = 0; i < parts.length; ++i) { + offset += '../'; + } + return offset; } -function readProjectConfiguration(tree: NxTree, projectName: string) { - const angularJSON = readJson(tree, 'angular.json'); - return angularJSON.projects[projectName]; +function serializeJson(json: unknown): string { + return `${JSON.stringify(json, null, 2)}\n`; } -function updateProjectConfiguration( - tree: NxTree, - projectName: string, - projectConfig: ProjectConfiguration, -) { - const angularJSON = readJson(tree, 'angular.json'); - angularJSON.projects[projectName] = projectConfig; - writeJson(tree, 'angular.json', angularJSON); +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function updateWorkspaceInTree( + callback: (json: T, context: SchematicContext, host: Tree) => O, +): Rule { + return (host: Tree, context: SchematicContext): Tree => { + const path = 'angular.json'; + host.overwrite( + path, + serializeJson(callback(readJsonInTree(host, path), context, host)), + ); + return host; + }; } export function addESLintTargetToProject( - tree: NxTree, projectName: string, targetName: 'eslint' | 'lint', -) { - const existingProjectConfig = readProjectConfiguration(tree, projectName); +): Rule { + return updateWorkspaceInTree((workspaceJson, _, tree) => { + const existingProjectConfig = workspaceJson.projects[projectName]; - let lintFilePatternsRoot = ''; + let lintFilePatternsRoot = ''; - // Default Angular CLI project at the root of the workspace - if (existingProjectConfig.root === '') { - lintFilePatternsRoot = existingProjectConfig.sourceRoot || 'src'; - } else { - lintFilePatternsRoot = existingProjectConfig.root; - } + // Default Angular CLI project at the root of the workspace + if (existingProjectConfig.root === '') { + lintFilePatternsRoot = existingProjectConfig.sourceRoot || 'src'; + } else { + lintFilePatternsRoot = existingProjectConfig.root; + } - const eslintTargetConfig = { - builder: '@angular-eslint/builder:lint', - options: { - lintFilePatterns: [ - `${lintFilePatternsRoot}/**/*.ts`, - `${lintFilePatternsRoot}/**/*.html`, - ], - } as Record, - }; + const eslintTargetConfig = { + builder: '@angular-eslint/builder:lint', + options: { + lintFilePatterns: [ + `${lintFilePatternsRoot}/**/*.ts`, + `${lintFilePatternsRoot}/**/*.html`, + ], + }, + }; - let eslintConfig; - if (existingProjectConfig.root !== '') { - const flatConfigPath = join(existingProjectConfig.root, 'eslint.config.js'); - if (tree.exists(flatConfigPath)) { - eslintConfig = flatConfigPath; + let eslintConfig; + if (existingProjectConfig.root !== '') { + const flatConfigPath = join( + existingProjectConfig.root, + 'eslint.config.js', + ); + if (tree.exists(flatConfigPath)) { + eslintConfig = flatConfigPath; + } } - } - eslintTargetConfig.options.eslintConfig = eslintConfig; + // TODO: fix + (eslintTargetConfig.options as any).eslintConfig = eslintConfig; - existingProjectConfig.architect = existingProjectConfig.architect || {}; - existingProjectConfig.architect[targetName] = eslintTargetConfig; + existingProjectConfig.architect = existingProjectConfig.architect || {}; - updateProjectConfiguration(tree, projectName, existingProjectConfig); + existingProjectConfig.architect[targetName] = eslintTargetConfig; + + return workspaceJson; + }); } /** @@ -392,76 +404,89 @@ module.exports = tseslint.config( } export function createESLintConfigForProject( - tree: NxTree, projectName: string, setParserOptionsProject: boolean, -) { - const existingProjectConfig = readProjectConfiguration(tree, projectName); - const targets = - existingProjectConfig.architect || existingProjectConfig.targets; - const { root: projectRoot, projectType, prefix } = existingProjectConfig; - - const hasE2e = !!targets?.e2e; - - const useFlatConfig = shouldUseFlatConfig(tree); - const alreadyHasRootFlatConfig = tree.exists('eslint.config.js'); - const alreadyHasRootESLintRC = tree.exists('.eslintrc.json'); - - /** - * If the root is an empty string it must be the initial project created at the - * root by the Angular CLI's workspace schematic - */ - if (projectRoot === '') { - return createRootESLintConfigFile( - tree, - prefix || DEFAULT_PREFIX, - useFlatConfig, - ); - } - - // If, for whatever reason, the root eslint.config.js/.eslintrc.json doesn't exist yet, create it - if (!alreadyHasRootESLintRC && !alreadyHasRootFlatConfig) { - createRootESLintConfigFile(tree, prefix || DEFAULT_PREFIX, useFlatConfig); - } +): Rule { + return (tree: Tree) => { + const angularJSON = readJsonInTree(tree, 'angular.json'); + const { + root: projectRoot, + projectType, + prefix, + } = angularJSON.projects[projectName]; + + const hasE2e = determineTargetProjectHasE2E(angularJSON, projectName); + const useFlatConfig = shouldUseFlatConfig(tree); + const alreadyHasRootFlatConfig = tree.exists('eslint.config.js'); + const alreadyHasRootESLintRC = tree.exists('.eslintrc.json'); - if (useFlatConfig) { - tree.write( - join(normalize(projectRoot), 'eslint.config.js'), - createStringifiedProjectESLintConfig( - projectRoot, - projectType || 'library', - prefix || DEFAULT_PREFIX, - setParserOptionsProject, - hasE2e, - ), - ); - } else { - writeJson( - tree, - join(normalize(projectRoot), '.eslintrc.json'), - createProjectESLintConfig( - projectRoot, - projectType || 'library', + /** + * If the root is an empty string it must be the initial project created at the + * root by the Angular CLI's workspace schematic + */ + if (projectRoot === '') { + return createRootESLintConfigFile( prefix || DEFAULT_PREFIX, - setParserOptionsProject, - hasE2e, - ), - ); - } + useFlatConfig, + ); + } + + const rules = []; + + // If, for whatever reason, the root eslint.config.js/.eslintrc.json doesn't exist yet, create it + if (!alreadyHasRootESLintRC && !alreadyHasRootFlatConfig) { + rules.push( + createRootESLintConfigFile(prefix || DEFAULT_PREFIX, useFlatConfig), + ); + } + + if (useFlatConfig) { + rules.push((tree: Tree) => + tree.create( + join(normalize(projectRoot), 'eslint.config.js'), + createStringifiedProjectESLintConfig( + projectRoot, + projectType || 'library', + prefix || DEFAULT_PREFIX, + setParserOptionsProject, + hasE2e, + ), + ), + ); + } else { + rules.push( + updateJsonInTree(join(normalize(projectRoot), '.eslintrc.json'), () => + createProjectESLintConfig( + projectRoot, + projectType || 'library', + prefix || DEFAULT_PREFIX, + setParserOptionsProject, + hasE2e, + ), + ), + ); + } + + return chain(rules); + }; } function createRootESLintConfigFile( - tree: NxTree, prefix: string, useFlatConfig: boolean, -) { - if (useFlatConfig) { - return tree.write( - 'eslint.config.js', - createStringifiedRootESLintConfig(prefix), +): Rule { + return (tree) => { + if (useFlatConfig) { + return tree.create( + 'eslint.config.js', + createStringifiedRootESLintConfig(prefix), + ); + } + + return updateJsonInTree('.eslintrc.json', () => + createRootESLintConfig(prefix), ); - } - return writeJson(tree, '.eslintrc.json', createRootESLintConfig(prefix)); + }; } export function sortObjectByKeys( @@ -482,13 +507,13 @@ export function sortObjectByKeys( * and only has a single project in their angular.json we will just go ahead and use that one. */ export function determineTargetProjectName( - tree: NxTree, + tree: Tree, maybeProject?: string, ): string | null { if (maybeProject) { return maybeProject; } - const workspaceJson = readJson(tree, 'angular.json'); + const workspaceJson = readJsonInTree(tree, 'angular.json'); const projects = Object.keys(workspaceJson.projects); if (projects.length === 1) { return projects[0]; @@ -496,6 +521,18 @@ export function determineTargetProjectName( return null; } +/** + * Checking if the target project has e2e setup + * Method will check if angular project architect has e2e configuration to determine if e2e setup + */ +function determineTargetProjectHasE2E( + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any + angularJSON: any, + projectName: string, +): boolean { + return !!getTargetsConfigFromProject(angularJSON.projects[projectName])?.e2e; +} + /** * See `schematicCollections` docs here: * https://github.com/angular/angular-cli/blob/8431b3f0769b5f95b9e13807a09293d820c4b017/docs/specifications/schematic-collections-config.md @@ -533,7 +570,7 @@ export function updateSchematicDefaults( * - their eslint version */ export function shouldUseFlatConfig( - tree: NxTree | Tree, + tree: Tree, existingJson?: Record, ): boolean { let useFlatConfig = true; diff --git a/packages/schematics/tests/library/index.test.ts b/packages/schematics/tests/library/index.test.ts index aa8aaa767..1cb590627 100644 --- a/packages/schematics/tests/library/index.test.ts +++ b/packages/schematics/tests/library/index.test.ts @@ -294,7 +294,7 @@ describe('library', () => { "// @ts-check const tseslint = require(\\"typescript-eslint\\"); const rootConfig = require(\\"../../eslint.config.js\\"); - + module.exports = tseslint.config( ...rootConfig, { @@ -344,7 +344,7 @@ describe('library', () => { "// @ts-check const tseslint = require(\\"typescript-eslint\\"); const rootConfig = require(\\"../../eslint.config.js\\"); - + module.exports = tseslint.config( ...rootConfig, { @@ -397,7 +397,7 @@ describe('library', () => { "// @ts-check const tseslint = require(\\"typescript-eslint\\"); const rootConfig = require(\\"../../../eslint.config.js\\"); - + module.exports = tseslint.config( ...rootConfig, { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5aedfb0dd..2ad8cb5a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -206,15 +206,9 @@ importers: packages/builder: dependencies: - '@nx/devkit': - specifier: '>= 19.5.4 < 20.0.0' - version: 19.5.7(nx@19.5.7) eslint: specifier: ^8.57.0 || ^9.0.0 version: 9.8.0 - nx: - specifier: '>= 19.5.4 < 20.0.0' - version: 19.5.7(@swc-node/register@1.10.9)(@swc/core@1.7.10) typescript: specifier: '*' version: 5.5.4 @@ -300,15 +294,9 @@ importers: '@angular-eslint/eslint-plugin-template': specifier: 18.2.0 version: link:../eslint-plugin-template - '@nx/devkit': - specifier: '>= 19.5.4 < 20.0.0' - version: 19.5.7(nx@19.5.7) ignore: specifier: 5.3.2 version: 5.3.2 - nx: - specifier: ^19.0.6 - version: 19.5.7(@swc-node/register@1.10.9)(@swc/core@1.7.10) semver: specifier: 7.6.3 version: 7.6.3 @@ -2023,16 +2011,19 @@ packages: dependencies: '@emnapi/wasi-threads': 1.0.1 tslib: 2.6.3 + dev: true /@emnapi/runtime@1.2.0: resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} dependencies: tslib: 2.6.3 + dev: true /@emnapi/wasi-threads@1.0.1: resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} dependencies: tslib: 2.6.3 + dev: true /@esbuild/aix-ppc64@0.23.0: resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} @@ -2622,6 +2613,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 + dev: true /@jest/source-map@29.6.3: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} @@ -2757,6 +2749,7 @@ packages: '@emnapi/core': 1.2.0 '@emnapi/runtime': 1.2.0 '@tybys/wasm-util': 0.9.0 + dev: true /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2875,6 +2868,7 @@ packages: '@nx/devkit': 19.5.7(nx@19.5.7) transitivePeerDependencies: - nx + dev: true /@nrwl/eslint-plugin-nx@19.5.7(@swc-node/register@1.10.9)(@swc/core@1.7.10)(@types/node@20.14.15)(@typescript-eslint/parser@8.0.1)(eslint-config-prettier@9.1.0)(eslint@9.9.0)(nx@19.5.7)(typescript@5.5.4)(verdaccio@5.32.1): resolution: {integrity: sha512-yNi2U3Ro1RcNFb22urDs0raOfVg1ISKcrlx+tR/E3e9Mw/yTJVGg7wPDL4CJK0Xwt2AC1BPnRRechCJv6llqsw==} @@ -2982,6 +2976,7 @@ packages: - '@swc-node/register' - '@swc/core' - debug + dev: true /@nrwl/workspace@19.5.7(@swc-node/register@1.10.9)(@swc/core@1.7.10): resolution: {integrity: sha512-VzQmG+de1DvQnmWy2acMkxBrRPxFdvQ06Tja6tThn3UWMB9RwK2wKIEERttRhjBLGjGlr6ARi9Bd8zYTgpW0Lw==} @@ -3008,6 +3003,7 @@ packages: tmp: 0.2.3 tslib: 2.6.3 yargs-parser: 21.1.1 + dev: true /@nx/eslint-plugin@19.5.7(@swc-node/register@1.10.9)(@swc/core@1.7.10)(@types/node@20.14.15)(@typescript-eslint/parser@8.0.1)(eslint-config-prettier@9.1.0)(eslint@9.9.0)(nx@19.5.7)(typescript@5.5.4)(verdaccio@5.32.1): resolution: {integrity: sha512-cldJ2THoCz3mbfqX/gHnm+XLrmDYa5WcXav8f/AGqeGYLwHJdBdgj151lcVOgIKChR5judn9bpLMGt7J2zq0Yg==} @@ -3230,6 +3226,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@nx/nx-darwin-x64@19.5.7: @@ -3238,6 +3235,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@nx/nx-freebsd-x64@19.5.7: @@ -3246,6 +3244,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@nx/nx-linux-arm-gnueabihf@19.5.7: @@ -3254,6 +3253,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@nx/nx-linux-arm64-gnu@19.5.7: @@ -3262,6 +3262,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@nx/nx-linux-arm64-musl@19.5.7: @@ -3270,6 +3271,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@nx/nx-linux-x64-gnu@19.5.7: @@ -3278,6 +3280,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@nx/nx-linux-x64-musl@19.5.7: @@ -3286,6 +3289,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@nx/nx-win32-arm64-msvc@19.5.7: @@ -3294,6 +3298,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@nx/nx-win32-x64-msvc@19.5.7: @@ -3302,6 +3307,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@nx/plugin@19.5.7(@swc-node/register@1.10.9)(@swc/core@1.7.10)(@types/node@20.14.15)(eslint@9.9.0)(nx@19.5.7)(typescript@5.5.4)(verdaccio@5.32.1): @@ -3447,6 +3453,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-darwin-x64@1.10.2: @@ -3454,6 +3461,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-freebsd-x64@1.10.2: @@ -3461,6 +3469,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-linux-arm-gnueabihf@1.10.2: @@ -3468,6 +3477,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-linux-arm64-gnu@1.10.2: @@ -3475,6 +3485,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-linux-arm64-musl@1.10.2: @@ -3482,6 +3493,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-linux-x64-gnu@1.10.2: @@ -3489,6 +3501,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-linux-x64-musl@1.10.2: @@ -3496,6 +3509,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-wasm32-wasi@1.10.2: @@ -3505,6 +3519,7 @@ packages: requiresBuild: true dependencies: '@napi-rs/wasm-runtime': 0.2.4 + dev: true optional: true /@oxc-resolver/binding-win32-arm64-msvc@1.10.2: @@ -3512,6 +3527,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@oxc-resolver/binding-win32-x64-msvc@1.10.2: @@ -3519,6 +3535,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@phenomnomnominal/tsquery@5.0.1(typescript@5.5.4): @@ -3799,6 +3816,7 @@ packages: /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true /@sindresorhus/is@4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -3826,6 +3844,7 @@ packages: dependencies: '@swc/core': 1.7.10(@swc/helpers@0.5.12) '@swc/types': 0.1.12 + dev: true /@swc-node/register@1.10.9(@swc/core@1.7.10)(@swc/types@0.1.12)(typescript@5.5.4): resolution: {integrity: sha512-iXy2sjP0phPEpK2yivjRC3PAgoLaT4sjSk0LDWCTdcTBJmR4waEog0E6eJbvoOkLkOtWw37SB8vCkl/bbh4+8A==} @@ -3845,12 +3864,14 @@ packages: transitivePeerDependencies: - '@swc/types' - supports-color + dev: true /@swc-node/sourcemap-support@0.5.1: resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} dependencies: source-map-support: 0.5.21 tslib: 2.6.3 + dev: true /@swc/cli@0.4.0(@swc/core@1.7.10): resolution: {integrity: sha512-4JdVrPtF/4rCMXp6Q1h5I6YkYZrCCcqod7Wk97ZQq7K8vNGzJUryBv4eHCvqx5sJOJBrbYm9fcswe1B0TygNoA==} @@ -3881,6 +3902,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@swc/core-darwin-x64@1.7.10: @@ -3889,6 +3911,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm-gnueabihf@1.7.10: @@ -3897,6 +3920,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm64-gnu@1.7.10: @@ -3905,6 +3929,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm64-musl@1.7.10: @@ -3913,6 +3938,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-x64-gnu@1.7.10: @@ -3921,6 +3947,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-x64-musl@1.7.10: @@ -3929,6 +3956,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-win32-arm64-msvc@1.7.10: @@ -3937,6 +3965,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core-win32-ia32-msvc@1.7.10: @@ -3945,6 +3974,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core-win32-x64-msvc@1.7.10: @@ -3953,6 +3983,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core@1.7.10(@swc/helpers@0.5.12): @@ -3979,19 +4010,23 @@ packages: '@swc/core-win32-arm64-msvc': 1.7.10 '@swc/core-win32-ia32-msvc': 1.7.10 '@swc/core-win32-x64-msvc': 1.7.10 + dev: true /@swc/counter@0.1.3: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true /@swc/helpers@0.5.12: resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} dependencies: tslib: 2.6.3 + dev: true /@swc/types@0.1.12: resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} dependencies: '@swc/counter': 0.1.3 + dev: true /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -4037,6 +4072,7 @@ packages: resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} dependencies: tslib: 2.6.3 + dev: true /@types/aria-query@5.0.4: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -4788,6 +4824,7 @@ packages: /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: true /@yarnpkg/parsers@3.0.0-rc.46: resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} @@ -4795,12 +4832,14 @@ packages: dependencies: js-yaml: 3.14.1 tslib: 2.6.3 + dev: true /@zkochan/js-yaml@0.0.7: resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true dependencies: argparse: 2.0.1 + dev: true /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -4928,6 +4967,7 @@ packages: /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + dev: true /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -4968,6 +5008,7 @@ packages: /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + dev: true /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} @@ -4999,6 +5040,7 @@ packages: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 + dev: true /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -5038,9 +5080,11 @@ packages: /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} @@ -5068,6 +5112,7 @@ packages: proxy-from-env: 1.1.0 transitivePeerDependencies: - debug + dev: true /axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -5351,6 +5396,7 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -5530,6 +5576,7 @@ packages: /cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} + dev: true /cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} @@ -5568,6 +5615,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true /clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} @@ -5609,6 +5657,7 @@ packages: /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true /columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} @@ -5623,6 +5672,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true /commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} @@ -5996,10 +6046,12 @@ packages: /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + dev: true /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: true /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} @@ -6049,6 +6101,7 @@ packages: /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} @@ -6073,13 +6126,16 @@ packages: engines: {node: '>=12'} dependencies: dotenv: 16.4.5 + dev: true /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dev: true /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true /duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -6126,6 +6182,7 @@ packages: hasBin: true dependencies: jake: 10.9.2 + dev: true /electron-to-chromium@1.5.6: resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} @@ -6142,6 +6199,7 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -6164,12 +6222,14 @@ packages: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 + dev: true /enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 + dev: true /env-cmd@10.1.0: resolution: {integrity: sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==} @@ -6289,6 +6349,7 @@ packages: /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + dev: true /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -6297,6 +6358,7 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: true /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -6458,6 +6520,7 @@ packages: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + dev: true /esquery@1.6.0: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} @@ -6740,6 +6803,7 @@ packages: engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 + dev: true /file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -6760,6 +6824,7 @@ packages: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 + dev: true /filename-reserved-regex@3.0.0: resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} @@ -6864,6 +6929,7 @@ packages: /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + dev: true /flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -6876,6 +6942,7 @@ packages: peerDependenciesMeta: debug: optional: true + dev: true /foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} @@ -6905,6 +6972,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} @@ -6927,9 +6995,11 @@ packages: resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} dependencies: js-yaml: 3.14.1 + dev: true /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true /fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} @@ -6938,6 +7008,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 + dev: true /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} @@ -6987,6 +7058,7 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + dev: true /get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} @@ -7173,6 +7245,7 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -7499,6 +7572,7 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + dev: true /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} @@ -7507,6 +7581,7 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + dev: true /is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} @@ -7620,6 +7695,7 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -7717,6 +7793,7 @@ packages: chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 + dev: true /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} @@ -7832,6 +7909,7 @@ packages: diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true /jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} @@ -7866,6 +7944,7 @@ packages: /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true /jest-haste-map@29.7.0: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} @@ -8142,6 +8221,7 @@ packages: dependencies: argparse: 1.0.10 esprima: 4.0.1 + dev: true /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -8230,6 +8310,7 @@ packages: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + dev: true /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} @@ -8243,6 +8324,7 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true /jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} @@ -8253,6 +8335,7 @@ packages: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + dev: true /jsonify@0.0.1: resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} @@ -8349,6 +8432,7 @@ packages: /lines-and-columns@2.0.4: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /lint-staged@15.2.9: resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==} @@ -8666,6 +8750,7 @@ packages: /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: true /mime-db@1.53.0: resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} @@ -8677,6 +8762,7 @@ packages: engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -8730,6 +8816,7 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true /minimatch@7.4.6: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} @@ -8743,6 +8830,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true /minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} @@ -8756,6 +8844,7 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true /minipass-collect@2.0.1: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} @@ -8964,6 +9053,7 @@ packages: /node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + dev: true /node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -9080,6 +9170,7 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} @@ -9151,6 +9242,7 @@ packages: '@nx/nx-win32-x64-msvc': 19.5.7 transitivePeerDependencies: - debug + dev: true /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -9192,6 +9284,7 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -9228,6 +9321,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true /optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -9252,6 +9346,7 @@ packages: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 + dev: true /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -9293,6 +9388,7 @@ packages: '@oxc-resolver/binding-wasm32-wasi': 1.10.2 '@oxc-resolver/binding-win32-arm64-msvc': 1.10.2 '@oxc-resolver/binding-win32-x64-msvc': 1.10.2 + dev: true /p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} @@ -9591,6 +9687,7 @@ packages: /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + dev: true /piscina@4.6.1: resolution: {integrity: sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==} @@ -9633,6 +9730,7 @@ packages: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.3.1 + dev: true /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} @@ -9696,6 +9794,7 @@ packages: /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -9786,6 +9885,7 @@ packages: /react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -9878,6 +9978,7 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -10287,10 +10388,12 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -10325,6 +10428,7 @@ packages: /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true /sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} @@ -10405,6 +10509,7 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -10451,6 +10556,7 @@ packages: /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + dev: true /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} @@ -10489,6 +10595,7 @@ packages: duplexer: 0.1.2 minimist: 1.2.8 through: 2.3.8 + dev: true /strtok3@7.1.1: resolution: {integrity: sha512-mKX8HA/cdBqMKUr0MMZAFssCkIGoZeSCMXgnt79yKxNFguMLVFgRe6wB+fsL0NmoHDbeyZXczy7vEPSoo3rkzg==} @@ -10537,6 +10644,7 @@ packages: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 + dev: true /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -10602,6 +10710,7 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true /timers-ext@0.1.8: resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} @@ -10621,6 +10730,7 @@ packages: /tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} + dev: true /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -10789,6 +10899,7 @@ packages: json5: 2.2.3 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true /tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} @@ -10986,6 +11097,7 @@ packages: /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + dev: true /unix-crypt-td-js@1.1.4: resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} @@ -11228,6 +11340,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -11249,6 +11362,7 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true /write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} @@ -11266,6 +11380,7 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -11293,6 +11408,7 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + dev: true /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} @@ -11305,6 +11421,7 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}