refactor: config module (#1995)

* refactor: clean up config

* refactor: config, move methods

* chore: remove js-yaml from utils
This commit is contained in:
Juan Picado 2020-11-05 23:22:09 +01:00
parent 39570af086
commit a9ba3d0649
50 changed files with 152 additions and 160 deletions

View File

@ -95,11 +95,11 @@
"standard-version": "8.0.0",
"supertest": "4.0.2",
"typescript": "^3.9.7",
"verdaccio": "latest",
"verdaccio-audit": "latest",
"verdaccio-auth-memory": "latest",
"verdaccio-htpasswd": "latest",
"verdaccio-memory": "latest"
"verdaccio": "workspace:*",
"verdaccio-audit": "workspace:*",
"verdaccio-auth-memory": "workspace:*",
"verdaccio-htpasswd": "workspace:*",
"verdaccio-memory": "workspace:*"
},
"scripts": {
"dev": "cross-env BABEL_ENV=registry babel-node --extensions \".ts,.tsx\" packages/cli/src",
@ -112,6 +112,7 @@
"test": "pnpm recursive test",
"start": "node packages/verdaccio/debug/bootstrap.js",
"debug": "node --inspect packages/verdaccio/debug/bootstrap.js",
"debug:break": "node --inspect-brk packages/verdaccio/debug/bootstrap.js",
"test:e2e:cli": "cross-env NODE_ENV=test jest --config ./test/e2e-cli/jest.config.e2e.cli.js --passWithNoTests",
"website:lint": "cd website && yarn lint",
"website:develop": "cd website && yarn develop",

View File

@ -3,8 +3,7 @@ import express, { Application } from 'express';
import supertest from 'supertest';
import bodyParser from 'body-parser';
import { parseConfigFile } from '@verdaccio/utils';
import { Config } from '@verdaccio/config';
import { Config, parseConfigFile } from '@verdaccio/config';
import { Storage } from '@verdaccio/store';
import { final, handleError, errorReportingMiddleware } from '@verdaccio/middleware';
import { Auth, IAuth } from '@verdaccio/auth';

View File

@ -27,11 +27,11 @@ import {
import {
isNil,
isFunction,
getMatchedPackagesSpec,
createAnonymousRemoteUser,
convertPayloadToBase64,
createRemoteUser,
} from '@verdaccio/utils';
import { getMatchedPackagesSpec } from '@verdaccio/config';
import {
getMiddlewareCredentials,

View File

@ -3,13 +3,12 @@ import _ from 'lodash';
import { CHARACTER_ENCODING, TOKEN_BEARER, ROLES, API_ERROR } from '@verdaccio/dev-commons';
import { configExample } from '@verdaccio/mock';
import { Config as AppConfig } from '@verdaccio/config';
import { Config as AppConfig, parseConfigFile } from '@verdaccio/config';
import { setup } from '@verdaccio/logger';
import {
getAuthenticatedMessage,
buildToken,
parseConfigFile,
createAnonymousRemoteUser,
createRemoteUser,
AllowActionCallbackResponse,

View File

@ -1,3 +1 @@
const config = require('../../jest/config');
module.exports = Object.assign({}, config, {});
module.exports = require('../../jest/config');

View File

@ -31,10 +31,9 @@
"@verdaccio/logger": "workspace:5.0.0-alpha.0",
"@verdaccio/node-api": "workspace:5.0.0-alpha.0",
"@verdaccio/utils": "workspace:5.0.0-alpha.0",
"commander": "5.1.0",
"commander": "6.2.0",
"envinfo": "7.4.0",
"kleur": "3.0.3",
"lodash": "^4.17.20",
"semver": "7.3.2"
}
}

View File

@ -1,6 +1,3 @@
/* eslint no-sync:0 */
/* eslint no-empty:0 */
import commander from 'commander';
import { bgYellow, bgRed } from 'kleur';
@ -32,7 +29,7 @@ if (isVersionValid()) {
process.title = 'verdaccio';
const pkgVersion = '5.0.0';
const pkgVersion = require('../package.json').version;
const pkgName = 'verdaccio';
commander

View File

@ -1,8 +1,6 @@
import path from 'path';
import _ from 'lodash';
import { parseConfigFile } from '@verdaccio/utils';
import { findConfigFile } from '@verdaccio/config';
import { findConfigFile, parseConfigFile } from '@verdaccio/config';
import { startVerdaccio, listenDefaultCallback } from '@verdaccio/node-api';
export const DEFAULT_PROCESS_NAME: string = 'verdaccio';
@ -20,16 +18,16 @@ export default function initProgram(commander, pkgVersion, pkgName) {
process.title = web?.title || DEFAULT_PROCESS_NAME;
// note: self_path is only being used by @verdaccio/storage, not really useful
// and migth be removed soon
// FIXME: self_path is only being used by @verdaccio/storage, not really useful
// and might be removed soon
if (!self_path) {
verdaccioConfiguration = _.assign({}, verdaccioConfiguration, {
verdaccioConfiguration = Object.assign({}, verdaccioConfiguration, {
self_path: path.resolve(configPathLocation),
});
}
if (!https) {
verdaccioConfiguration = _.assign({}, verdaccioConfiguration, {
verdaccioConfiguration = Object.assign({}, verdaccioConfiguration, {
https: { enable: false },
});
}

View File

@ -1,6 +1,6 @@
import semver from 'semver';
export const MIN_NODE_VERSION = '6.9.0';
export const MIN_NODE_VERSION = '10.22.1';
export const isVersionValid = () =>
semver.satisfies(process.version, `>=${MIN_NODE_VERSION}`) === false;

View File

@ -24,10 +24,14 @@
},
"dependencies": {
"@verdaccio/dev-commons": "workspace:5.0.0-alpha.0",
"@verdaccio/logger": "workspace:5.0.0-alpha.0",
"@verdaccio/utils": "workspace:5.0.0-alpha.0",
"mkdirp": "0.5.5",
"debug": "^4.2.0",
"lodash": "^4.17.20"
"js-yaml": "3.14.0",
"lodash": "^4.17.20",
"mkdirp": "0.5.5",
"yup": "^0.29.3"
},
"devDependencies": {
"@types/yup": "^0.29.9"
}
}

View File

@ -2,8 +2,8 @@ import fs from 'fs';
import path from 'path';
import Path from 'path';
import _ from 'lodash';
import { logger } from '@verdaccio/logger';
import mkdirp from 'mkdirp';
import buildDebug from 'debug';
import { folderExists, fileExists } from '@verdaccio/utils';
import { CHARACTER_ENCODING } from '@verdaccio/dev-commons';
@ -22,6 +22,8 @@ export type SetupDirectory = {
type: string;
};
const debug = buildDebug('verdaccio:config');
/**
* Find and get the first config file that match.
* @return {String} the config file path
@ -66,7 +68,7 @@ export function readDefaultConfig(): Buffer {
function createConfigFolder(configLocation): void {
mkdirp.sync(Path.dirname(configLocation.path));
logger.info({ file: configLocation.path }, 'Creating default config file in @{file}');
debug(`Creating default config file in %o`, configLocation?.path);
}
function updateStorageLinks(configLocation, defaultConfig): string {

View File

@ -3,7 +3,8 @@ import _ from 'lodash';
import minimatch from 'minimatch';
import { PackageList, UpLinksConfList, PackageAccess } from '@verdaccio/types';
import { ErrorCode } from './utils';
import { ErrorCode } from '@verdaccio/utils';
import { MatchedPackage } from './config';
export type PackageAccessAddOn = PackageAccess & {
// FIXME: should be published on @verdaccio/types
@ -14,8 +15,6 @@ export interface LegacyPackageList {
[key: string]: PackageAccessAddOn;
}
export type MatchedPackage = PackageAccess | void;
const BLACKLIST = {
all: true,
anonymous: true,

View File

@ -2,27 +2,16 @@ import assert from 'assert';
import _ from 'lodash';
import buildDebug from 'debug';
import { generateRandomHexString, getUserAgent, isObject } from '@verdaccio/utils';
import { APP_ERROR } from '@verdaccio/dev-commons';
import { PackageList, Config as AppConfig, Security, PackageAccess } from '@verdaccio/types';
import { generateRandomSecretKey } from './token';
import {
getMatchedPackagesSpec,
normalisePackageAccess,
sanityCheckUplinksProps,
uplinkSanityCheck,
generateRandomHexString,
getUserAgent,
isObject,
} from '@verdaccio/utils';
import { APP_ERROR } from '@verdaccio/dev-commons';
import {
PackageList,
Config as AppConfig,
Security,
Logger,
PackageAccess,
} from '@verdaccio/types';
import { generateRandomSecretKey } from './token';
const LoggerApi = require('@verdaccio/logger');
} from './config-utils';
const strategicConfigProps = ['uplinks', 'packages'];
const allowedEnvConfig = ['http_proxy', 'https_proxy', 'no_proxy'];
@ -41,7 +30,6 @@ const debug = buildDebug('verdaccio:config');
* Coordinates the application configuration
*/
class Config implements AppConfig {
public logger: Logger;
public user_agent: string;
// @ts-ignore
public secret: string;
@ -57,7 +45,6 @@ class Config implements AppConfig {
public constructor(config: StartUpConfig) {
const self = this;
this.logger = LoggerApi.logger;
this.self_path = config.self_path;
this.storage = config.storage;
this.plugins = config.plugins;
@ -86,12 +73,6 @@ class Config implements AppConfig {
});
this.uplinks = sanityCheckUplinksProps(uplinkSanityCheck(this.uplinks));
if (_.isNil(this.users) === false) {
this.logger.warn(`[users]: property on configuration file
is not longer supported, property being ignored`);
}
this.packages = normalisePackageAccess(self.packages);
// loading these from ENV if aren't in config

View File

@ -1,3 +1,5 @@
export * from './config';
export * from './config-path';
export * from './token';
export * from './config-utils';
export * from './parse';

View File

@ -0,0 +1,19 @@
import fs from 'fs';
import YAML from 'js-yaml';
import { APP_ERROR, CHARACTER_ENCODING } from '@verdaccio/dev-commons';
export function parseConfigFile(configPath: string): any {
try {
if (/\.ya?ml$/i.test(configPath)) {
// @ts-ignore
return YAML.safeLoad(fs.readFileSync(configPath, CHARACTER_ENCODING.UTF8));
}
return require(configPath);
} catch (e) {
if (e.code !== 'MODULE_NOT_FOUND') {
e.message = APP_ERROR.CONFIG_NOT_VALID;
}
throw new Error(e);
}
}

View File

@ -3,8 +3,7 @@ import _ from 'lodash';
import { PACKAGE_ACCESS } from '@verdaccio/dev-commons';
import { spliceURL } from '../src/string';
import { parseConfigFile } from '../src/utils';
import { spliceURL } from '@verdaccio/utils';
import {
getMatchedPackagesSpec,
hasProxyTo,
@ -12,6 +11,7 @@ import {
sanityCheckUplinksProps,
uplinkSanityCheck,
} from '../src/config-utils';
import { parseConfigFile } from '../src';
describe('Config Utilities', () => {
const parseConfigurationFile = (conf) => {

View File

@ -1,13 +1,9 @@
import path from 'path';
import _ from 'lodash';
import { setup } from '@verdaccio/logger';
import { DEFAULT_REGISTRY, DEFAULT_UPLINK, ROLES, WEB_TITLE } from '@verdaccio/dev-commons';
import { parseConfigFile } from '@verdaccio/utils';
import { Config } from '../src';
setup([]);
import { Config, parseConfigFile } from '../src';
const resolveConf = (conf) => {
const { name, ext } = path.parse(conf);

View File

@ -1,5 +1,5 @@
{
"name": "@verdaccio/htpasswd",
"name": "verdaccio-htpasswd",
"version": "10.0.0-beta",
"description": "htpasswd auth plugin for Verdaccio",
"keywords": [

View File

@ -230,26 +230,6 @@ declare module '@verdaccio/types' {
type Notification = Notifications;
interface ConfigFile {
storage: string;
plugins: string;
self_path: string;
packages: PackageList;
uplinks: UpLinksConfList;
logs: LoggerConf[];
web: WebConf;
auth: AuthConf;
publish?: PublishOptions;
url_prefix?: string;
listen?: ListenAddress;
https?: HttpsConf;
http_proxy?: string;
https_proxy?: string;
no_proxy?: string;
max_body_size?: string;
notifications: Notifications;
}
interface Token {
user: string;
token: string;
@ -264,7 +244,6 @@ declare module '@verdaccio/types' {
user: string;
}
type SyncReturn = Error | void;
type IPackageStorage = ILocalPackageManager | void;
type IPackageStorageManager = ILocalPackageManager;
type IPluginStorage<T> = ILocalData<T>;

View File

@ -1,6 +1,7 @@
import nock from 'nock';
import { createRemoteUser, parseConfigFile } from '@verdaccio/utils';
import { createRemoteUser } from '@verdaccio/utils';
import { Config } from '@verdaccio/types';
import { parseConfigFile } from '@verdaccio/config';
import { notify } from '../src/notify';
import { parseConfigurationFile } from './__helper';

View File

@ -25,6 +25,7 @@
"dependencies": {
"@verdaccio/dev-commons": "workspace:5.0.0-alpha.0",
"@verdaccio/utils": "workspace:5.0.0-alpha.0",
"@verdaccio/config": "workspace:5.0.0-alpha.0",
"fs-extra": "^8.1.0",
"lodash": "^4.17.20",
"request": "2.87.0",

View File

@ -1,7 +1,7 @@
import path from 'path';
import _ from 'lodash';
import { parseConfigFile } from '@verdaccio/utils';
import { parseConfigFile } from '@verdaccio/config';
/**
* Override the default.yaml configuration file with any new config provided.

View File

@ -26,6 +26,7 @@
"@verdaccio/dev-commons": "workspace:5.0.0-alpha.0",
"@verdaccio/logger": "workspace:5.0.0-alpha.0",
"@verdaccio/server": "workspace:5.0.0-alpha.0",
"@verdaccio/config": "workspace:5.0.0-alpha.0",
"@verdaccio/utils": "workspace:5.0.0-alpha.0",
"lodash": "^4.17.20",
"core-js": "^3.6.5",

View File

@ -5,7 +5,7 @@ import selfsigned from 'selfsigned';
import { configExample } from '@verdaccio/mock';
import { DEFAULT_DOMAIN, DEFAULT_PROTOCOL } from '@verdaccio/dev-commons';
import { parseConfigFile } from '@verdaccio/utils';
import { parseConfigFile } from '@verdaccio/config';
import { logger } from '@verdaccio/logger';

View File

@ -3,7 +3,7 @@ import express from 'express';
import request from 'request';
import { API_ERROR } from '@verdaccio/dev-commons';
import { parseConfigFile } from '@verdaccio/utils';
import { parseConfigFile } from '@verdaccio/config';
import { setup } from '@verdaccio/logger';
import endPointAPI from '../../src';

View File

@ -25,6 +25,7 @@
"dependencies": {
"@verdaccio/commons-api": "workspace:*",
"@verdaccio/dev-commons": "workspace:5.0.0-alpha.0",
"@verdaccio/config": "workspace:5.0.0-alpha.0",
"@verdaccio/loaders": "workspace:5.0.0-alpha.0",
"@verdaccio/local-storage": "workspace:*",
"@verdaccio/logger": "workspace:5.0.0-alpha.0",
@ -38,7 +39,6 @@
"semver": "7.1.2"
},
"devDependencies": {
"@verdaccio/config": "workspace:5.0.0-alpha.0",
"@verdaccio/mock": "workspace:5.0.0-alpha.0",
"@verdaccio/types": "workspace:*"
}

View File

@ -8,13 +8,7 @@ import buildDebug from 'debug';
import { ProxyStorage } from '@verdaccio/proxy';
import { API_ERROR, HTTP_STATUS, DIST_TAGS } from '@verdaccio/dev-commons';
import { ReadTarball } from '@verdaccio/streams';
import {
ErrorCode,
normalizeDistTags,
validateMetadata,
isObject,
hasProxyTo,
} from '@verdaccio/utils';
import { ErrorCode, normalizeDistTags, validateMetadata, isObject } from '@verdaccio/utils';
import { setupUpLinks, updateVersionsHiddenUpLink, ProxyList, IProxy } from '@verdaccio/proxy';
import {
IReadTarball,
@ -37,6 +31,7 @@ import {
IStorageManager,
ITokenActions,
} from '@verdaccio/types';
import { hasProxyTo } from '@verdaccio/config';
import { logger } from '@verdaccio/logger';
import { VerdaccioError } from '@verdaccio/commons-api';
import { SearchInstance } from './search';

View File

@ -31,7 +31,6 @@ export interface StartUpConfig {
}
// legacy should be removed in long term
export interface LegacyPackageList {
[key: string]: PackageAccessAddOn;
}

View File

@ -18,7 +18,6 @@
"@verdaccio/commons-api": "workspace:*",
"@verdaccio/dev-commons": "workspace:5.0.0-alpha.0",
"@verdaccio/readme": "workspace:*",
"js-yaml": "3.13.1",
"minimatch": "3.0.4",
"semver": "7.3.2"
},

View File

@ -2,5 +2,4 @@ export * from './auth-utils';
export * from './string';
export * from './utils';
export * from './crypto-utils';
export * from './config-utils';
export * from './replace-lodash';

View File

@ -4,7 +4,6 @@ import URL from 'url';
import { IncomingHttpHeaders } from 'http';
import _ from 'lodash';
import semver from 'semver';
import YAML from 'js-yaml';
import { Request } from 'express';
import sanitizyReadme from '@verdaccio/readme';
@ -360,6 +359,7 @@ const parseIntervalTable = {
* Parse an internal string to number
* @param {*} interval
* @return {Number}
* @deprecated
*/
export function parseInterval(interval: any): number {
if (typeof interval === 'number') {
@ -413,22 +413,6 @@ export const ErrorCode = {
getCode,
};
export function parseConfigFile(configPath: string): any {
try {
if (/\.ya?ml$/i.test(configPath)) {
// @ts-ignore
return YAML.safeLoad(fs.readFileSync(configPath, CHARACTER_ENCODING.UTF8));
}
return require(configPath);
} catch (e) {
if (e.code !== 'MODULE_NOT_FOUND') {
e.message = APP_ERROR.CONFIG_NOT_VALID;
}
throw new Error(e);
}
}
/**
* Check whether the path already exist.
* @param {String} path

View File

@ -46,6 +46,7 @@
"@verdaccio/ui-theme": "^1.12.1"
},
"devDependencies": {
"@verdaccio/config": "workspace:5.0.0-alpha.0",
"@verdaccio/auth": "workspace:5.0.0-alpha.0",
"@verdaccio/store": "workspace:5.0.0-alpha.0",
"@verdaccio/dev-commons": "workspace:*"

View File

@ -15,7 +15,7 @@ import rimraf from 'rimraf';
import endPointAPI from '@verdaccio/server';
import { mockServer } from '../../__helper/mock';
import { DOMAIN_SERVERS } from '../../../functional/config.functional';
import { parseConfigFile } from '@verdaccio/utils/src/utils';
import { parseConfigFile } from '@verdaccio/config';
import { parseConfigurationFile } from '../../__helper';
import { addUser } from '../../__helper/api';
import { setup } from '@verdaccio/logger';

View File

@ -82,11 +82,11 @@ importers:
standard-version: 8.0.0
supertest: 4.0.2
typescript: 3.9.7
verdaccio: 4.8.1
verdaccio-audit: 9.7.3
verdaccio-auth-memory: 9.7.2
verdaccio-htpasswd: 9.7.2
verdaccio-memory: 9.7.2
verdaccio: 'link:packages/verdaccio'
verdaccio-audit: 'link:packages/plugins/audit'
verdaccio-auth-memory: 'link:packages/plugins/auth-memory'
verdaccio-htpasswd: 'link:packages/core/htpasswd'
verdaccio-memory: 'link:packages/plugins/memory'
specifiers:
'@babel/cli': 7.11.6
'@babel/core': 7.11.6
@ -169,11 +169,11 @@ importers:
standard-version: 8.0.0
supertest: 4.0.2
typescript: ^3.9.7
verdaccio: latest
verdaccio-audit: latest
verdaccio-auth-memory: latest
verdaccio-htpasswd: latest
verdaccio-memory: latest
verdaccio: 'workspace:*'
verdaccio-audit: 'workspace:*'
verdaccio-auth-memory: 'workspace:*'
verdaccio-htpasswd: 'workspace:*'
verdaccio-memory: 'workspace:*'
packages/api:
dependencies:
'@verdaccio/auth': 'link:../auth'
@ -252,20 +252,18 @@ importers:
'@verdaccio/logger': 'link:../logger'
'@verdaccio/node-api': 'link:../node-api'
'@verdaccio/utils': 'link:../utils'
commander: 5.1.0
commander: 6.2.0
envinfo: 7.4.0
kleur: 3.0.3
lodash: 4.17.20
semver: 7.3.2
specifiers:
'@verdaccio/config': 'workspace:5.0.0-alpha.0'
'@verdaccio/logger': 'workspace:5.0.0-alpha.0'
'@verdaccio/node-api': 'workspace:5.0.0-alpha.0'
'@verdaccio/utils': 'workspace:5.0.0-alpha.0'
commander: 5.1.0
commander: 6.2.0
envinfo: 7.4.0
kleur: 3.0.3
lodash: ^4.17.20
semver: 7.3.2
packages/commons:
devDependencies:
@ -275,18 +273,23 @@ importers:
packages/config:
dependencies:
'@verdaccio/dev-commons': 'link:../commons'
'@verdaccio/logger': 'link:../logger'
'@verdaccio/utils': 'link:../utils'
debug: 4.2.0
js-yaml: 3.14.0
lodash: 4.17.20
mkdirp: 0.5.5
yup: 0.29.3
devDependencies:
'@types/yup': 0.29.9
specifiers:
'@types/yup': ^0.29.9
'@verdaccio/dev-commons': 'workspace:5.0.0-alpha.0'
'@verdaccio/logger': 'workspace:5.0.0-alpha.0'
'@verdaccio/utils': 'workspace:5.0.0-alpha.0'
debug: ^4.2.0
js-yaml: 3.14.0
lodash: ^4.17.20
mkdirp: 0.5.5
yup: ^0.29.3
packages/core/commons-api:
dependencies:
http-errors: 1.8.0
@ -477,6 +480,7 @@ importers:
lodash: 4.17.15
packages/mock:
dependencies:
'@verdaccio/config': 'link:../config'
'@verdaccio/dev-commons': 'link:../commons'
'@verdaccio/utils': 'link:../utils'
debug: 4.2.0
@ -488,6 +492,7 @@ importers:
devDependencies:
'@verdaccio/types': 'link:../core/types'
specifiers:
'@verdaccio/config': 'workspace:5.0.0-alpha.0'
'@verdaccio/dev-commons': 'workspace:5.0.0-alpha.0'
'@verdaccio/types': 'workspace:*'
'@verdaccio/utils': 'workspace:5.0.0-alpha.0'
@ -499,6 +504,7 @@ importers:
verdaccio: ^4.8.1
packages/node-api:
dependencies:
'@verdaccio/config': 'link:../config'
'@verdaccio/dev-commons': 'link:../commons'
'@verdaccio/logger': 'link:../logger'
'@verdaccio/server': 'link:../server'
@ -510,6 +516,7 @@ importers:
'@verdaccio/mock': 'link:../mock'
'@verdaccio/types': 'link:../core/types'
specifiers:
'@verdaccio/config': 'workspace:5.0.0-alpha.0'
'@verdaccio/dev-commons': 'workspace:5.0.0-alpha.0'
'@verdaccio/logger': 'workspace:5.0.0-alpha.0'
'@verdaccio/mock': 'workspace:5.0.0-alpha.0'
@ -671,6 +678,7 @@ importers:
packages/store:
dependencies:
'@verdaccio/commons-api': 'link:../core/commons-api'
'@verdaccio/config': 'link:../config'
'@verdaccio/dev-commons': 'link:../commons'
'@verdaccio/loaders': 'link:../loaders'
'@verdaccio/local-storage': 'link:../core/local-storage'
@ -684,7 +692,6 @@ importers:
lunr-mutable-indexes: 2.3.2
semver: 7.1.2
devDependencies:
'@verdaccio/config': 'link:../config'
'@verdaccio/mock': 'link:../mock'
'@verdaccio/types': 'link:../core/types'
specifiers:
@ -714,7 +721,6 @@ importers:
'@verdaccio/commons-api': 'link:../core/commons-api'
'@verdaccio/dev-commons': 'link:../commons'
'@verdaccio/readme': 'link:../core/readme'
js-yaml: 3.13.1
minimatch: 3.0.4
semver: 7.3.2
devDependencies:
@ -727,7 +733,6 @@ importers:
'@verdaccio/dev-commons': 'workspace:5.0.0-alpha.0'
'@verdaccio/logger': 'workspace:5.0.0-alpha.0'
'@verdaccio/readme': 'workspace:*'
js-yaml: 3.13.1
lodash: ^4.17.20
minimatch: 3.0.4
semver: 7.3.2
@ -743,11 +748,13 @@ importers:
verdaccio-htpasswd: 9.7.2
devDependencies:
'@verdaccio/auth': 'link:../auth'
'@verdaccio/config': 'link:../config'
'@verdaccio/dev-commons': 'link:../commons'
'@verdaccio/store': 'link:../store'
specifiers:
'@verdaccio/auth': 'workspace:5.0.0-alpha.0'
'@verdaccio/cli': 'workspace:5.0.0-alpha.0'
'@verdaccio/config': 'workspace:5.0.0-alpha.0'
'@verdaccio/dev-commons': 'workspace:*'
'@verdaccio/hooks': 'workspace:5.0.0-alpha.0'
'@verdaccio/logger': 'workspace:5.0.0-alpha.0'
@ -3773,6 +3780,12 @@ packages:
regenerator-runtime: 0.13.7
resolution:
integrity: sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
/@babel/runtime/7.12.5:
dependencies:
regenerator-runtime: 0.13.7
dev: false
resolution:
integrity: sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
/@babel/standalone/7.11.4:
dev: false
resolution:
@ -6235,6 +6248,10 @@ packages:
dev: false
resolution:
integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==
/@types/yup/0.29.9:
dev: true
resolution:
integrity: sha512-ZtjjlrHuHTYctHDz3c8XgInjj0v+Hahe32N/4cDa2banibf9w6aAgxwx0jZtBjKKzmGIU4NXhofEsBW1BbqrNg==
/@typescript-eslint/eslint-plugin/2.34.0_984cbb313f9ea271f36cadd8f9814e06:
dependencies:
'@typescript-eslint/experimental-utils': 2.34.0_eslint@6.8.0
@ -6503,6 +6520,7 @@ packages:
dompurify: 2.0.8
jsdom: 15.2.1
marked: 1.1.1
dev: false
resolution:
integrity: sha512-86Zv46Qpcx0d0YRutFPhPH4OhGSljUJyhkxk3H/bCzzw8hGEvM1Du2y8kzfAS9qUsX8Qux97vfxxz6+RpBdU1w==
/@verdaccio/streams/8.5.2:
@ -6526,6 +6544,7 @@ packages:
resolution:
integrity: sha512-3nDT5iJvmIYJe8UwirJbHexy21HU0YUkwvKygVe2KCPUTQu8u23/w6JyOB8reqj8w0xFfJMHI0dArnPsKxYM3Q==
/@verdaccio/ui-theme/1.12.1:
dev: false
engines:
node: '>= 8'
npm: '>=5'
@ -8165,6 +8184,7 @@ packages:
resolution:
integrity: sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
/bunyan/1.8.14:
dev: false
engines:
'0': node >=0.10.0
hasBin: true
@ -8865,12 +8885,12 @@ packages:
node: '>= 6'
resolution:
integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
/commander/5.1.0:
/commander/6.2.0:
dev: false
engines:
node: '>= 6'
resolution:
integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
integrity: sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==
/common-tags/1.8.0:
dev: false
engines:
@ -9781,6 +9801,7 @@ packages:
resolution:
integrity: sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg==
/dayjs/1.8.28:
dev: false
resolution:
integrity: sha512-ccnYgKC0/hPSGXxj7Ju6AV/BP4HUkXC2u15mikXT5mX9YorEaoi1bEKOmAqdkJHN4EEkmAf97SpH66Try5Mbeg==
/debug/2.6.9:
@ -10349,6 +10370,7 @@ packages:
resolution:
integrity: sha512-S3O0lk6rFJtO01ZTzMollCOGg+WAtCwS3U5E2WSDY/x/sy7q70RjEC4Dmrih5/UqzLLB9XoKJ8KqwBxaNvBu4A==
/dompurify/2.0.8:
dev: false
resolution:
integrity: sha512-vIOSyOXkMx81ghEalh4MLBtDHMx1bhKlaqHDMqM2yeitJ996SLOk5mGdDpI9ifJAgokred8Rmu219fX4OltqXw==
/domutils/1.5.1:
@ -10669,6 +10691,7 @@ packages:
resolution:
integrity: sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ==
/envinfo/7.5.1:
dev: false
engines:
node: '>=4'
hasBin: true
@ -11952,6 +11975,12 @@ packages:
node: '>=0.10.0'
resolution:
integrity: sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=
/fn-name/3.0.0:
dev: false
engines:
node: '>=8'
resolution:
integrity: sha512-eNMNr5exLoavuAMhIUVsOKF79SWd/zG104ef6sxBTSw+cZc6BXdQXDvYcGvp0VbxVVSp1XDUNoz7mg1xMtSznA==
/focus-lock/0.7.0:
dev: false
resolution:
@ -15658,6 +15687,7 @@ packages:
dependencies:
argparse: 1.0.10
esprima: 4.0.1
dev: true
hasBin: true
resolution:
integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@ -16043,6 +16073,7 @@ packages:
resolution:
integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
/kleur/4.0.2:
dev: false
engines:
node: '>=6'
resolution:
@ -16877,6 +16908,7 @@ packages:
resolution:
integrity: sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==
/marked/1.1.1:
dev: false
engines:
node: '>= 8.16.2'
hasBin: true
@ -19443,6 +19475,10 @@ packages:
/property-expr/1.5.1:
resolution:
integrity: sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==
/property-expr/2.0.4:
dev: false
resolution:
integrity: sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg==
/property-information/4.2.0:
dependencies:
xtend: 4.0.2
@ -22146,6 +22182,10 @@ packages:
/synchronous-promise/2.0.13:
resolution:
integrity: sha512-R9N6uDkVsghHePKh1TEqbnLddO2IY25OcsksyFp/qBe7XYd0PVbKEWxhcdMhpLzE1I6skj5l4aEZ3CRxcbArlA==
/synchronous-promise/2.0.15:
dev: false
resolution:
integrity: sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg==
/tabbable/4.0.0:
dev: false
resolution:
@ -23289,18 +23329,11 @@ packages:
dependencies:
express: 4.17.1
request: 2.88.2
dev: false
engines:
node: '>=8'
resolution:
integrity: sha512-FDWafgDjvnTbJapQpd0c41FjrecR+iRHrnDi2gkAn4IJpiLCgXC6R5NdkXjDIekKEsou9PyQTsEdoHK7iDx+tQ==
/verdaccio-auth-memory/9.7.2:
dependencies:
'@verdaccio/commons-api': 9.7.1
dev: true
engines:
node: '>=8'
resolution:
integrity: sha512-pxFGUk91kAJPrmjRIzHRn/cnLmyuN925nA1iH2Bf6kdP9E0uEGK/pRjMh8BuXWFLsGe9E6N7HR86cub1/qcrzA==
/verdaccio-htpasswd/8.5.2:
dependencies:
'@verdaccio/file-locking': 1.0.0
@ -23320,20 +23353,11 @@ packages:
bcryptjs: 2.4.3
http-errors: 1.8.0
unix-crypt-td-js: 1.1.4
dev: false
engines:
node: '>=8'
resolution:
integrity: sha512-c7ZEb7wuce0+4h92w4f1ySMhsIWFs/mlsFjjoqIlY5SBskmQI5RHC7HQglVgFjOMxrWoaaadJ5WGmFV+A/yxPQ==
/verdaccio-memory/9.7.2:
dependencies:
'@verdaccio/commons-api': 9.7.1
'@verdaccio/streams': 9.7.2
memory-fs: 0.5.0
dev: true
engines:
node: '>=8'
resolution:
integrity: sha512-HKUbbgY147dOV4GhOoC/iVTl87RPVKN7dLX/EBSH23TwR/tClQdGduRLy9yeqc/0iouGc0GXm2IWK/1qoBuy4w==
/verdaccio/4.4.4:
dependencies:
'@verdaccio/commons-api': 8.5.0
@ -23412,6 +23436,7 @@ packages:
semver: 6.3.0
verdaccio-audit: 9.7.3
verdaccio-htpasswd: 9.7.2
dev: false
engines:
node: '>=8'
npm: '>=5'
@ -24144,6 +24169,20 @@ packages:
toposort: 2.0.2
resolution:
integrity: sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==
/yup/0.29.3:
dependencies:
'@babel/runtime': 7.12.5
fn-name: 3.0.0
lodash: 4.17.20
lodash-es: 4.17.15
property-expr: 2.0.4
synchronous-promise: 2.0.15
toposort: 2.0.2
dev: false
engines:
node: '>=10'
resolution:
integrity: sha512-RNUGiZ/sQ37CkhzKFoedkeMfJM0vNQyaz+wRZJzxdKE7VfDeVKH8bb4rr7XhRLbHJz5hSjoDNwMEIaKhuMZ8gQ==
/yurnalist/1.1.2:
dependencies:
babel-runtime: 6.26.0