mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-03-11 02:15:57 -05:00
feat: improve cli logging on start up (#2097)
* feat: improve cli logging on start up * chore: remove deps
This commit is contained in:
parent
e2a4477c8f
commit
d5eacc218b
25 changed files with 221 additions and 153 deletions
6
.changeset/plenty-tables-refuse.md
Normal file
6
.changeset/plenty-tables-refuse.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
'@verdaccio/cli': minor
|
||||||
|
'@verdaccio/node-api': minor
|
||||||
|
---
|
||||||
|
|
||||||
|
feat: improve cli loggin on start up
|
|
@ -44,7 +44,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@verdaccio/config": "workspace:5.0.0-alpha.3",
|
"@verdaccio/config": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/logger": "workspace:5.0.0-alpha.3",
|
"@verdaccio/cli-ui": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/node-api": "workspace:5.0.0-alpha.6",
|
"@verdaccio/node-api": "workspace:5.0.0-alpha.6",
|
||||||
"commander": "6.2.0",
|
"commander": "6.2.0",
|
||||||
"envinfo": "7.4.0",
|
"envinfo": "7.4.0",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import commander from 'commander';
|
import commander from 'commander';
|
||||||
import { bgYellow, bgRed } from 'kleur';
|
import { bgYellow, bgRed } from 'kleur';
|
||||||
|
|
||||||
import { logger } from '@verdaccio/logger';
|
import { displayError } from '@verdaccio/cli-ui';
|
||||||
|
|
||||||
import infoCommand from './commands/info';
|
import infoCommand from './commands/info';
|
||||||
import initProgram from './commands/init';
|
import initProgram from './commands/init';
|
||||||
|
@ -55,12 +55,9 @@ if (commander.info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
process.on('uncaughtException', function (err) {
|
process.on('uncaughtException', function (err) {
|
||||||
logger.fatal(
|
displayError(
|
||||||
{
|
// eslint-disable-next-line max-len
|
||||||
err: err,
|
`uncaught exception, please report (https://github.com/verdaccio/verdaccio/issues) this: \n${err.stack}`
|
||||||
},
|
|
||||||
'uncaught exception, please report (https://github.com/verdaccio/verdaccio/issues) ' +
|
|
||||||
'this: \n@{err.stack}'
|
|
||||||
);
|
);
|
||||||
process.exit(255);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,8 +5,6 @@ import { startVerdaccio, listenDefaultCallback } from '@verdaccio/node-api';
|
||||||
export const DEFAULT_PROCESS_NAME: string = 'verdaccio';
|
export const DEFAULT_PROCESS_NAME: string = 'verdaccio';
|
||||||
|
|
||||||
export default function initProgram(commander, pkgVersion, pkgName) {
|
export default function initProgram(commander, pkgVersion, pkgName) {
|
||||||
// FIXME: we need to log before the setup is being applied
|
|
||||||
// const initLogger = createLogger();
|
|
||||||
const cliListener = commander.listen;
|
const cliListener = commander.listen;
|
||||||
let configPathLocation;
|
let configPathLocation;
|
||||||
let verdaccioConfiguration: ConfigRuntime;
|
let verdaccioConfiguration: ConfigRuntime;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
"extends": "../../tsconfig.base.json",
|
"extends": "../../tsconfig.base.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"rootDir": "./src",
|
"rootDir": "./src",
|
||||||
|
"jsx": "react",
|
||||||
"outDir": "./build"
|
"outDir": "./build"
|
||||||
},
|
},
|
||||||
"include": ["src/**/*"],
|
"include": ["src/**/*"],
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
{
|
{
|
||||||
"path": "../node-api"
|
"path": "../node-api"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "../core/cli-ui"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "../utils"
|
"path": "../utils"
|
||||||
}
|
}
|
||||||
|
|
6
packages/core/cli-ui/.babelrc
Normal file
6
packages/core/cli-ui/.babelrc
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"extends": "../../../.babelrc",
|
||||||
|
"presets": [
|
||||||
|
"@babel/preset-react"
|
||||||
|
]
|
||||||
|
}
|
5
packages/core/cli-ui/.eslintrc
Normal file
5
packages/core/cli-ui/.eslintrc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"no-console": 0
|
||||||
|
}
|
||||||
|
}
|
3
packages/core/cli-ui/jest.config.js
Normal file
3
packages/core/cli-ui/jest.config.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
const config = require('../../../jest/config');
|
||||||
|
|
||||||
|
module.exports = Object.assign({}, config, {});
|
55
packages/core/cli-ui/package.json
Normal file
55
packages/core/cli-ui/package.json
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
"name": "@verdaccio/cli-ui",
|
||||||
|
"version": "5.0.0-alpha.3",
|
||||||
|
"description": "cli ui components",
|
||||||
|
"keywords": [
|
||||||
|
"private",
|
||||||
|
"package",
|
||||||
|
"repository",
|
||||||
|
"registry",
|
||||||
|
"enterprise",
|
||||||
|
"modules",
|
||||||
|
"proxy",
|
||||||
|
"server",
|
||||||
|
"verdaccio"
|
||||||
|
],
|
||||||
|
"author": "Juan Picado <juanpicado19@gmail.com>",
|
||||||
|
"license": "MIT",
|
||||||
|
"homepage": "https://verdaccio.org",
|
||||||
|
"repository": {
|
||||||
|
"type": "https",
|
||||||
|
"url": "https://github.com/verdaccio/verdaccio",
|
||||||
|
"directory": "packages/core/cli-ui"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/verdaccio/verdaccio/issues"
|
||||||
|
},
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
},
|
||||||
|
"main": "build/index.js",
|
||||||
|
"types": "build/index.d.ts",
|
||||||
|
"files": [
|
||||||
|
"build"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10",
|
||||||
|
"npm": ">=6"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": "^4.1.0",
|
||||||
|
"terminal-link": "^2.1.1"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"clean": "rimraf ./build",
|
||||||
|
"test": "cross-env NODE_ENV=test BABEL_ENV=test jest",
|
||||||
|
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
|
||||||
|
"build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",
|
||||||
|
"watch": "pnpm build:js -- --watch",
|
||||||
|
"build": "pnpm run build:js && pnpm run build:types"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/verdaccio"
|
||||||
|
}
|
||||||
|
}
|
1
packages/core/cli-ui/src/index.tsx
Normal file
1
packages/core/cli-ui/src/index.tsx
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export * from './messages';
|
25
packages/core/cli-ui/src/messages.tsx
Normal file
25
packages/core/cli-ui/src/messages.tsx
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import chalk from 'chalk';
|
||||||
|
import terminalLink from 'terminal-link';
|
||||||
|
|
||||||
|
export const PRIMARY_COLOR = `#24394e`;
|
||||||
|
|
||||||
|
export function displayMessage(message: string) {
|
||||||
|
console.log(chalk.hex(PRIMARY_COLOR).bold(message));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function displayWarning(message: string) {
|
||||||
|
console.log(chalk.yellow.bold(message));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function displayError(message: string) {
|
||||||
|
console.log(chalk.red.bold(message));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function displayLink(url: string) {
|
||||||
|
if (terminalLink.isSupported) {
|
||||||
|
const link = terminalLink(url, url);
|
||||||
|
return chalk.blue.underline(link);
|
||||||
|
}
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
3
packages/core/cli-ui/tests/cli.spec.ts
Normal file
3
packages/core/cli-ui/tests/cli.spec.ts
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
describe('cli ui', () => {
|
||||||
|
test.todo('add required test for this module');
|
||||||
|
});
|
9
packages/core/cli-ui/tsconfig.build.json
Normal file
9
packages/core/cli-ui/tsconfig.build.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"extends": "../../../tsconfig.base.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"rootDir": "./src",
|
||||||
|
"outDir": "./build"
|
||||||
|
},
|
||||||
|
"include": ["src/**/*"],
|
||||||
|
"exclude": ["src/**/*.test.ts"]
|
||||||
|
}
|
11
packages/core/cli-ui/tsconfig.json
Normal file
11
packages/core/cli-ui/tsconfig.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"extends": "../../../tsconfig.reference.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"rootDir": "./src",
|
||||||
|
"outDir": "./build",
|
||||||
|
"composite": true,
|
||||||
|
"declaration": true
|
||||||
|
},
|
||||||
|
"include": ["src/**/*.ts"],
|
||||||
|
"exclude": ["src/**/*.test.ts"]
|
||||||
|
}
|
|
@ -41,7 +41,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@verdaccio/commons-api": "workspace:10.0.0-alpha.3",
|
"@verdaccio/commons-api": "workspace:10.0.0-alpha.3",
|
||||||
"@verdaccio/config": "workspace:5.0.0-alpha.3",
|
"@verdaccio/config": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/logger": "workspace:5.0.0-alpha.3",
|
"@verdaccio/cli-ui": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/server": "workspace:5.0.0-alpha.6",
|
"@verdaccio/server": "workspace:5.0.0-alpha.6",
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
"debug": "^4.2.0",
|
"debug": "^4.2.0",
|
||||||
|
@ -50,7 +50,8 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@verdaccio/mock": "workspace:5.0.0-alpha.3",
|
"@verdaccio/mock": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/types": "workspace:10.0.0-alpha.3"
|
"@verdaccio/types": "workspace:10.0.0-alpha.3",
|
||||||
|
"jest-mock-process": "^1.4.0"
|
||||||
},
|
},
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public"
|
"access": "public"
|
||||||
|
|
|
@ -7,6 +7,8 @@ import { Application } from 'express';
|
||||||
import { assign, isObject, isFunction } from 'lodash';
|
import { assign, isObject, isFunction } from 'lodash';
|
||||||
import buildDebug from 'debug';
|
import buildDebug from 'debug';
|
||||||
|
|
||||||
|
import { displayError, displayMessage, displayLink } from '@verdaccio/cli-ui';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ConfigRuntime,
|
ConfigRuntime,
|
||||||
Callback,
|
Callback,
|
||||||
|
@ -16,7 +18,6 @@ import {
|
||||||
} from '@verdaccio/types';
|
} from '@verdaccio/types';
|
||||||
import { API_ERROR } from '@verdaccio/commons-api';
|
import { API_ERROR } from '@verdaccio/commons-api';
|
||||||
import server from '@verdaccio/server';
|
import server from '@verdaccio/server';
|
||||||
import { logger } from '@verdaccio/logger';
|
|
||||||
|
|
||||||
export const keyPem = 'verdaccio-key.pem';
|
export const keyPem = 'verdaccio-key.pem';
|
||||||
export const certPem = 'verdaccio-cert.pem';
|
export const certPem = 'verdaccio-cert.pem';
|
||||||
|
@ -85,8 +86,8 @@ function unlinkAddressPath(addr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function logHTTPSWarning(storageLocation) {
|
function logHTTPSError(storageLocation) {
|
||||||
logger.fatal(
|
displayError(
|
||||||
[
|
[
|
||||||
'You have enabled HTTPS and need to specify either ',
|
'You have enabled HTTPS and need to specify either ',
|
||||||
' "https.key" and "https.cert" or ',
|
' "https.key" and "https.cert" or ',
|
||||||
|
@ -113,6 +114,7 @@ function logHTTPSWarning(storageLocation) {
|
||||||
` cert: ${resolveConfigPath(storageLocation, certPem)}`,
|
` cert: ${resolveConfigPath(storageLocation, certPem)}`,
|
||||||
].join('\n')
|
].join('\n')
|
||||||
);
|
);
|
||||||
|
displayError(displayLink('https://verdaccio.org/docs/en/configuration#https'));
|
||||||
process.exit(2);
|
process.exit(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +130,8 @@ function handleHTTPS(app: Application, configPath: string, config: ConfigWithHtt
|
||||||
|
|
||||||
// https must either have key and cert or a pfx and (optionally) a passphrase
|
// https must either have key and cert or a pfx and (optionally) a passphrase
|
||||||
if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) {
|
if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) {
|
||||||
logHTTPSWarning(configPath);
|
logHTTPSError(configPath);
|
||||||
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pfxConfig.pfx) {
|
if (pfxConfig.pfx) {
|
||||||
|
@ -149,8 +152,7 @@ function handleHTTPS(app: Application, configPath: string, config: ConfigWithHtt
|
||||||
}
|
}
|
||||||
return https.createServer(httpsOptions, app);
|
return https.createServer(httpsOptions, app);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// catch errors related to certificate loading
|
displayError(`cannot create server: ${err.message}`);
|
||||||
logger.fatal({ err: err }, 'cannot create server: @{err.message}');
|
|
||||||
process.exit(2);
|
process.exit(2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,35 +165,32 @@ function listenDefaultCallback(
|
||||||
): void {
|
): void {
|
||||||
webServer
|
webServer
|
||||||
.listen(addr.port || addr.path, addr.host, (): void => {
|
.listen(addr.port || addr.path, addr.host, (): void => {
|
||||||
// send a message for tests
|
// send a message for test
|
||||||
if (isFunction(process.send)) {
|
if (isFunction(process.send)) {
|
||||||
process.send({
|
process.send({
|
||||||
verdaccio_started: true,
|
verdaccio_started: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
const addressServer = `${
|
||||||
|
addr.path
|
||||||
|
? URL.format({
|
||||||
|
protocol: 'unix',
|
||||||
|
pathname: addr.path,
|
||||||
|
})
|
||||||
|
: URL.format({
|
||||||
|
protocol: addr.proto,
|
||||||
|
hostname: addr.host,
|
||||||
|
port: addr.port,
|
||||||
|
pathname: '/',
|
||||||
|
})
|
||||||
|
}`;
|
||||||
|
displayMessage(`http address ${displayLink(addressServer)}`);
|
||||||
|
displayMessage(`${pkgName} / ${pkgVersion}`);
|
||||||
})
|
})
|
||||||
.on('error', function (err): void {
|
.on('error', function (err): void {
|
||||||
logger.fatal({ err: err }, 'cannot create server: @{err.message}');
|
displayError(`cannot create server: ${err.message}`);
|
||||||
process.exit(2);
|
process.exit(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
logger.warn(
|
|
||||||
{
|
|
||||||
addr: addr.path
|
|
||||||
? URL.format({
|
|
||||||
protocol: 'unix',
|
|
||||||
pathname: addr.path,
|
|
||||||
})
|
|
||||||
: URL.format({
|
|
||||||
protocol: addr.proto,
|
|
||||||
hostname: addr.host,
|
|
||||||
port: addr.port,
|
|
||||||
pathname: '/',
|
|
||||||
}),
|
|
||||||
version: pkgName + '/' + pkgVersion,
|
|
||||||
},
|
|
||||||
'http address - @{addr} - @{version}'
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export { startVerdaccio, listenDefaultCallback };
|
export { startVerdaccio, listenDefaultCallback };
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import semver from 'semver';
|
import semver from 'semver';
|
||||||
|
|
||||||
const logger = require('@verdaccio/logger');
|
import { displayLink, displayWarning } from '@verdaccio/cli-ui';
|
||||||
|
|
||||||
export const DEFAULT_PORT = '4873';
|
export const DEFAULT_PORT = '4873';
|
||||||
export const DEFAULT_PROTOCOL = 'http';
|
export const DEFAULT_PROTOCOL = 'http';
|
||||||
|
@ -87,12 +87,11 @@ export function getListListenAddresses(argListen: string, configListen: any): an
|
||||||
const parsedAddr = parseAddress(addr);
|
const parsedAddr = parseAddress(addr);
|
||||||
|
|
||||||
if (!parsedAddr) {
|
if (!parsedAddr) {
|
||||||
logger.logger.warn(
|
displayWarning(
|
||||||
{ addr: addr },
|
// eslint-disable-next-line max-len
|
||||||
'invalid address - @{addr}, we expect a port (e.g. "4873"),' +
|
`invalid address - ${addr}, we expect a port (e.g. "4873"), host:port (e.g. "localhost:4873") or full url '(e.g. "http://localhost:4873/")`
|
||||||
' host:port (e.g. "localhost:4873") or full url' +
|
|
||||||
' (e.g. "http://localhost:4873/")'
|
|
||||||
);
|
);
|
||||||
|
displayWarning(displayLink('https://verdaccio.org/docs/en/configuration#listen-port'));
|
||||||
}
|
}
|
||||||
|
|
||||||
return parsedAddr;
|
return parsedAddr;
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
import buildDebug from 'debug';
|
import { displayWarning, displayMessage } from '@verdaccio/cli-ui';
|
||||||
|
|
||||||
const debug = buildDebug('verdaccio:runtime:flags');
|
|
||||||
|
|
||||||
export function displayExperimentsInfoBox(flags) {
|
export function displayExperimentsInfoBox(flags) {
|
||||||
if (!flags) {
|
if (!flags) {
|
||||||
|
@ -9,12 +7,15 @@ export function displayExperimentsInfoBox(flags) {
|
||||||
|
|
||||||
const experimentList = Object.keys(flags);
|
const experimentList = Object.keys(flags);
|
||||||
if (experimentList.length >= 1) {
|
if (experimentList.length >= 1) {
|
||||||
debug(
|
displayWarning(
|
||||||
'⚠️ experiments are enabled, we recommend do not use experiments in production, ' +
|
'⚠️ experiments are enabled, we recommend do not use experiments in production, ' +
|
||||||
'comment out this section to disable it'
|
'comment out this section to disable it'
|
||||||
);
|
);
|
||||||
experimentList.forEach((experiment) => {
|
experimentList.forEach((experiment) => {
|
||||||
debug(` - support for %o %o`, experiment, flags[experiment] ? 'is enabled' : ' is disabled');
|
displayMessage(
|
||||||
|
` - support for ${experiment} ${flags[experiment] ? 'is enabled' : ' is disabled'}
|
||||||
|
`
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
import { resolveConfigPath } from './cli-utils';
|
|
||||||
import { certPem, csrPem, keyPem } from './bootstrap';
|
|
||||||
|
|
||||||
const logger = require('@verdaccio/logger');
|
|
||||||
|
|
||||||
export function logHTTPSWarning(storageLocation) {
|
|
||||||
logger.logger.fatal(
|
|
||||||
[
|
|
||||||
'You have enabled HTTPS and need to specify either ',
|
|
||||||
' "https.key", "https.cert" and "https.ca" or ',
|
|
||||||
' "https.pfx" and optionally "https.passphrase" ',
|
|
||||||
'to run https server',
|
|
||||||
'',
|
|
||||||
// commands are borrowed from node.js docs
|
|
||||||
'To quickly create self-signed certificate, use:',
|
|
||||||
' $ openssl genrsa -out ' + resolveConfigPath(storageLocation, keyPem) + ' 2048',
|
|
||||||
' $ openssl req -new -sha256 -key ' +
|
|
||||||
resolveConfigPath(storageLocation, keyPem) +
|
|
||||||
' -out ' +
|
|
||||||
resolveConfigPath(storageLocation, csrPem),
|
|
||||||
' $ openssl x509 -req -in ' +
|
|
||||||
resolveConfigPath(storageLocation, csrPem) +
|
|
||||||
' -signkey ' +
|
|
||||||
resolveConfigPath(storageLocation, keyPem) +
|
|
||||||
' -out ' +
|
|
||||||
resolveConfigPath(storageLocation, certPem),
|
|
||||||
'',
|
|
||||||
'And then add to config file (' + storageLocation + '):',
|
|
||||||
' https:',
|
|
||||||
` key: ${resolveConfigPath(storageLocation, keyPem)}`,
|
|
||||||
` cert: ${resolveConfigPath(storageLocation, certPem)}`,
|
|
||||||
` ca: ${resolveConfigPath(storageLocation, csrPem)}`,
|
|
||||||
].join('\n')
|
|
||||||
);
|
|
||||||
process.exit(2);
|
|
||||||
}
|
|
|
@ -6,22 +6,9 @@ import selfsigned from 'selfsigned';
|
||||||
import { configExample } from '@verdaccio/mock';
|
import { configExample } from '@verdaccio/mock';
|
||||||
import { parseConfigFile } from '@verdaccio/config';
|
import { parseConfigFile } from '@verdaccio/config';
|
||||||
|
|
||||||
import { logger } from '@verdaccio/logger';
|
|
||||||
|
|
||||||
import { startVerdaccio } from '../src';
|
import { startVerdaccio } from '../src';
|
||||||
import { DEFAULT_DOMAIN, DEFAULT_PROTOCOL } from '../src/cli-utils';
|
import { DEFAULT_DOMAIN, DEFAULT_PROTOCOL } from '../src/cli-utils';
|
||||||
|
const mockProcess = require('jest-mock-process');
|
||||||
jest.mock('@verdaccio/logger', () => ({
|
|
||||||
setup: jest.fn(),
|
|
||||||
logger: {
|
|
||||||
child: jest.fn(),
|
|
||||||
debug: jest.fn(),
|
|
||||||
trace: jest.fn(),
|
|
||||||
warn: jest.fn(),
|
|
||||||
error: jest.fn(),
|
|
||||||
fatal: jest.fn(),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('startServer via API', () => {
|
describe('startServer via API', () => {
|
||||||
const parseConfigurationFile = (name) => {
|
const parseConfigurationFile = (name) => {
|
||||||
|
@ -144,26 +131,19 @@ describe('startServer via API', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should provide all HTTPS server fails', async (done) => {
|
test('should provide all HTTPS server fails', async (done) => {
|
||||||
|
let mockExit = mockProcess.mockProcessExit();
|
||||||
const store = path.join(__dirname, 'partials/store');
|
const store = path.join(__dirname, 'partials/store');
|
||||||
const serverName = 'verdaccio-test';
|
const serverName = 'verdaccio-test';
|
||||||
const version = '1.0.0';
|
const version = '1.0.0';
|
||||||
const address = 'https://www.domain.com:443';
|
const address = 'https://www.domain.com:443';
|
||||||
const realProcess = process;
|
|
||||||
|
|
||||||
const conf = configExample();
|
const conf = configExample({});
|
||||||
conf.https = {};
|
conf.https = {};
|
||||||
// save process to catch exist
|
// save process to catch exist
|
||||||
const exitMock = jest.fn();
|
|
||||||
// @ts-ignore
|
|
||||||
global.process = { ...realProcess, exit: exitMock };
|
|
||||||
await startVerdaccio(conf, address, store, version, serverName, () => {
|
await startVerdaccio(conf, address, store, version, serverName, () => {
|
||||||
expect(logger.fatal).toHaveBeenCalled();
|
expect(mockExit).toHaveBeenCalledWith(2);
|
||||||
expect(logger.fatal).toHaveBeenCalledTimes(2);
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
expect(exitMock).toHaveBeenCalledWith(2);
|
|
||||||
// restore process
|
|
||||||
global.process = realProcess;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should start a https server with key and cert', async (done) => {
|
test('should start a https server with key and cert', async (done) => {
|
||||||
|
|
|
@ -6,18 +6,6 @@ import {
|
||||||
getListListenAddresses,
|
getListListenAddresses,
|
||||||
} from '../src/cli-utils';
|
} from '../src/cli-utils';
|
||||||
|
|
||||||
jest.mock('@verdaccio/logger', () => ({
|
|
||||||
setup: jest.fn(),
|
|
||||||
logger: {
|
|
||||||
child: jest.fn(),
|
|
||||||
debug: jest.fn(),
|
|
||||||
trace: jest.fn(),
|
|
||||||
warn: jest.fn(),
|
|
||||||
error: jest.fn(),
|
|
||||||
fatal: jest.fn(),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('getListListenAddresses test', () => {
|
describe('getListListenAddresses test', () => {
|
||||||
test('should return no address if a single address is wrong', () => {
|
test('should return no address if a single address is wrong', () => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "../utils"
|
"path": "../utils"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../core/cli-ui"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
71
pnpm-lock.yaml
generated
71
pnpm-lock.yaml
generated
|
@ -284,16 +284,16 @@ importers:
|
||||||
verdaccio-htpasswd: workspace:10.0.0-alpha.6
|
verdaccio-htpasswd: workspace:10.0.0-alpha.6
|
||||||
packages/cli:
|
packages/cli:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@verdaccio/cli-ui': link:../core/cli-ui
|
||||||
'@verdaccio/config': link:../config
|
'@verdaccio/config': link:../config
|
||||||
'@verdaccio/logger': link:../logger
|
|
||||||
'@verdaccio/node-api': link:../node-api
|
'@verdaccio/node-api': link:../node-api
|
||||||
commander: 6.2.0
|
commander: 6.2.0
|
||||||
envinfo: 7.4.0
|
envinfo: 7.4.0
|
||||||
kleur: 3.0.3
|
kleur: 3.0.3
|
||||||
semver: 7.3.2
|
semver: 7.3.2
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@verdaccio/cli-ui': workspace:5.0.0-alpha.3
|
||||||
'@verdaccio/config': workspace:5.0.0-alpha.3
|
'@verdaccio/config': workspace:5.0.0-alpha.3
|
||||||
'@verdaccio/logger': workspace:5.0.0-alpha.3
|
|
||||||
'@verdaccio/node-api': workspace:5.0.0-alpha.6
|
'@verdaccio/node-api': workspace:5.0.0-alpha.6
|
||||||
commander: 6.2.0
|
commander: 6.2.0
|
||||||
envinfo: 7.4.0
|
envinfo: 7.4.0
|
||||||
|
@ -323,6 +323,13 @@ importers:
|
||||||
minimatch: 3.0.4
|
minimatch: 3.0.4
|
||||||
mkdirp: 0.5.5
|
mkdirp: 0.5.5
|
||||||
yup: ^0.29.3
|
yup: ^0.29.3
|
||||||
|
packages/core/cli-ui:
|
||||||
|
dependencies:
|
||||||
|
chalk: 4.1.0
|
||||||
|
terminal-link: 2.1.1
|
||||||
|
specifiers:
|
||||||
|
chalk: ^4.1.0
|
||||||
|
terminal-link: ^2.1.1
|
||||||
packages/core/commons-api:
|
packages/core/commons-api:
|
||||||
dependencies:
|
dependencies:
|
||||||
http-errors: 1.8.0
|
http-errors: 1.8.0
|
||||||
|
@ -531,9 +538,9 @@ importers:
|
||||||
supertest: ^4.0.2
|
supertest: ^4.0.2
|
||||||
packages/node-api:
|
packages/node-api:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@verdaccio/cli-ui': link:../core/cli-ui
|
||||||
'@verdaccio/commons-api': link:../core/commons-api
|
'@verdaccio/commons-api': link:../core/commons-api
|
||||||
'@verdaccio/config': link:../config
|
'@verdaccio/config': link:../config
|
||||||
'@verdaccio/logger': link:../logger
|
|
||||||
'@verdaccio/server': link:../server
|
'@verdaccio/server': link:../server
|
||||||
core-js: 3.6.5
|
core-js: 3.6.5
|
||||||
debug: 4.2.0
|
debug: 4.2.0
|
||||||
|
@ -542,15 +549,17 @@ importers:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@verdaccio/mock': link:../mock
|
'@verdaccio/mock': link:../mock
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
|
jest-mock-process: 1.4.0
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@verdaccio/cli-ui': workspace:5.0.0-alpha.3
|
||||||
'@verdaccio/commons-api': workspace:10.0.0-alpha.3
|
'@verdaccio/commons-api': workspace:10.0.0-alpha.3
|
||||||
'@verdaccio/config': workspace:5.0.0-alpha.3
|
'@verdaccio/config': workspace:5.0.0-alpha.3
|
||||||
'@verdaccio/logger': workspace:5.0.0-alpha.3
|
|
||||||
'@verdaccio/mock': workspace:5.0.0-alpha.3
|
'@verdaccio/mock': workspace:5.0.0-alpha.3
|
||||||
'@verdaccio/server': workspace:5.0.0-alpha.6
|
'@verdaccio/server': workspace:5.0.0-alpha.6
|
||||||
'@verdaccio/types': workspace:10.0.0-alpha.3
|
'@verdaccio/types': workspace:10.0.0-alpha.3
|
||||||
core-js: ^3.6.5
|
core-js: ^3.6.5
|
||||||
debug: ^4.2.0
|
debug: ^4.2.0
|
||||||
|
jest-mock-process: ^1.4.0
|
||||||
lodash: ^4.17.20
|
lodash: ^4.17.20
|
||||||
selfsigned: 1.10.7
|
selfsigned: 1.10.7
|
||||||
packages/plugins/active-directory:
|
packages/plugins/active-directory:
|
||||||
|
@ -1636,7 +1645,6 @@ packages:
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
|
integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
|
||||||
/@babel/helper-plugin-utils/7.12.13:
|
/@babel/helper-plugin-utils/7.12.13:
|
||||||
dev: true
|
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==
|
integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==
|
||||||
/@babel/helper-regex/7.10.5:
|
/@babel/helper-regex/7.10.5:
|
||||||
|
@ -2290,7 +2298,7 @@ packages:
|
||||||
integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==
|
integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==
|
||||||
/@babel/plugin-syntax-async-generators/7.8.4:
|
/@babel/plugin-syntax-async-generators/7.8.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2299,7 +2307,7 @@ packages:
|
||||||
/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.11.4:
|
/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2422,7 +2430,7 @@ packages:
|
||||||
integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
|
integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
|
||||||
/@babel/plugin-syntax-export-namespace-from/7.8.3:
|
/@babel/plugin-syntax-export-namespace-from/7.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2431,7 +2439,7 @@ packages:
|
||||||
/@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.11.4:
|
/@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2475,7 +2483,7 @@ packages:
|
||||||
integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
|
integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
|
||||||
/@babel/plugin-syntax-json-strings/7.8.3:
|
/@babel/plugin-syntax-json-strings/7.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2484,7 +2492,7 @@ packages:
|
||||||
/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.11.4:
|
/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2545,7 +2553,7 @@ packages:
|
||||||
integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==
|
integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==
|
||||||
/@babel/plugin-syntax-logical-assignment-operators/7.10.4:
|
/@babel/plugin-syntax-logical-assignment-operators/7.10.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2554,7 +2562,7 @@ packages:
|
||||||
/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.11.4:
|
/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2580,7 +2588,7 @@ packages:
|
||||||
integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
|
integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
|
||||||
/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3:
|
/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2589,7 +2597,7 @@ packages:
|
||||||
/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.11.4:
|
/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2615,7 +2623,7 @@ packages:
|
||||||
integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
|
integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
|
||||||
/@babel/plugin-syntax-numeric-separator/7.10.4:
|
/@babel/plugin-syntax-numeric-separator/7.10.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2624,7 +2632,7 @@ packages:
|
||||||
/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.11.4:
|
/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2650,7 +2658,7 @@ packages:
|
||||||
integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
|
integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
|
||||||
/@babel/plugin-syntax-object-rest-spread/7.8.3:
|
/@babel/plugin-syntax-object-rest-spread/7.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2659,7 +2667,7 @@ packages:
|
||||||
/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.10.5:
|
/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.10.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.10.5
|
'@babel/core': 7.10.5
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2668,7 +2676,7 @@ packages:
|
||||||
/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.11.4:
|
/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2694,7 +2702,7 @@ packages:
|
||||||
integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
|
integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
|
||||||
/@babel/plugin-syntax-optional-catch-binding/7.8.3:
|
/@babel/plugin-syntax-optional-catch-binding/7.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2703,7 +2711,7 @@ packages:
|
||||||
/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.11.4:
|
/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2729,7 +2737,7 @@ packages:
|
||||||
integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
|
integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
|
||||||
/@babel/plugin-syntax-optional-chaining/7.8.3:
|
/@babel/plugin-syntax-optional-chaining/7.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -2738,7 +2746,7 @@ packages:
|
||||||
/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.11.4:
|
/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.11.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.11.4
|
'@babel/core': 7.11.4
|
||||||
'@babel/helper-plugin-utils': 7.10.4
|
'@babel/helper-plugin-utils': 7.12.13
|
||||||
dev: false
|
dev: false
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@babel/core': ^7.0.0-0
|
'@babel/core': ^7.0.0-0
|
||||||
|
@ -9137,7 +9145,6 @@ packages:
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
|
integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
|
||||||
/base64-js/1.5.1:
|
/base64-js/1.5.1:
|
||||||
dev: true
|
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||||
/base64id/2.0.0:
|
/base64id/2.0.0:
|
||||||
|
@ -9291,7 +9298,7 @@ packages:
|
||||||
integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
|
integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
|
||||||
/bl/4.0.3:
|
/bl/4.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer: 5.6.0
|
buffer: 5.7.1
|
||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
readable-stream: 3.6.0
|
readable-stream: 3.6.0
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -9620,7 +9627,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js: 1.5.1
|
base64-js: 1.5.1
|
||||||
ieee754: 1.2.1
|
ieee754: 1.2.1
|
||||||
dev: true
|
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
|
integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
|
||||||
/builtin-modules/3.1.0:
|
/builtin-modules/3.1.0:
|
||||||
|
@ -16373,7 +16379,6 @@ packages:
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
|
integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
|
||||||
/ieee754/1.2.1:
|
/ieee754/1.2.1:
|
||||||
dev: true
|
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||||
/iferr/0.1.5:
|
/iferr/0.1.5:
|
||||||
|
@ -17718,6 +17723,12 @@ packages:
|
||||||
node: '>= 10.14.2'
|
node: '>= 10.14.2'
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==
|
integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==
|
||||||
|
/jest-mock-process/1.4.0:
|
||||||
|
dev: true
|
||||||
|
peerDependencies:
|
||||||
|
jest: '>=23.4 <27'
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-3LM1TyEaRKRjh/x9rZPmuy28r7q8cgNkHYcrPWtxXT3ZzPPS+bKNs2ysb8BJPVB41X5yM1sMtatvE5z2XJ0S/w==
|
||||||
/jest-mock/26.6.2:
|
/jest-mock/26.6.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 26.6.2
|
'@jest/types': 26.6.2
|
||||||
|
@ -24397,7 +24408,7 @@ packages:
|
||||||
integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
|
integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
|
||||||
/slice-ansi/3.0.0:
|
/slice-ansi/3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles: 4.2.1
|
ansi-styles: 4.3.0
|
||||||
astral-regex: 2.0.0
|
astral-regex: 2.0.0
|
||||||
is-fullwidth-code-point: 3.0.0
|
is-fullwidth-code-point: 3.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -25485,7 +25496,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag: 4.0.0
|
has-flag: 4.0.0
|
||||||
supports-color: 7.2.0
|
supports-color: 7.2.0
|
||||||
dev: true
|
|
||||||
engines:
|
engines:
|
||||||
node: '>=8'
|
node: '>=8'
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -25698,7 +25708,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-escapes: 4.3.1
|
ansi-escapes: 4.3.1
|
||||||
supports-hyperlinks: 2.1.0
|
supports-hyperlinks: 2.1.0
|
||||||
dev: true
|
|
||||||
engines:
|
engines:
|
||||||
node: '>=8'
|
node: '>=8'
|
||||||
resolution:
|
resolution:
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"noImplicitAny": false,
|
"noImplicitAny": false,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
|
"jsx": "react",
|
||||||
"strictNullChecks": true,
|
"strictNullChecks": true,
|
||||||
"types": ["node", "jest", "express"],
|
"types": ["node", "jest", "express"],
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
|
|
Loading…
Add table
Reference in a new issue