0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-16 21:56:25 -05:00

feat!: drop node 8 and node 10 (#2142)

There is no breaking changes on features aside of Node version
This commit is contained in:
Juan Picado 2021-03-28 10:40:52 +02:00 committed by GitHub
parent 4f3afa33a2
commit 43f70437af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 42 additions and 98 deletions

View file

@ -9,7 +9,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node_version: [10, 12, 14, 15]
node_version: [12, 14, 15]
runs-on: ubuntu-latest

View file

@ -14,10 +14,10 @@ jobs:
steps:
- uses: actions/checkout@v2.3.3
- name: 'Use Node.js 10.x'
- name: 'Use Node.js 12.x'
uses: actions/setup-node@v2.1.5
with:
node-version: 10.x
node-version: 12.x
- name: Install Dependencies
run: yarn install
- name: 'Run verdaccio in the background'
@ -45,10 +45,10 @@ jobs:
steps:
- uses: actions/checkout@v2.3.3
- name: 'Use Node.js 10.x'
- name: 'Use Node.js 12.x'
uses: actions/setup-node@v2.1.5
with:
node-version: 10.x
node-version: 12.x
- name: Install Dependencies
run: yarn install
- name: 'Run verdaccio in the background'
@ -79,10 +79,10 @@ jobs:
steps:
- uses: actions/checkout@v2.3.3
- name: 'Use Node.js 10.x'
- name: 'Use Node.js 12.x'
uses: actions/setup-node@v2.1.5
with:
node-version: 10.x
node-version: 12.x
- name: 'install latest npm'
run: npm i -g npm@latest-6
- name: Install Dependencies
@ -112,10 +112,10 @@ jobs:
steps:
- uses: actions/checkout@v2.3.3
- name: 'Use Node.js 10.x'
- name: 'Use Node.js 12.x'
uses: actions/setup-node@v2.1.5
with:
node-version: 10.x
node-version: 12.x
- name: 'install latest npm'
run: npm i -g npm
- name: Install Dependencies
@ -146,10 +146,10 @@ jobs:
steps:
- uses: actions/checkout@v2.3.3
- name: 'Use Node.js 10.x'
- name: 'Use Node.js 12.x'
uses: actions/setup-node@v2.1.5
with:
node-version: 10.x
node-version: 12.x
- name: 'install latest pnpm'
run: npm i -g pnpm
- name: Install Dependencies

View file

@ -4,7 +4,7 @@ module.exports = {
'@babel/env',
{
targets: {
node: '8'
node: '12',
},
},
],

View file

@ -36,7 +36,7 @@
"express": "4.17.1",
"handlebars": "4.7.7",
"http-errors": "1.8.0",
"js-yaml": "3.14.1",
"js-yaml": "4.0.0",
"jsonwebtoken": "8.5.1",
"kleur": "4.1.4",
"lodash": "4.17.21",
@ -44,7 +44,7 @@
"marked": "2.0.1",
"mime": "2.5.2",
"minimatch": "3.0.4",
"mkdirp": "0.5.5",
"mkdirp": "1.0.4",
"mv": "2.1.1",
"pkginfo": "0.4.1",
"request": "2.88.0",
@ -74,8 +74,8 @@
"@babel/preset-typescript": "7.13.0",
"@babel/register": "7.13.8",
"@babel/runtime": "7.13.9",
"@commitlint/cli": "8.3.5",
"@commitlint/config-conventional": "8.3.4",
"@commitlint/cli": "12.0.1",
"@commitlint/config-conventional": "12.0.1",
"@octokit/rest": "16.43.2",
"@types/async": "3.2.4",
"@types/bunyan": "1.8.6",
@ -113,7 +113,7 @@
"eslint-plugin-simple-import-sort": "7.0.0",
"eslint-plugin-verdaccio": "9.6.1",
"fs-extra": "9.1.0",
"get-stdin": "7.0.0",
"get-stdin": "8.0.0",
"husky": "2.7.0",
"in-publish": "2.0.1",
"jest": "25.5.4",

View file

@ -13,21 +13,13 @@ import { parseConfigFile } from './utils';
require('pkginfo')(module);
if (process.getuid && process.getuid() === 0) {
global.console.warn(
bgYellow().red(
"*** WARNING: Verdaccio doesn't need superuser privileges. Don't run it under root! ***"
)
);
global.console.warn(bgYellow().red("*** WARNING: Verdaccio doesn't need superuser privileges. Don't run it under root! ***"));
}
const MIN_NODE_VERSION = '6.9.0';
const MIN_NODE_VERSION = '12.0.0';
if (semver.satisfies(process.version, `>=${MIN_NODE_VERSION}`) === false) {
global.console.error(
bgRed(
`Verdaccio requires at least Node.js ${MIN_NODE_VERSION} or higher, please upgrade your Node.js distribution`
)
);
global.console.error(bgRed(`Verdaccio requires at least Node.js ${MIN_NODE_VERSION} or higher, please upgrade your Node.js distribution`));
process.exit(1);
}
@ -68,19 +60,9 @@ function init() {
logger.logger.warn({ file: configPathLocation }, 'config file - @{file}');
startVerdaccio(
verdaccioConfiguration,
cliListener,
configPathLocation,
pkgVersion,
pkgName,
listenDefaultCallback
);
startVerdaccio(verdaccioConfiguration, cliListener, configPathLocation, pkgVersion, pkgName, listenDefaultCallback);
} catch (err) {
logger.logger.fatal(
{ file: configPathLocation, err: err },
'cannot open config file @{file}: @{!err.message}'
);
logger.logger.fatal({ file: configPathLocation, err: err }, 'cannot open config file @{file}: @{!err.message}');
process.exit(1);
}
}
@ -94,7 +76,7 @@ if (commander.info) {
Binaries: ['Node', 'Yarn', 'npm'],
Virtualization: ['Docker'],
Browsers: ['Chrome', 'Edge', 'Firefox', 'Safari'],
npmGlobalPackages: ['verdaccio']
npmGlobalPackages: ['verdaccio'],
});
// eslint-disable-next-line no-console
console.log(data);
@ -113,7 +95,7 @@ if (commander.info) {
process.on('uncaughtException', function (err) {
logger.logger.fatal(
{
err: err
err: err,
},
'uncaught exception, please report this\n@{err.stack}'
);

View file

@ -12,29 +12,10 @@ import sanitizyReadme from '@verdaccio/readme';
import { Package, Version, Author } from '@verdaccio/types';
import { Request } from 'express';
import {
getConflict,
getBadData,
getBadRequest,
getInternalError,
getUnauthorized,
getForbidden,
getServiceUnavailable,
getNotFound,
getCode
} from '@verdaccio/commons-api';
import { getConflict, getBadData, getBadRequest, getInternalError, getUnauthorized, getForbidden, getServiceUnavailable, getNotFound, getCode } from '@verdaccio/commons-api';
import { generateGravatarUrl, GENERIC_AVATAR } from '../utils/user';
import { StringValue, AuthorAvatar } from '../../types';
import {
APP_ERROR,
DEFAULT_PORT,
DEFAULT_DOMAIN,
DEFAULT_PROTOCOL,
CHARACTER_ENCODING,
HEADERS,
DIST_TAGS,
DEFAULT_USER
} from './constants';
import { APP_ERROR, DEFAULT_PORT, DEFAULT_DOMAIN, DEFAULT_PROTOCOL, CHARACTER_ENCODING, HEADERS, DIST_TAGS, DEFAULT_USER } from './constants';
import { normalizeContributors } from './storage-utils';
@ -139,11 +120,7 @@ export function validateMetadata(object: Package, name: string): Package {
* Create base url for registry.
* @return {String} base registry url
*/
export function combineBaseUrl(
protocol: string,
host: string | void,
prefix?: string | void
): string {
export function combineBaseUrl(protocol: string, host: string | void, prefix?: string | void): string {
const result = `${protocol}://${host}`;
const prefixOnlySlash = prefix === '/';
@ -174,11 +151,7 @@ export function extractTarballFromUrl(url: string): string {
* @param {*} config
* @return {String} a filtered package
*/
export function convertDistRemoteToLocalTarballUrls(
pkg: Package,
req: Request,
urlPrefix: string | void
): Package {
export function convertDistRemoteToLocalTarballUrls(pkg: Package, req: Request, urlPrefix: string | void): Package {
for (const ver in pkg.versions) {
if (Object.prototype.hasOwnProperty.call(pkg.versions, ver)) {
const distName = pkg.versions[ver].dist;
@ -196,12 +169,7 @@ export function convertDistRemoteToLocalTarballUrls(
* @param {*} uri
* @return {String} a parsed url
*/
export function getLocalRegistryTarballUri(
uri: string,
pkgName: string,
req: Request,
urlPrefix: string | void
): string {
export function getLocalRegistryTarballUri(uri: string, pkgName: string, req: Request, urlPrefix: string | void): string {
const currentHost = req.headers.host;
if (!currentHost) {
@ -279,7 +247,7 @@ export function parseAddress(urlAddress: any): any {
return {
proto: urlPattern[2] || DEFAULT_PROTOCOL,
host: urlPattern[6] || urlPattern[7] || DEFAULT_DOMAIN,
port: urlPattern[8] || DEFAULT_PORT
port: urlPattern[8] || DEFAULT_PORT,
};
}
@ -288,7 +256,7 @@ export function parseAddress(urlAddress: any): any {
if (urlPattern) {
return {
proto: urlPattern[2] || DEFAULT_PROTOCOL,
path: urlPattern[4]
path: urlPattern[4],
};
}
@ -362,7 +330,7 @@ const parseIntervalTable = {
d: 86400000,
w: 7 * 86400000,
M: 30 * 86400000,
y: 365 * 86400000
y: 365 * 86400000,
};
/**
@ -381,11 +349,7 @@ export function parseInterval(interval: any): number {
return;
}
const m = x.match(/^((0|[1-9][0-9]*)(\.[0-9]+)?)(ms|s|m|h|d|w|M|y|)$/);
if (
!m ||
parseIntervalTable[m[4]] >= last_suffix ||
(m[4] === '' && last_suffix !== Infinity)
) {
if (!m || parseIntervalTable[m[4]] >= last_suffix || (m[4] === '' && last_suffix !== Infinity)) {
throw Error('invalid interval: ' + interval);
}
last_suffix = parseIntervalTable[m[4]];
@ -419,13 +383,13 @@ export const ErrorCode = {
getForbidden,
getServiceUnavailable,
getNotFound,
getCode
getCode,
};
export function parseConfigFile(configPath: string): any {
try {
if (/\.ya?ml$/i.test(configPath)) {
return YAML.safeLoad(fs.readFileSync(configPath, CHARACTER_ENCODING.UTF8));
return YAML.load(fs.readFileSync(configPath, CHARACTER_ENCODING.UTF8));
}
return require(configPath);
} catch (e) {
@ -488,9 +452,7 @@ export function deleteProperties(propertiesToDelete: string[], objectItem: any):
export function addGravatarSupport(pkgInfo: Package, online = true): AuthorAvatar {
const pkgInfoCopy = { ...pkgInfo } as any;
const author: any = _.get(pkgInfo, 'latest.author', null) as any;
const contributors: AuthorAvatar[] = normalizeContributors(
_.get(pkgInfo, 'latest.contributors', [])
);
const contributors: AuthorAvatar[] = normalizeContributors(_.get(pkgInfo, 'latest.contributors', []));
const maintainers = _.get(pkgInfo, 'latest.maintainers', []);
// for author.
@ -503,7 +465,7 @@ export function addGravatarSupport(pkgInfo: Package, online = true): AuthorAvata
pkgInfoCopy.latest.author = {
avatar: GENERIC_AVATAR,
email: '',
author
author,
};
}
@ -517,7 +479,7 @@ export function addGravatarSupport(pkgInfo: Package, online = true): AuthorAvata
contributor = {
avatar: GENERIC_AVATAR,
email: contributor,
name: contributor
name: contributor,
};
}
@ -580,7 +542,7 @@ export function formatAuthor(author: AuthorFormat): any {
let authorDetails = {
name: DEFAULT_USER,
email: '',
url: ''
url: '',
};
if (_.isNil(author)) {
@ -590,14 +552,14 @@ export function formatAuthor(author: AuthorFormat): any {
if (_.isString(author)) {
authorDetails = {
...authorDetails,
name: author as string
name: author as string,
};
}
if (_.isObject(author)) {
authorDetails = {
...authorDetails,
...(author as Author)
...(author as Author),
};
}

View file

@ -17,4 +17,4 @@ packages:
unpublish: xxx
proxy: npmjs
logs:
- { type: stdout, format: pretty, level: warn }
- { type: stdout, format: pretty, level: trace }

BIN
yarn.lock

Binary file not shown.