mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-11-08 23:25:51 +01:00
chore: migrate config package to vitest (#4760)
* chore: migrate config package to vitest * Update pnpm-lock.yaml * improve win32 test * Create moody-mugs-pay.md
This commit is contained in:
parent
8ef7a285e5
commit
8c10a3ec31
5
.changeset/moody-mugs-pay.md
Normal file
5
.changeset/moody-mugs-pay.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'@verdaccio/config': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
chore: improve debug code and refactor code
|
@ -88,7 +88,7 @@
|
|||||||
"@verdaccio/eslint-config": "workspace:*",
|
"@verdaccio/eslint-config": "workspace:*",
|
||||||
"@verdaccio/types": "workspace:*",
|
"@verdaccio/types": "workspace:*",
|
||||||
"@verdaccio/ui-theme": "workspace:*",
|
"@verdaccio/ui-theme": "workspace:*",
|
||||||
"@vitest/coverage-v8": "0.34.6",
|
"@vitest/coverage-v8": "2.0.5",
|
||||||
"aria-query": "5.1.3",
|
"aria-query": "5.1.3",
|
||||||
"babel-core": "7.0.0-bridge.0",
|
"babel-core": "7.0.0-bridge.0",
|
||||||
"babel-jest": "29.7.0",
|
"babel-jest": "29.7.0",
|
||||||
@ -128,7 +128,7 @@
|
|||||||
"verdaccio-auth-memory": "workspace:*",
|
"verdaccio-auth-memory": "workspace:*",
|
||||||
"verdaccio-htpasswd": "workspace:*",
|
"verdaccio-htpasswd": "workspace:*",
|
||||||
"verdaccio-memory": "workspace:*",
|
"verdaccio-memory": "workspace:*",
|
||||||
"vitest": "1.6.0"
|
"vitest": "2.0.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"prepare": "husky install",
|
"prepare": "husky install",
|
||||||
|
@ -26,11 +26,11 @@
|
|||||||
"verdaccio"
|
"verdaccio"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=14"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rimraf ./build",
|
"clean": "rimraf ./build",
|
||||||
"test": "jest",
|
"test": "vitest run",
|
||||||
"type-check": "tsc --noEmit -p tsconfig.build.json",
|
"type-check": "tsc --noEmit -p tsconfig.build.json",
|
||||||
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
|
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
|
||||||
"build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",
|
"build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",
|
||||||
|
@ -1,16 +1,13 @@
|
|||||||
import buildDebug from 'debug';
|
import buildDebug from 'debug';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
import os from 'os';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
||||||
import { CHARACTER_ENCODING } from '@verdaccio/core';
|
|
||||||
|
|
||||||
import { fileExists, folderExists } from './config-utils';
|
import { fileExists, folderExists } from './config-utils';
|
||||||
|
|
||||||
const CONFIG_FILE = 'config.yaml';
|
const CONFIG_FILE = 'config.yaml';
|
||||||
const XDG = 'xdg';
|
const XDG = 'xdg';
|
||||||
const WIN = 'win';
|
|
||||||
const WIN32 = 'win32';
|
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const pkgJSON = {
|
const pkgJSON = {
|
||||||
name: 'verdaccio',
|
name: 'verdaccio',
|
||||||
@ -18,23 +15,27 @@ const pkgJSON = {
|
|||||||
|
|
||||||
export type SetupDirectory = {
|
export type SetupDirectory = {
|
||||||
path: string;
|
path: string;
|
||||||
type: string;
|
type: 'xdg' | 'win' | 'win32' | 'def' | 'old';
|
||||||
};
|
};
|
||||||
|
|
||||||
const debug = buildDebug('verdaccio:config');
|
const debug = buildDebug('verdaccio:config:config-path');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find and get the first config file that match.
|
* Find and get the first config file that match.
|
||||||
* @return {String} the config file path
|
* @return {String} the config file path
|
||||||
*/
|
*/
|
||||||
function findConfigFile(configPath?: string): string {
|
function findConfigFile(configPath?: string): string {
|
||||||
|
debug('searching for config file %o', configPath);
|
||||||
if (typeof configPath !== 'undefined') {
|
if (typeof configPath !== 'undefined') {
|
||||||
return path.resolve(configPath);
|
const configLocation = path.resolve(configPath);
|
||||||
|
debug('custom location %s', configLocation);
|
||||||
|
return configLocation;
|
||||||
}
|
}
|
||||||
|
|
||||||
const configPaths: SetupDirectory[] = getConfigPaths();
|
const configPaths: SetupDirectory[] = getConfigPaths();
|
||||||
debug('%o posible locations found', configPaths.length);
|
debug('%o posible locations found', configPaths.length);
|
||||||
if (_.isEmpty(configPaths)) {
|
if (configPaths.length === 0) {
|
||||||
|
debug('no configuration files can be processed');
|
||||||
// this should never happens
|
// this should never happens
|
||||||
throw new Error('no configuration files can be processed');
|
throw new Error('no configuration files can be processed');
|
||||||
}
|
}
|
||||||
@ -45,12 +46,12 @@ function findConfigFile(configPath?: string): string {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (typeof primaryConf !== 'undefined') {
|
if (typeof primaryConf !== 'undefined') {
|
||||||
debug('previous location exist already %s', primaryConf?.path);
|
debug('at least one primary location detected at %s', primaryConf?.path);
|
||||||
return primaryConf.path;
|
return primaryConf.path;
|
||||||
}
|
}
|
||||||
|
debug('no previous location found, creating a new one');
|
||||||
// @ts-ignore
|
debug('generating the first match path location %s', configPaths[0].path);
|
||||||
return createConfigFile(_.head(configPaths)).path;
|
return createConfigFile(configPaths[0]).path;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createConfigFile(configLocation: SetupDirectory): SetupDirectory {
|
function createConfigFile(configLocation: SetupDirectory): SetupDirectory {
|
||||||
@ -63,25 +64,37 @@ function createConfigFile(configLocation: SetupDirectory): SetupDirectory {
|
|||||||
return configLocation;
|
return configLocation;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function readDefaultConfig(): Buffer {
|
export function readDefaultConfig(): string {
|
||||||
const pathDefaultConf: string = path.resolve(__dirname, 'conf/default.yaml');
|
const pathDefaultConf: string = path.resolve(__dirname, 'conf/default.yaml');
|
||||||
try {
|
try {
|
||||||
debug('default configuration file %s', pathDefaultConf);
|
debug('the path of default config used from %s', pathDefaultConf);
|
||||||
fs.accessSync(pathDefaultConf, fs.constants.R_OK);
|
fs.accessSync(pathDefaultConf, fs.constants.R_OK);
|
||||||
|
debug('configuration file has enough permissions for reading');
|
||||||
} catch {
|
} catch {
|
||||||
|
debug('configuration file does not have enough permissions for reading');
|
||||||
throw new TypeError('configuration file does not have enough permissions for reading');
|
throw new TypeError('configuration file does not have enough permissions for reading');
|
||||||
}
|
}
|
||||||
// @ts-ignore
|
|
||||||
return fs.readFileSync(pathDefaultConf, CHARACTER_ENCODING.UTF8);
|
return fs.readFileSync(pathDefaultConf, 'utf8');
|
||||||
}
|
}
|
||||||
|
|
||||||
function createConfigFolder(configLocation): void {
|
function createConfigFolder(configLocation): void {
|
||||||
fs.mkdirSync(path.dirname(configLocation.path), { recursive: true });
|
const folder = path.dirname(configLocation.path);
|
||||||
debug(`Creating default config file in %o`, configLocation?.path);
|
debug(`creating default config file folder at %o`, folder);
|
||||||
|
fs.mkdirSync(folder, { recursive: true });
|
||||||
|
debug(`folder %o created`, folder);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateStorageLinks(configLocation, defaultConfig): string {
|
/**
|
||||||
|
* Update the storage links to the new location if it is necessary.
|
||||||
|
* @param configLocation
|
||||||
|
* @param defaultConfig
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
function updateStorageLinks(configLocation: SetupDirectory, defaultConfig: string): string {
|
||||||
|
debug('checking storage links for %s and type %s', configLocation.path, configLocation.type);
|
||||||
if (configLocation.type !== XDG) {
|
if (configLocation.type !== XDG) {
|
||||||
|
debug(`skip storage override for %s`, configLocation.type);
|
||||||
return defaultConfig;
|
return defaultConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,7 +127,11 @@ function getConfigPaths(): SetupDirectory[] {
|
|||||||
|
|
||||||
return listPaths.reduce(function (acc, currentValue: SetupDirectory | void): SetupDirectory[] {
|
return listPaths.reduce(function (acc, currentValue: SetupDirectory | void): SetupDirectory[] {
|
||||||
if (typeof currentValue !== 'undefined') {
|
if (typeof currentValue !== 'undefined') {
|
||||||
debug('directory detected path %s for type %s', currentValue?.path, currentValue.type);
|
debug(
|
||||||
|
'posible directory path generated %s for type %s',
|
||||||
|
currentValue?.path,
|
||||||
|
currentValue.type
|
||||||
|
);
|
||||||
acc.push(currentValue);
|
acc.push(currentValue);
|
||||||
}
|
}
|
||||||
return acc;
|
return acc;
|
||||||
@ -123,11 +140,22 @@ function getConfigPaths(): SetupDirectory[] {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get XDG_CONFIG_HOME or HOME location (usually unix)
|
* Get XDG_CONFIG_HOME or HOME location (usually unix)
|
||||||
|
*
|
||||||
|
* The XDG_CONFIG_HOME environment variable is also part of the XDG Base Directory Specification,
|
||||||
|
* which aims to standardize the locations where applications store configuration files and other
|
||||||
|
* user-specific data on Unix-like operating systems.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* https://specifications.freedesktop.org/basedir-spec/latest/
|
||||||
|
*
|
||||||
|
*
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const getXDGDirectory = (): SetupDirectory | void => {
|
const getXDGDirectory = (): SetupDirectory | void => {
|
||||||
const xDGConfigPath =
|
const xDGConfigPath =
|
||||||
process.env.XDG_CONFIG_HOME || (process.env.HOME && path.join(process.env.HOME, '.config'));
|
process.env.XDG_CONFIG_HOME || (process.env.HOME && path.join(process.env.HOME, '.config'));
|
||||||
|
debug('XDGConfig folder path %s', xDGConfigPath);
|
||||||
if (xDGConfigPath && folderExists(xDGConfigPath)) {
|
if (xDGConfigPath && folderExists(xDGConfigPath)) {
|
||||||
debug('XDGConfig folder path %s', xDGConfigPath);
|
debug('XDGConfig folder path %s', xDGConfigPath);
|
||||||
return {
|
return {
|
||||||
@ -143,11 +171,11 @@ const getXDGDirectory = (): SetupDirectory | void => {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const getWindowsDirectory = (): SetupDirectory | void => {
|
const getWindowsDirectory = (): SetupDirectory | void => {
|
||||||
if (process.platform === WIN32 && process.env.APPDATA && folderExists(process.env.APPDATA)) {
|
if (os.platform() === 'win32' && process.env.APPDATA && folderExists(process.env.APPDATA)) {
|
||||||
debug('is windows appdata: %s', process.env.APPDATA);
|
debug('windows appdata folder path %s', process.env.APPDATA);
|
||||||
return {
|
return {
|
||||||
path: path.resolve(path.join(process.env.APPDATA, pkgJSON.name, CONFIG_FILE)),
|
path: path.resolve(path.join(process.env.APPDATA, pkgJSON.name, CONFIG_FILE)),
|
||||||
type: WIN,
|
type: 'win',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -158,8 +186,10 @@ const getWindowsDirectory = (): SetupDirectory | void => {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const getRelativeDefaultDirectory = (): SetupDirectory => {
|
const getRelativeDefaultDirectory = (): SetupDirectory => {
|
||||||
|
const relativePath = path.resolve(path.join('.', pkgJSON.name, CONFIG_FILE));
|
||||||
|
debug('relative folder path %s', relativePath);
|
||||||
return {
|
return {
|
||||||
path: path.resolve(path.join('.', pkgJSON.name, CONFIG_FILE)),
|
path: relativePath,
|
||||||
type: 'def',
|
type: 'def',
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -169,8 +199,10 @@ const getRelativeDefaultDirectory = (): SetupDirectory => {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const getOldDirectory = (): SetupDirectory => {
|
const getOldDirectory = (): SetupDirectory => {
|
||||||
|
const oldPath = path.resolve(path.join('.', CONFIG_FILE));
|
||||||
|
debug('old folder path %s', oldPath);
|
||||||
return {
|
return {
|
||||||
path: path.resolve(path.join('.', CONFIG_FILE)),
|
path: oldPath,
|
||||||
type: 'old',
|
type: 'old',
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
|
import buildDebug from 'debug';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
|
||||||
|
const debug = buildDebug('verdaccio:config:config-utils');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check whether the path already exist.
|
* Check whether the path already exist.
|
||||||
* @param {String} path
|
* @param {String} path
|
||||||
@ -7,9 +10,13 @@ import fs from 'fs';
|
|||||||
*/
|
*/
|
||||||
export function folderExists(path: string): boolean {
|
export function folderExists(path: string): boolean {
|
||||||
try {
|
try {
|
||||||
|
debug('check folder exist', path);
|
||||||
const stat = fs.statSync(path);
|
const stat = fs.statSync(path);
|
||||||
return stat.isDirectory();
|
const isDirectory = stat.isDirectory();
|
||||||
|
debug('folder exist', isDirectory);
|
||||||
|
return isDirectory;
|
||||||
} catch (_: any) {
|
} catch (_: any) {
|
||||||
|
debug('folder %s does not exist', path);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -21,9 +28,13 @@ export function folderExists(path: string): boolean {
|
|||||||
*/
|
*/
|
||||||
export function fileExists(path: string): boolean {
|
export function fileExists(path: string): boolean {
|
||||||
try {
|
try {
|
||||||
|
debug('check file exist', path);
|
||||||
const stat = fs.statSync(path);
|
const stat = fs.statSync(path);
|
||||||
return stat.isFile();
|
const isFile = stat.isFile();
|
||||||
|
debug('file exist', isFile);
|
||||||
|
return isFile;
|
||||||
} catch (_: any) {
|
} catch (_: any) {
|
||||||
|
debug('file %s does not exist', path);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||||
|
|
||||||
exports[`Config builder should create a configuration file as yaml 1`] = `
|
exports[`Config builder > should create a configuration file as yaml 1`] = `
|
||||||
"uplinks:
|
"uplinks:
|
||||||
upstream:
|
upstream:
|
||||||
url: https://registry.verdaccio.org
|
url: https://registry.verdaccio.org
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||||
|
|
||||||
exports[`parse fromJStoYAML basic conversion roundtrip 1`] = `
|
exports[`parse > fromJStoYAML > basic conversion roundtrip 1`] = `
|
||||||
"storage: ./storage_default_storage
|
"storage: ./storage_default_storage
|
||||||
uplinks:
|
uplinks:
|
||||||
npmjs:
|
npmjs:
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { getUserAgent } from '../src';
|
import { getUserAgent } from '../src';
|
||||||
|
|
||||||
describe('getUserAgent', () => {
|
describe('getUserAgent', () => {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { ConfigBuilder } from '../src';
|
import { ConfigBuilder } from '../src';
|
||||||
|
|
||||||
describe('Config builder', () => {
|
describe('Config builder', () => {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { fileUtils } from '@verdaccio/core';
|
import { fileUtils } from '@verdaccio/core';
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { fileExists, folderExists } from '../src/config-utils';
|
import { fileExists, folderExists } from '../src/config-utils';
|
||||||
|
|
||||||
|
@ -1,106 +1,127 @@
|
|||||||
|
import fs from 'fs';
|
||||||
import os from 'os';
|
import os from 'os';
|
||||||
|
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
|
||||||
|
|
||||||
import { findConfigFile } from '../src/config-path';
|
import { findConfigFile } from '../src/config-path';
|
||||||
|
|
||||||
const mockmkDir = jest.fn();
|
|
||||||
const mockaccessSync = jest.fn();
|
|
||||||
const mockwriteFile = jest.fn();
|
|
||||||
|
|
||||||
jest.mock('fs', () => {
|
|
||||||
const fsOri = jest.requireActual('fs');
|
|
||||||
return {
|
|
||||||
...fsOri,
|
|
||||||
statSync: (path) => ({
|
|
||||||
isDirectory: () => {
|
|
||||||
if (path.match(/fail/)) {
|
|
||||||
throw Error('file does not exist');
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
accessSync: (a) => mockaccessSync(a),
|
|
||||||
mkdirSync: (a) => mockmkDir(a),
|
|
||||||
writeFileSync: (a) => mockwriteFile(a),
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
jest.mock('fs');
|
|
||||||
|
|
||||||
describe('config-path', () => {
|
describe('config-path', () => {
|
||||||
|
let statSyncMock;
|
||||||
|
let mkdirSyncMock;
|
||||||
|
let writeFileSyncMock;
|
||||||
|
let platformMock;
|
||||||
|
let accessSyncMock;
|
||||||
|
let fakeStats = {
|
||||||
|
isDirectory: vi.fn().mockReturnValue(true),
|
||||||
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.clearAllMocks();
|
// Mock only statSync method
|
||||||
jest.resetAllMocks();
|
statSyncMock = vi.spyOn(fs, 'statSync');
|
||||||
|
mkdirSyncMock = vi.spyOn(fs, 'mkdirSync');
|
||||||
|
writeFileSyncMock = vi.spyOn(fs, 'writeFileSync');
|
||||||
|
accessSyncMock = vi.spyOn(fs, 'accessSync');
|
||||||
|
platformMock = vi.spyOn(os, 'platform');
|
||||||
|
platformMock.mockReturnValue('linux');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
// Restore the original implementation after each test
|
||||||
|
statSyncMock.mockRestore();
|
||||||
|
vi.unstubAllEnvs();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('findConfigFile', () => {
|
describe('findConfigFile', () => {
|
||||||
if (os.platform() !== 'win32') {
|
describe('using defiled location from arguments', () => {
|
||||||
describe('using defiled location from arguments', () => {
|
test('with custom location', () => {
|
||||||
test('with custom location', () => {
|
// mock
|
||||||
expect(findConfigFile('/home/user/custom/location/config.yaml')).toEqual(
|
statSyncMock.mockReturnValue(fakeStats);
|
||||||
'/home/user/custom/location/config.yaml'
|
mkdirSyncMock.mockReturnValue(true);
|
||||||
);
|
writeFileSyncMock.mockReturnValue(undefined);
|
||||||
expect(mockwriteFile).not.toHaveBeenCalled();
|
expect(findConfigFile('/home/user/custom/location/config.yaml')).toEqual(
|
||||||
expect(mockmkDir).not.toHaveBeenCalled();
|
'/home/user/custom/location/config.yaml'
|
||||||
});
|
);
|
||||||
|
expect(writeFileSyncMock).not.toHaveBeenCalled();
|
||||||
|
expect(mkdirSyncMock).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('whith env variables', () => {
|
||||||
|
test('the env XDG_CONFIG_HOME is defined and the directory exist but config file is missing', async () => {
|
||||||
|
// mock
|
||||||
|
statSyncMock.mockReturnValue(fakeStats);
|
||||||
|
mkdirSyncMock.mockReturnValue(true);
|
||||||
|
writeFileSyncMock.mockReturnValue(undefined);
|
||||||
|
// node env variable
|
||||||
|
vi.stubEnv('XDG_CONFIG_HOME', '/home/user');
|
||||||
|
|
||||||
|
expect(findConfigFile()).toEqual('/home/user/verdaccio/config.yaml');
|
||||||
|
expect(writeFileSyncMock).toHaveBeenCalledWith(
|
||||||
|
'/home/user/verdaccio/config.yaml',
|
||||||
|
expect.stringContaining('packages')
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('whith env variables', () => {
|
test('with HOME if directory exist but config file is missing', () => {
|
||||||
test('with XDG_CONFIG_HOME if directory exist but config file is missing', () => {
|
// mock
|
||||||
process.env.XDG_CONFIG_HOME = '/home/user';
|
statSyncMock.mockReturnValue(fakeStats);
|
||||||
expect(findConfigFile()).toEqual('/home/user/verdaccio/config.yaml');
|
mkdirSyncMock.mockReturnValue(true);
|
||||||
expect(mockwriteFile).toHaveBeenCalledWith('/home/user/verdaccio/config.yaml');
|
writeFileSyncMock.mockReturnValue(undefined);
|
||||||
expect(mockmkDir).toHaveBeenCalledWith('/home/user/verdaccio');
|
vi.stubEnv('XDG_CONFIG_HOME', '');
|
||||||
});
|
vi.stubEnv('HOME', '/home/user');
|
||||||
|
expect(findConfigFile()).toEqual('/home/user/.config/verdaccio/config.yaml');
|
||||||
test('with HOME if directory exist but config file is missing', () => {
|
expect(writeFileSyncMock).toHaveBeenCalledWith(
|
||||||
delete process.env.XDG_CONFIG_HOME;
|
'/home/user/.config/verdaccio/config.yaml',
|
||||||
process.env.HOME = '/home/user';
|
expect.stringContaining('packages')
|
||||||
expect(findConfigFile()).toEqual('/home/user/.config/verdaccio/config.yaml');
|
);
|
||||||
expect(mockwriteFile).toHaveBeenCalledWith('/home/user/.config/verdaccio/config.yaml');
|
expect(mkdirSyncMock).toHaveBeenCalledWith(
|
||||||
expect(mockmkDir).toHaveBeenCalledWith('/home/user/.config/verdaccio');
|
'/home/user/.config/verdaccio',
|
||||||
});
|
expect.anything()
|
||||||
|
);
|
||||||
describe('error handling', () => {
|
|
||||||
test('XDG_CONFIG_HOME is not directory fallback to default', () => {
|
|
||||||
process.env.XDG_CONFIG_HOME = '/home/user/fail';
|
|
||||||
mockaccessSync.mockImplementation(() => {});
|
|
||||||
mockwriteFile.mockImplementation(() => {});
|
|
||||||
expect(findConfigFile()).toMatch('packages/config/verdaccio/config.yaml');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('no permissions on read default config file', () => {
|
|
||||||
process.env.XDG_CONFIG_HOME = '/home/user';
|
|
||||||
mockaccessSync.mockImplementation(() => {
|
|
||||||
throw new Error('error on write file');
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(function () {
|
|
||||||
findConfigFile();
|
|
||||||
}).toThrow(/configuration file does not have enough permissions for reading/);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('with no env variables', () => {
|
describe('error handling', () => {
|
||||||
test('with relative location', () => {
|
test('XDG_CONFIG_HOME is not directory fallback to default', () => {
|
||||||
mockaccessSync.mockImplementation(() => {});
|
// mock
|
||||||
delete process.env.XDG_CONFIG_HOME;
|
statSyncMock.mockReturnValue({
|
||||||
delete process.env.HOME;
|
isDirectory: vi.fn().mockReturnValue(false),
|
||||||
process.env.APPDATA = '/app/data/';
|
});
|
||||||
|
mkdirSyncMock.mockReturnValue(true);
|
||||||
|
writeFileSyncMock.mockReturnValue(undefined);
|
||||||
|
// node env variable
|
||||||
|
vi.stubEnv('XDG_CONFIG_HOME', '/home/user/fail');
|
||||||
|
|
||||||
expect(findConfigFile()).toMatch('packages/config/verdaccio/config.yaml');
|
expect(findConfigFile()).toMatch('packages/config/verdaccio/config.yaml');
|
||||||
expect(mockwriteFile).toHaveBeenCalled();
|
});
|
||||||
expect(mockmkDir).toHaveBeenCalled();
|
|
||||||
|
test('no permissions on read default config file', () => {
|
||||||
|
vi.stubEnv('XDG_CONFIG_HOME', '/home/user');
|
||||||
|
accessSyncMock.mockImplementation(() => {
|
||||||
|
throw new Error('error on write file');
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(function () {
|
||||||
|
findConfigFile();
|
||||||
|
}).toThrow(/configuration file does not have enough permissions for reading/);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
});
|
||||||
test('with windows as directory exist but config file is missing', () => {
|
|
||||||
delete process.env.XDG_CONFIG_HOME;
|
describe('with no env variables', () => {
|
||||||
delete process.env.HOME;
|
test('with relative location', () => {
|
||||||
process.env.APPDATA = '/app/data/';
|
// mock
|
||||||
expect(findConfigFile()).toMatch('\\app\\data\\verdaccio\\config.yaml');
|
statSyncMock.mockReturnValue(fakeStats);
|
||||||
expect(mockwriteFile).toHaveBeenCalled();
|
mkdirSyncMock.mockReturnValue(true);
|
||||||
expect(mockmkDir).toHaveBeenCalled();
|
writeFileSyncMock.mockReturnValue(undefined);
|
||||||
|
accessSyncMock.mockImplementation(() => {});
|
||||||
|
platformMock.mockReturnValue('win32');
|
||||||
|
// delete process.env.XDG_CONFIG_HOME;
|
||||||
|
vi.stubEnv('XDG_CONFIG_HOME', '');
|
||||||
|
vi.stubEnv('HOME', '');
|
||||||
|
vi.stubEnv('APPDATA', '/app/data/');
|
||||||
|
expect(findConfigFile()).toMatch('/app/data/verdaccio/config.yaml');
|
||||||
|
expect(writeFileSyncMock).toHaveBeenCalled();
|
||||||
|
expect(mkdirSyncMock).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Config,
|
Config,
|
||||||
@ -22,7 +23,7 @@ const resolveConf = (conf) => {
|
|||||||
return path.join(__dirname, `../src/conf/${name}${ext.startsWith('.') ? ext : '.yaml'}`);
|
return path.join(__dirname, `../src/conf/${name}${ext.startsWith('.') ? ext : '.yaml'}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const itif = (condition) => (condition ? it : it.skip);
|
const itif = (condition) => (condition ? test : test.skip);
|
||||||
|
|
||||||
const checkDefaultUplink = (config) => {
|
const checkDefaultUplink = (config) => {
|
||||||
expect(_.isObject(config.uplinks[DEFAULT_UPLINK])).toBeTruthy();
|
expect(_.isObject(config.uplinks[DEFAULT_UPLINK])).toBeTruthy();
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { parseConfigFile } from '../src';
|
import { parseConfigFile } from '../src';
|
||||||
import { PACKAGE_ACCESS, normalisePackageAccess, normalizeUserList } from '../src/package-access';
|
import { PACKAGE_ACCESS, normalisePackageAccess, normalizeUserList } from '../src/package-access';
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { expect, test } from 'vitest';
|
||||||
|
|
||||||
import { TOKEN_VALID_LENGTH, generateRandomSecretKey } from '../src/token';
|
import { TOKEN_VALID_LENGTH, generateRandomSecretKey } from '../src/token';
|
||||||
|
|
||||||
test('token test valid length', () => {
|
test('token test valid length', () => {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { normalisePackageAccess, parseConfigFile } from '../src';
|
import { normalisePackageAccess, parseConfigFile } from '../src';
|
||||||
import { hasProxyTo, sanityCheckUplinksProps, uplinkSanityCheck } from '../src/uplinks';
|
import { hasProxyTo, sanityCheckUplinksProps, uplinkSanityCheck } from '../src/uplinks';
|
||||||
import { parseConfigurationFile } from './utils';
|
import { parseConfigurationFile } from './utils';
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { describe, expect, test } from 'vitest';
|
||||||
|
|
||||||
import { ROLES, createAnonymousRemoteUser, createRemoteUser } from '../src';
|
import { ROLES, createAnonymousRemoteUser, createRemoteUser } from '../src';
|
||||||
|
|
||||||
describe('createRemoteUser and createAnonymousRemoteUser', () => {
|
describe('createRemoteUser and createAnonymousRemoteUser', () => {
|
||||||
|
405
pnpm-lock.yaml
generated
405
pnpm-lock.yaml
generated
@ -228,8 +228,8 @@ importers:
|
|||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/plugins/ui-theme
|
version: link:packages/plugins/ui-theme
|
||||||
'@vitest/coverage-v8':
|
'@vitest/coverage-v8':
|
||||||
specifier: 0.34.6
|
specifier: 2.0.5
|
||||||
version: 0.34.6(vitest@1.6.0)
|
version: 2.0.5(vitest@2.0.4)
|
||||||
aria-query:
|
aria-query:
|
||||||
specifier: 5.1.3
|
specifier: 5.1.3
|
||||||
version: 5.1.3
|
version: 5.1.3
|
||||||
@ -348,8 +348,8 @@ importers:
|
|||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/plugins/memory
|
version: link:packages/plugins/memory
|
||||||
vitest:
|
vitest:
|
||||||
specifier: 1.6.0
|
specifier: 2.0.4
|
||||||
version: 1.6.0(@types/node@20.14.12)
|
version: 2.0.4(@types/node@20.14.12)
|
||||||
|
|
||||||
e2e/cli/cli-commons:
|
e2e/cli/cli-commons:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -2512,12 +2512,12 @@ packages:
|
|||||||
'@algolia/requester-common': 4.24.0
|
'@algolia/requester-common': 4.24.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@ampproject/remapping@2.2.1:
|
/@ampproject/remapping@2.3.0:
|
||||||
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
|
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/gen-mapping': 0.3.3
|
'@jridgewell/gen-mapping': 0.3.5
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
|
|
||||||
/@babel/cli@7.24.8(@babel/core@7.24.9):
|
/@babel/cli@7.24.8(@babel/core@7.24.9):
|
||||||
resolution: {integrity: sha512-isdp+G6DpRyKc+3Gqxy2rjzgF7Zj9K0mzLNnxz+E/fgeag8qT3vVulX4gY9dGO1q0y+0lUv6V3a+uhUzMzrwXg==}
|
resolution: {integrity: sha512-isdp+G6DpRyKc+3Gqxy2rjzgF7Zj9K0mzLNnxz+E/fgeag8qT3vVulX4gY9dGO1q0y+0lUv6V3a+uhUzMzrwXg==}
|
||||||
@ -2579,7 +2579,7 @@ packages:
|
|||||||
'@babel/generator': 7.23.3
|
'@babel/generator': 7.23.3
|
||||||
'@babel/helper-module-transforms': 7.25.0(@babel/core@7.12.9)
|
'@babel/helper-module-transforms': 7.25.0(@babel/core@7.12.9)
|
||||||
'@babel/helpers': 7.23.9
|
'@babel/helpers': 7.23.9
|
||||||
'@babel/parser': 7.23.9
|
'@babel/parser': 7.25.0
|
||||||
'@babel/template': 7.25.0
|
'@babel/template': 7.25.0
|
||||||
'@babel/traverse': 7.23.3
|
'@babel/traverse': 7.23.3
|
||||||
'@babel/types': 7.25.0
|
'@babel/types': 7.25.0
|
||||||
@ -2598,7 +2598,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==}
|
resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.2.1
|
'@ampproject/remapping': 2.3.0
|
||||||
'@babel/code-frame': 7.24.7
|
'@babel/code-frame': 7.24.7
|
||||||
'@babel/generator': 7.24.10
|
'@babel/generator': 7.24.10
|
||||||
'@babel/helper-compilation-targets': 7.24.8
|
'@babel/helper-compilation-targets': 7.24.8
|
||||||
@ -2653,8 +2653,8 @@ packages:
|
|||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/types': 7.23.9
|
'@babel/types': 7.23.9
|
||||||
'@jridgewell/gen-mapping': 0.3.3
|
'@jridgewell/gen-mapping': 0.3.5
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
jsesc: 2.5.2
|
jsesc: 2.5.2
|
||||||
|
|
||||||
/@babel/generator@7.24.10:
|
/@babel/generator@7.24.10:
|
||||||
@ -2871,7 +2871,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
|
resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/types': 7.24.9
|
'@babel/types': 7.25.0
|
||||||
|
|
||||||
/@babel/helper-member-expression-to-functions@7.24.8:
|
/@babel/helper-member-expression-to-functions@7.24.8:
|
||||||
resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==}
|
resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==}
|
||||||
@ -4884,8 +4884,8 @@ packages:
|
|||||||
'@babel/helper-function-name': 7.23.0
|
'@babel/helper-function-name': 7.23.0
|
||||||
'@babel/helper-hoist-variables': 7.22.5
|
'@babel/helper-hoist-variables': 7.22.5
|
||||||
'@babel/helper-split-export-declaration': 7.22.6
|
'@babel/helper-split-export-declaration': 7.22.6
|
||||||
'@babel/parser': 7.23.9
|
'@babel/parser': 7.25.0
|
||||||
'@babel/types': 7.23.9
|
'@babel/types': 7.25.0
|
||||||
debug: 4.3.6(supports-color@5.5.0)
|
debug: 4.3.6(supports-color@5.5.0)
|
||||||
globals: 11.12.0
|
globals: 11.12.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@ -7276,7 +7276,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
|
resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
|
||||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
callsites: 3.1.0
|
callsites: 3.1.0
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
|
|
||||||
@ -7407,8 +7407,8 @@ packages:
|
|||||||
/@jridgewell/source-map@0.3.5:
|
/@jridgewell/source-map@0.3.5:
|
||||||
resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
|
resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/gen-mapping': 0.3.3
|
'@jridgewell/gen-mapping': 0.3.5
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
|
|
||||||
/@jridgewell/source-map@0.3.6:
|
/@jridgewell/source-map@0.3.6:
|
||||||
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
|
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
|
||||||
@ -9782,11 +9782,11 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.24.9
|
'@babel/core': 7.24.9
|
||||||
'@babel/generator': 7.23.6
|
'@babel/generator': 7.23.6
|
||||||
'@babel/parser': 7.23.9
|
'@babel/parser': 7.25.0
|
||||||
'@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.24.9)
|
'@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.24.9)
|
||||||
'@babel/preset-env': 7.25.0(@babel/core@7.24.9)
|
'@babel/preset-env': 7.25.0(@babel/core@7.24.9)
|
||||||
'@babel/traverse': 7.23.9
|
'@babel/traverse': 7.23.9
|
||||||
'@babel/types': 7.23.9
|
'@babel/types': 7.25.0
|
||||||
'@storybook/csf': 0.0.2--canary.4566f4d.1
|
'@storybook/csf': 0.0.2--canary.4566f4d.1
|
||||||
'@storybook/mdx1-csf': 0.0.1(@babel/core@7.24.9)
|
'@storybook/mdx1-csf': 0.0.1(@babel/core@7.24.9)
|
||||||
core-js: 3.35.0
|
core-js: 3.35.0
|
||||||
@ -11609,64 +11609,77 @@ packages:
|
|||||||
http-status-codes: 2.2.0
|
http-status-codes: 2.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitest/coverage-v8@0.34.6(vitest@1.6.0):
|
/@vitest/coverage-v8@2.0.5(vitest@2.0.4):
|
||||||
resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==}
|
resolution: {integrity: sha512-qeFcySCg5FLO2bHHSa0tAZAOnAUbp4L6/A5JDuj9+bt53JREl8hpLjLHEWF0e/gWc8INVpJaqA7+Ene2rclpZg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vitest: '>=0.32.0 <1'
|
vitest: 2.0.5
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.2.1
|
'@ampproject/remapping': 2.3.0
|
||||||
'@bcoe/v8-coverage': 0.2.3
|
'@bcoe/v8-coverage': 0.2.3
|
||||||
istanbul-lib-coverage: 3.2.0
|
debug: 4.3.6(supports-color@5.5.0)
|
||||||
|
istanbul-lib-coverage: 3.2.2
|
||||||
istanbul-lib-report: 3.0.1
|
istanbul-lib-report: 3.0.1
|
||||||
istanbul-lib-source-maps: 4.0.1
|
istanbul-lib-source-maps: 5.0.6
|
||||||
istanbul-reports: 3.1.6
|
istanbul-reports: 3.1.7
|
||||||
magic-string: 0.30.4
|
magic-string: 0.30.10
|
||||||
picocolors: 1.0.0
|
magicast: 0.3.4
|
||||||
std-env: 3.4.3
|
std-env: 3.7.0
|
||||||
test-exclude: 6.0.0
|
test-exclude: 7.0.1
|
||||||
v8-to-istanbul: 9.1.3
|
tinyrainbow: 1.2.0
|
||||||
vitest: 1.6.0(@types/node@20.14.12)
|
vitest: 2.0.4(@types/node@20.14.12)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitest/expect@1.6.0:
|
/@vitest/expect@2.0.4:
|
||||||
resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==}
|
resolution: {integrity: sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/spy': 1.6.0
|
'@vitest/spy': 2.0.4
|
||||||
'@vitest/utils': 1.6.0
|
'@vitest/utils': 2.0.4
|
||||||
chai: 4.3.10
|
chai: 5.1.1
|
||||||
|
tinyrainbow: 1.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitest/runner@1.6.0:
|
/@vitest/pretty-format@2.0.4:
|
||||||
resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==}
|
resolution: {integrity: sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/utils': 1.6.0
|
tinyrainbow: 1.2.0
|
||||||
p-limit: 5.0.0
|
|
||||||
pathe: 1.1.1
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitest/snapshot@1.6.0:
|
/@vitest/pretty-format@2.0.5:
|
||||||
resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==}
|
resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
tinyrainbow: 1.2.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@vitest/runner@2.0.4:
|
||||||
|
resolution: {integrity: sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==}
|
||||||
|
dependencies:
|
||||||
|
'@vitest/utils': 2.0.4
|
||||||
|
pathe: 1.1.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@vitest/snapshot@2.0.4:
|
||||||
|
resolution: {integrity: sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==}
|
||||||
|
dependencies:
|
||||||
|
'@vitest/pretty-format': 2.0.4
|
||||||
magic-string: 0.30.10
|
magic-string: 0.30.10
|
||||||
pathe: 1.1.1
|
pathe: 1.1.2
|
||||||
pretty-format: 29.7.0
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitest/spy@1.6.0:
|
/@vitest/spy@2.0.4:
|
||||||
resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==}
|
resolution: {integrity: sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==}
|
||||||
dependencies:
|
dependencies:
|
||||||
tinyspy: 2.2.1
|
tinyspy: 3.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitest/utils@1.6.0:
|
/@vitest/utils@2.0.4:
|
||||||
resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==}
|
resolution: {integrity: sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
diff-sequences: 29.6.3
|
'@vitest/pretty-format': 2.0.4
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
loupe: 2.3.7
|
loupe: 3.1.1
|
||||||
pretty-format: 29.7.0
|
tinyrainbow: 1.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vue/compiler-core@3.4.34:
|
/@vue/compiler-core@3.4.34:
|
||||||
@ -12183,12 +12196,6 @@ packages:
|
|||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
/acorn@8.12.0:
|
|
||||||
resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==}
|
|
||||||
engines: {node: '>=0.4.0'}
|
|
||||||
hasBin: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/acorn@8.12.1:
|
/acorn@8.12.1:
|
||||||
resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
|
resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
@ -12727,8 +12734,9 @@ packages:
|
|||||||
util: 0.10.3
|
util: 0.10.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/assertion-error@1.1.0:
|
/assertion-error@2.0.1:
|
||||||
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
|
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/assign-symbols@1.0.0:
|
/assign-symbols@1.0.0:
|
||||||
@ -13836,17 +13844,15 @@ packages:
|
|||||||
/ccount@2.0.1:
|
/ccount@2.0.1:
|
||||||
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
||||||
|
|
||||||
/chai@4.3.10:
|
/chai@5.1.1:
|
||||||
resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==}
|
resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=12'}
|
||||||
dependencies:
|
dependencies:
|
||||||
assertion-error: 1.1.0
|
assertion-error: 2.0.1
|
||||||
check-error: 1.0.3
|
check-error: 2.1.1
|
||||||
deep-eql: 4.1.3
|
deep-eql: 5.0.2
|
||||||
get-func-name: 2.0.2
|
loupe: 3.1.1
|
||||||
loupe: 2.3.6
|
pathval: 2.0.0
|
||||||
pathval: 1.1.1
|
|
||||||
type-detect: 4.0.8
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/chalk@1.1.3:
|
/chalk@1.1.3:
|
||||||
@ -13918,10 +13924,9 @@ packages:
|
|||||||
/chardet@0.7.0:
|
/chardet@0.7.0:
|
||||||
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
|
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
|
||||||
|
|
||||||
/check-error@1.0.3:
|
/check-error@2.1.1:
|
||||||
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
|
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
|
||||||
dependencies:
|
engines: {node: '>= 16'}
|
||||||
get-func-name: 2.0.2
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/check-more-types@2.24.0:
|
/check-more-types@2.24.0:
|
||||||
@ -14401,10 +14406,6 @@ packages:
|
|||||||
yargs: 17.7.2
|
yargs: 17.7.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/confbox@0.1.7:
|
|
||||||
resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/configstore@5.0.1:
|
/configstore@5.0.1:
|
||||||
resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
|
resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -15798,11 +15799,9 @@ packages:
|
|||||||
babel-plugin-macros:
|
babel-plugin-macros:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/deep-eql@4.1.3:
|
/deep-eql@5.0.2:
|
||||||
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
|
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dependencies:
|
|
||||||
type-detect: 4.0.8
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/deep-equal@1.1.1:
|
/deep-equal@1.1.1:
|
||||||
@ -18749,6 +18748,18 @@ packages:
|
|||||||
minipass: 7.0.4
|
minipass: 7.0.4
|
||||||
path-scurry: 1.10.1
|
path-scurry: 1.10.1
|
||||||
|
|
||||||
|
/glob@10.4.5:
|
||||||
|
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
foreground-child: 3.1.1
|
||||||
|
jackspeak: 3.4.3
|
||||||
|
minimatch: 9.0.5
|
||||||
|
minipass: 7.1.2
|
||||||
|
package-json-from-dist: 1.0.0
|
||||||
|
path-scurry: 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/glob@7.2.3:
|
/glob@7.2.3:
|
||||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
deprecated: Glob versions prior to v9 are no longer supported
|
deprecated: Glob versions prior to v9 are no longer supported
|
||||||
@ -20460,6 +20471,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
|
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
/istanbul-lib-coverage@3.2.2:
|
||||||
|
resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
/istanbul-lib-instrument@5.2.1:
|
/istanbul-lib-instrument@5.2.1:
|
||||||
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
|
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -20488,7 +20503,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
|
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dependencies:
|
dependencies:
|
||||||
istanbul-lib-coverage: 3.2.0
|
istanbul-lib-coverage: 3.2.2
|
||||||
make-dir: 4.0.0
|
make-dir: 4.0.0
|
||||||
supports-color: 7.2.0
|
supports-color: 7.2.0
|
||||||
|
|
||||||
@ -20502,6 +20517,17 @@ packages:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
/istanbul-lib-source-maps@5.0.6:
|
||||||
|
resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
|
debug: 4.3.6(supports-color@5.5.0)
|
||||||
|
istanbul-lib-coverage: 3.2.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
/istanbul-reports@3.1.6:
|
/istanbul-reports@3.1.6:
|
||||||
resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==}
|
resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -20509,6 +20535,14 @@ packages:
|
|||||||
html-escaper: 2.0.2
|
html-escaper: 2.0.2
|
||||||
istanbul-lib-report: 3.0.1
|
istanbul-lib-report: 3.0.1
|
||||||
|
|
||||||
|
/istanbul-reports@3.1.7:
|
||||||
|
resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
html-escaper: 2.0.2
|
||||||
|
istanbul-lib-report: 3.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/iterate-iterator@1.0.2:
|
/iterate-iterator@1.0.2:
|
||||||
resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==}
|
resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -20548,6 +20582,14 @@ packages:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@pkgjs/parseargs': 0.11.0
|
'@pkgjs/parseargs': 0.11.0
|
||||||
|
|
||||||
|
/jackspeak@3.4.3:
|
||||||
|
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
|
||||||
|
dependencies:
|
||||||
|
'@isaacs/cliui': 8.0.2
|
||||||
|
optionalDependencies:
|
||||||
|
'@pkgjs/parseargs': 0.11.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/jake@10.9.1:
|
/jake@10.9.1:
|
||||||
resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==}
|
resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -21114,10 +21156,6 @@ packages:
|
|||||||
/js-tokens@4.0.0:
|
/js-tokens@4.0.0:
|
||||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||||
|
|
||||||
/js-tokens@9.0.0:
|
|
||||||
resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/js-yaml@3.14.1:
|
/js-yaml@3.14.1:
|
||||||
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -21664,14 +21702,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==}
|
resolution: {integrity: sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/local-pkg@0.5.0:
|
|
||||||
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
|
|
||||||
engines: {node: '>=14'}
|
|
||||||
dependencies:
|
|
||||||
mlly: 1.7.1
|
|
||||||
pkg-types: 1.0.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/localstorage-memory@1.0.3:
|
/localstorage-memory@1.0.3:
|
||||||
resolution: {integrity: sha512-t9P8WB6DcVttbw/W4PIE8HOqum8Qlvx5SjR6oInwR9Uia0EEmyUeBh7S+weKByW+l/f45Bj4L/dgZikGFDM6ng==}
|
resolution: {integrity: sha512-t9P8WB6DcVttbw/W4PIE8HOqum8Qlvx5SjR6oInwR9Uia0EEmyUeBh7S+weKByW+l/f45Bj4L/dgZikGFDM6ng==}
|
||||||
|
|
||||||
@ -21813,15 +21843,8 @@ packages:
|
|||||||
signal-exit: 3.0.7
|
signal-exit: 3.0.7
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/loupe@2.3.6:
|
/loupe@3.1.1:
|
||||||
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
|
resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
|
||||||
deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5
|
|
||||||
dependencies:
|
|
||||||
get-func-name: 2.0.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/loupe@2.3.7:
|
|
||||||
resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
|
|
||||||
dependencies:
|
dependencies:
|
||||||
get-func-name: 2.0.2
|
get-func-name: 2.0.2
|
||||||
dev: true
|
dev: true
|
||||||
@ -21854,6 +21877,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
|
resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
|
||||||
engines: {node: 14 || >=16.14}
|
engines: {node: 14 || >=16.14}
|
||||||
|
|
||||||
|
/lru-cache@10.4.3:
|
||||||
|
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/lru-cache@4.1.5:
|
/lru-cache@4.1.5:
|
||||||
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
|
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -21890,11 +21917,12 @@ packages:
|
|||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/magic-string@0.30.4:
|
/magicast@0.3.4:
|
||||||
resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==}
|
resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==}
|
||||||
engines: {node: '>=12'}
|
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@babel/parser': 7.25.0
|
||||||
|
'@babel/types': 7.25.0
|
||||||
|
source-map-js: 1.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/make-dir@2.1.0:
|
/make-dir@2.1.0:
|
||||||
@ -22777,6 +22805,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
|
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
|
||||||
engines: {node: '>=16 || 14 >=14.17'}
|
engines: {node: '>=16 || 14 >=14.17'}
|
||||||
|
|
||||||
|
/minipass@7.1.2:
|
||||||
|
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
|
||||||
|
engines: {node: '>=16 || 14 >=14.17'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/minizlib@2.1.2:
|
/minizlib@2.1.2:
|
||||||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
@ -22826,15 +22859,6 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
/mlly@1.7.1:
|
|
||||||
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
|
|
||||||
dependencies:
|
|
||||||
acorn: 8.12.0
|
|
||||||
pathe: 1.1.2
|
|
||||||
pkg-types: 1.1.1
|
|
||||||
ufo: 1.5.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/mockdate@3.0.5:
|
/mockdate@3.0.5:
|
||||||
resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==}
|
resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -24000,13 +24024,6 @@ packages:
|
|||||||
yocto-queue: 1.1.1
|
yocto-queue: 1.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/p-limit@5.0.0:
|
|
||||||
resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
yocto-queue: 1.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/p-locate@3.0.0:
|
/p-locate@3.0.0:
|
||||||
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
|
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -24088,6 +24105,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
|
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
/package-json-from-dist@1.0.0:
|
||||||
|
resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/package-json@6.5.0:
|
/package-json@6.5.0:
|
||||||
resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
|
resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -24344,6 +24365,14 @@ packages:
|
|||||||
lru-cache: 10.1.0
|
lru-cache: 10.1.0
|
||||||
minipass: 7.0.4
|
minipass: 7.0.4
|
||||||
|
|
||||||
|
/path-scurry@1.11.1:
|
||||||
|
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
|
||||||
|
engines: {node: '>=16 || 14 >=14.18'}
|
||||||
|
dependencies:
|
||||||
|
lru-cache: 10.4.3
|
||||||
|
minipass: 7.1.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/path-to-regexp@0.1.7:
|
/path-to-regexp@0.1.7:
|
||||||
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
||||||
|
|
||||||
@ -24381,16 +24410,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
/pathe@1.1.1:
|
|
||||||
resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/pathe@1.1.2:
|
/pathe@1.1.2:
|
||||||
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
|
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/pathval@1.1.1:
|
/pathval@2.0.0:
|
||||||
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
|
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
|
||||||
|
engines: {node: '>= 14.16'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/pbkdf2@3.1.2:
|
/pbkdf2@3.1.2:
|
||||||
@ -24545,22 +24571,6 @@ packages:
|
|||||||
find-up: 6.3.0
|
find-up: 6.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/pkg-types@1.0.3:
|
|
||||||
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
|
|
||||||
dependencies:
|
|
||||||
jsonc-parser: 3.2.0
|
|
||||||
mlly: 1.7.1
|
|
||||||
pathe: 1.1.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/pkg-types@1.1.1:
|
|
||||||
resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==}
|
|
||||||
dependencies:
|
|
||||||
confbox: 0.1.7
|
|
||||||
mlly: 1.7.1
|
|
||||||
pathe: 1.1.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/pkg-up@3.1.0:
|
/pkg-up@3.1.0:
|
||||||
resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
|
resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -25651,15 +25661,6 @@ packages:
|
|||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
source-map-js: 1.0.2
|
source-map-js: 1.0.2
|
||||||
|
|
||||||
/postcss@8.4.38:
|
|
||||||
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
|
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
|
||||||
dependencies:
|
|
||||||
nanoid: 3.3.7
|
|
||||||
picocolors: 1.0.0
|
|
||||||
source-map-js: 1.2.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/postcss@8.4.40:
|
/postcss@8.4.40:
|
||||||
resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==}
|
resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
@ -28694,12 +28695,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
/strip-literal@2.1.0:
|
|
||||||
resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
|
|
||||||
dependencies:
|
|
||||||
js-tokens: 9.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/style-loader@1.3.0(webpack@4.47.0):
|
/style-loader@1.3.0(webpack@4.47.0):
|
||||||
resolution: {integrity: sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==}
|
resolution: {integrity: sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==}
|
||||||
engines: {node: '>= 8.9.0'}
|
engines: {node: '>= 8.9.0'}
|
||||||
@ -29284,6 +29279,15 @@ packages:
|
|||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
|
|
||||||
|
/test-exclude@7.0.1:
|
||||||
|
resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
dependencies:
|
||||||
|
'@istanbuljs/schema': 0.1.3
|
||||||
|
glob: 10.4.5
|
||||||
|
minimatch: 9.0.5
|
||||||
|
dev: true
|
||||||
|
|
||||||
/text-table@0.2.0:
|
/text-table@0.2.0:
|
||||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||||
|
|
||||||
@ -29334,13 +29338,18 @@ packages:
|
|||||||
resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==}
|
resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/tinypool@0.8.4:
|
/tinypool@1.0.0:
|
||||||
resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
|
resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==}
|
||||||
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/tinyrainbow@1.2.0:
|
||||||
|
resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/tinyspy@2.2.1:
|
/tinyspy@3.0.0:
|
||||||
resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==}
|
resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
@ -29866,10 +29875,6 @@ packages:
|
|||||||
/ua-parser-js@0.7.35:
|
/ua-parser-js@0.7.35:
|
||||||
resolution: {integrity: sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==}
|
resolution: {integrity: sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==}
|
||||||
|
|
||||||
/ufo@1.5.3:
|
|
||||||
resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/uglify-js@3.19.0:
|
/uglify-js@3.19.0:
|
||||||
resolution: {integrity: sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==}
|
resolution: {integrity: sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
@ -30461,7 +30466,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==}
|
resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==}
|
||||||
engines: {node: '>=10.12.0'}
|
engines: {node: '>=10.12.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
'@types/istanbul-lib-coverage': 2.0.4
|
'@types/istanbul-lib-coverage': 2.0.4
|
||||||
convert-source-map: 2.0.0
|
convert-source-map: 2.0.0
|
||||||
|
|
||||||
@ -30558,15 +30563,15 @@ packages:
|
|||||||
remove-trailing-separator: 1.1.0
|
remove-trailing-separator: 1.1.0
|
||||||
replace-ext: 1.0.1
|
replace-ext: 1.0.1
|
||||||
|
|
||||||
/vite-node@1.6.0(@types/node@20.14.12):
|
/vite-node@2.0.4(@types/node@20.14.12):
|
||||||
resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
|
resolution: {integrity: sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
debug: 4.3.6(supports-color@5.5.0)
|
debug: 4.3.6(supports-color@5.5.0)
|
||||||
pathe: 1.1.1
|
pathe: 1.1.2
|
||||||
picocolors: 1.0.0
|
tinyrainbow: 1.2.0
|
||||||
vite: 5.3.1(@types/node@20.14.12)
|
vite: 5.3.1(@types/node@20.14.12)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
@ -30609,21 +30614,21 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.14.12
|
'@types/node': 20.14.12
|
||||||
esbuild: 0.21.5
|
esbuild: 0.21.5
|
||||||
postcss: 8.4.38
|
postcss: 8.4.40
|
||||||
rollup: 4.18.0
|
rollup: 4.18.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vitest@1.6.0(@types/node@20.14.12):
|
/vitest@2.0.4(@types/node@20.14.12):
|
||||||
resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
|
resolution: {integrity: sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@edge-runtime/vm': '*'
|
'@edge-runtime/vm': '*'
|
||||||
'@types/node': ^18.0.0 || >=20.0.0
|
'@types/node': ^18.0.0 || >=20.0.0
|
||||||
'@vitest/browser': 1.6.0
|
'@vitest/browser': 2.0.4
|
||||||
'@vitest/ui': 1.6.0
|
'@vitest/ui': 2.0.4
|
||||||
happy-dom: '*'
|
happy-dom: '*'
|
||||||
jsdom: '*'
|
jsdom: '*'
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
@ -30640,27 +30645,26 @@ packages:
|
|||||||
jsdom:
|
jsdom:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@ampproject/remapping': 2.3.0
|
||||||
'@types/node': 20.14.12
|
'@types/node': 20.14.12
|
||||||
'@vitest/expect': 1.6.0
|
'@vitest/expect': 2.0.4
|
||||||
'@vitest/runner': 1.6.0
|
'@vitest/pretty-format': 2.0.5
|
||||||
'@vitest/snapshot': 1.6.0
|
'@vitest/runner': 2.0.4
|
||||||
'@vitest/spy': 1.6.0
|
'@vitest/snapshot': 2.0.4
|
||||||
'@vitest/utils': 1.6.0
|
'@vitest/spy': 2.0.4
|
||||||
acorn-walk: 8.3.3
|
'@vitest/utils': 2.0.4
|
||||||
chai: 4.3.10
|
chai: 5.1.1
|
||||||
debug: 4.3.6(supports-color@5.5.0)
|
debug: 4.3.6(supports-color@5.5.0)
|
||||||
execa: 8.0.1
|
execa: 8.0.1
|
||||||
local-pkg: 0.5.0
|
|
||||||
magic-string: 0.30.10
|
magic-string: 0.30.10
|
||||||
pathe: 1.1.1
|
pathe: 1.1.2
|
||||||
picocolors: 1.0.0
|
|
||||||
std-env: 3.7.0
|
std-env: 3.7.0
|
||||||
strip-literal: 2.1.0
|
|
||||||
tinybench: 2.8.0
|
tinybench: 2.8.0
|
||||||
tinypool: 0.8.4
|
tinypool: 1.0.0
|
||||||
|
tinyrainbow: 1.2.0
|
||||||
vite: 5.3.1(@types/node@20.14.12)
|
vite: 5.3.1(@types/node@20.14.12)
|
||||||
vite-node: 1.6.0(@types/node@20.14.12)
|
vite-node: 2.0.4(@types/node@20.14.12)
|
||||||
why-is-node-running: 2.2.2
|
why-is-node-running: 2.3.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- less
|
- less
|
||||||
- lightningcss
|
- lightningcss
|
||||||
@ -31563,8 +31567,8 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isexe: 2.0.0
|
isexe: 2.0.0
|
||||||
|
|
||||||
/why-is-node-running@2.2.2:
|
/why-is-node-running@2.3.0:
|
||||||
resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
|
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -31987,11 +31991,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
/yocto-queue@1.0.0:
|
|
||||||
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
|
|
||||||
engines: {node: '>=12.20'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/yocto-queue@1.1.1:
|
/yocto-queue@1.1.1:
|
||||||
resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
|
resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
|
||||||
engines: {node: '>=12.20'}
|
engines: {node: '>=12.20'}
|
||||||
|
Loading…
Reference in New Issue
Block a user