1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-11-08 23:25:51 +01:00

chore: remove benchmark

moved to another repository
This commit is contained in:
Juan Picado 2022-11-26 15:13:00 +01:00
parent d803c829ee
commit fedd372a90
16 changed files with 1 additions and 567 deletions

@ -35,7 +35,6 @@
"@verdaccio/url": "11.0.0-alpha.3",
"@verdaccio/server-fastify": "6.0.0-6-next.9",
"@verdaccio/eslint-config": "1.0.0",
"@verdaccio/benchmark": "1.0.0",
"@verdaccio/core": "6.0.0-next.0",
"@verdaccio/test-helper": "1.0.0",
"docusaurus-plugin-contributors": "1.0.0",

@ -1,174 +0,0 @@
---
name: ci - benchmark
on:
workflow_dispatch:
schedule:
# 1 time peer week
# collecting enough data to draw some graphics
- cron: '0 1 * * 1'
# push:
# branches:
# - master
permissions:
contents: read
jobs:
prepare:
name: Prepare build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # tag=v3
with:
node-version: 16.x
- name: install pnpm
run: sudo npm i pnpm@latest-6 -g
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: setup pnpm config registry
run: pnpm config set registry https://registry.verdaccio.org
- name: install dependencies
run: pnpm install
- name: Cache .pnpm-store
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
pnpm-
- name: build
run: pnpm build
- name: tar packages
run: |
tar -czvf ${{ github.workspace }}/pkg.tar.gz -C ${{ github.workspace }}/packages .
- uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # tag=v3
with:
name: verdaccio-artifact
path: pkg.tar.gz
benchmark-autocannon:
needs: prepare
strategy:
fail-fast: false
matrix:
benchmark:
- info
- tarball
verdaccioVersion:
# - local
- 3.13.1
- 4.12.2
- 5.10.2
- 6.0.0-6-next.40
name: Benchmark autocannon
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # tag=v3
with:
node-version: 16.x
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # tag=v3
with:
name: verdaccio-artifact
- name: untar packages
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
- name: install pnpm
# require fixed version
run: sudo npm i pnpm@latest-6 -g
- uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: install dependencies
run: pnpm install
- name: start registry
run: ./scripts/benchmark-prepare.sh ${{matrix.verdaccioVersion}}
- name: benchmark
run: pnpm benchmark:api -- -v ${{matrix.verdaccioVersion}} -f ${{matrix.benchmark}}
shell: bash
env:
DEBUG: metrics*
- uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # tag=v3
with:
name: verdaccio-metrics-api
path: ./api-results-${{matrix.verdaccioVersion}}-${{matrix.benchmark}}.json
if-no-files-found: error
retention-days: 10
- name: submit metrics
run: pnpm benchmark:submit
env:
DEBUG: metrics
METRICS_SOURCE: autocannon
METRICS_URL: ${{ secrets.METRICS_URL }}
METRICS_TOKEN: ${{ secrets.METRICS_TOKEN }}
METRICS_BENCHMARK: ${{matrix.benchmark}}
METRICS_VERSION: ${{matrix.verdaccioVersion}}
METRICS_COMMIT_HASH: ${{ github.sha }}
METRICS_FILE_NAME: 'api-results'
benchmark:
needs: prepare
strategy:
fail-fast: false
matrix:
benchmark:
- info
- tarball
verdaccioVersion:
# future 6.x (wip)
# - local (master branch)
# old versions to compare same test along previous releases
- 3.13.1
- 4.12.2
- 5.10.2
- 6.0.0-6-next.40
name: Benchmark hyperfine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # tag=v3
with:
node-version: 16.x
- uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # tag=v3
with:
name: verdaccio-artifact
- name: untar packages
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
- name: install pnpm
# require fixed version
run: sudo npm i pnpm@latest-6 -g
- uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: install dependencies
run: pnpm install
- name: install hyperfine
run: |
wget https://github.com/sharkdp/hyperfine/releases/download/v1.11.0/hyperfine_1.11.0_amd64.deb
sudo dpkg -i hyperfine_1.11.0_amd64.deb
- name: start registry
run: ./scripts/benchmark-prepare.sh ${{matrix.verdaccioVersion}}
- name: benchmark
run: ./scripts/benchmark-run.sh ${{matrix.benchmark}}
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
shell: bash
- name: rename
run: mv ./hyper-results.json ./hyper-results-${{matrix.verdaccioVersion}}-${{matrix.benchmark}}.json
- uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # tag=v3
with:
name: verdaccio-metrics
path: ./hyper-results-${{matrix.verdaccioVersion}}-${{matrix.benchmark}}.json
if-no-files-found: error
retention-days: 10
- name: submit metrics
run: pnpm benchmark:submit
env:
DEBUG: metrics
METRICS_SOURCE: hyperfine
METRICS_URL: ${{ secrets.METRICS_URL }}
METRICS_TOKEN: ${{ secrets.METRICS_TOKEN }}
METRICS_BENCHMARK: ${{matrix.benchmark}}
METRICS_VERSION: ${{matrix.verdaccioVersion}}
METRICS_COMMIT_HASH: ${{ github.sha }}

@ -45,7 +45,6 @@
"@crowdin/cli": "3.9.1",
"@trivago/prettier-plugin-sort-imports": "3.4.0",
"@types/async": "3.2.15",
"@types/autocannon": "4.1.1",
"@types/express": "4.17.14",
"@types/http-errors": "1.8.2",
"@types/jest": "27.5.2",
@ -68,12 +67,10 @@
"@types/react-virtualized": "9.21.21",
"@typescript-eslint/eslint-plugin": "5.41.0",
"@typescript-eslint/parser": "5.41.0",
"@verdaccio/benchmark": "workspace:*",
"@verdaccio/crowdin-translations": "workspace:*",
"@verdaccio/eslint-config": "workspace:*",
"@verdaccio/types": "workspace:*",
"@verdaccio/ui-theme": "workspace:*",
"autocannon": "7.10.0",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.1.0",
"babel-jest": "29.3.1",
@ -97,7 +94,6 @@
"kleur": "3.0.3",
"lint-staged": "11.2.6",
"nock": "13.2.9",
"node-fetch": "cjs",
"nodemon": "2.0.20",
"npm-run-all": "4.1.5",
"prettier": "2.7.1",
@ -125,9 +121,6 @@
"test:e2e:cli": "pnpm test --filter ...@verdaccio/e2e-cli-* -- --coverage=false",
"test:e2e:ui": "pnpm test --filter ...@verdaccio/e2e-ui",
"start": "concurrently --kill-others \"pnpm _start:server\" \"pnpm _start:web\"",
"benchmark:hyper": "verdaccio-benchmark hyper -r ./hyper-results.json",
"benchmark:api": "verdaccio-benchmark api",
"benchmark:submit": "pnpm ts-node ./scripts/submit-metrics.ts",
"contributors": "ts-node ./scripts/contributors-update.ts",
"start:watch": "concurrently --kill-others \"pnpm _build:watch\" \"pnpm _start:server\" \"pnpm _debug:reload\"",
"_build:watch": "pnpm run --parallel watch --filter ./packages",

@ -1,3 +0,0 @@
{
"extends": "../../../.babelrc"
}

@ -1 +0,0 @@
require('./build/index.js');

@ -1,28 +0,0 @@
{
"name": "@verdaccio/benchmark",
"version": "1.0.0",
"bin": {
"verdaccio-benchmark": "./index.js"
},
"private": "true",
"description": "benchmark",
"main": "./build/index.js",
"scripts": {
"build": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",
"run": "ts-node src/init.ts"
},
"keywords": [],
"author": "Juan Picado <juanpicado19@gmail.com>",
"license": "MIT",
"dependencies": {
"clipanion": "3.1.0",
"temp-dir": "2.0.0",
"get-port": "5.1.1",
"semver": "7.3.8"
},
"devDependencies": {
"autocannon": "7.10.0",
"node-fetch": "cjs",
"ts-node": "10.9.1"
}
}

@ -1,27 +0,0 @@
/* eslint-disable no-console */
import { Command, Option } from 'clipanion';
import runApi from './run';
export class ApiCommand extends Command {
public static paths = [['api']];
private benchmark = Option.String('-f', {
description: 'benchmark to run',
required: true,
});
private version = Option.String('-v', {
description: 'version is running',
required: true,
});
public async execute() {
try {
await runApi(this.benchmark, this.version);
} catch (err: any) {
console.error(err);
process.exit(1);
}
}
}

@ -1,40 +0,0 @@
import { writeFileSync } from 'fs';
const path = require('path');
const debug = require('debug')('metrics:autocannon');
const autocannon = require('autocannon');
function getURL(benchmark) {
switch (benchmark) {
case 'info':
return 'http://localhost:4873/jquery';
case 'tarball':
return 'http://localhost:4873/jquery/-/jquery-3.6.0.tgz';
default:
throw new TypeError('no benckmark supported');
}
}
export default async function run(benchmark, version) {
try {
debug('api report start');
debug('url', getURL(benchmark));
const result = await autocannon({
url: getURL(benchmark),
connections: 10,
pipelining: 1,
duration: 10,
});
const wrapResults = {
results: [result],
};
const reportPath = path.join(process.cwd(), `./api-results-${version}-${benchmark}.json`);
debug('report path %o', reportPath);
writeFileSync(reportPath, JSON.stringify(wrapResults, null, 2), 'utf-8');
debug('report ends');
} catch (err: any) {
// eslint-disable-next-line no-console
console.error(`error on process autocannon run`, err);
process.exit(1);
}
}

@ -1,23 +0,0 @@
import { Cli } from 'clipanion';
import { ApiCommand } from './api';
const [node, app, ...args] = process.argv;
const cli = new Cli({
binaryLabel: `benckmark`,
binaryName: `${node} ${app}`,
binaryVersion: require('../package.json').version,
});
cli.register(ApiCommand);
cli.runExit(args, Cli.defaultContext);
process.on('uncaughtException', function (err) {
// eslint-disable-next-line no-console
console.error(
// eslint-disable-next-line max-len
`uncaught exception, please report (https://github.com/verdaccio/verdaccio/issues) this: \n${err.stack}`
);
process.exit(1);
});

@ -1,9 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./build"
},
"include": ["src/**/*"],
"exclude": ["src/**/*.test.ts"]
}

@ -1,9 +0,0 @@
{
"extends": "../../tsconfig.reference.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./build"
},
"include": ["src/**/*"],
"exclude": ["src/**/*.test.ts"]
}

162
pnpm-lock.yaml generated

@ -38,7 +38,6 @@ importers:
'@dianmora/contributors': 5.0.0
'@trivago/prettier-plugin-sort-imports': 3.4.0
'@types/async': 3.2.15
'@types/autocannon': 4.1.1
'@types/express': 4.17.14
'@types/http-errors': 1.8.2
'@types/jest': 27.5.2
@ -61,12 +60,10 @@ importers:
'@types/webpack-env': 1.18.0
'@typescript-eslint/eslint-plugin': 5.41.0
'@typescript-eslint/parser': 5.41.0
'@verdaccio/benchmark': workspace:*
'@verdaccio/crowdin-translations': workspace:*
'@verdaccio/eslint-config': workspace:*
'@verdaccio/types': workspace:*
'@verdaccio/ui-theme': workspace:*
autocannon: 7.10.0
babel-core: 7.0.0-bridge.0
babel-eslint: 10.1.0
babel-jest: 29.3.1
@ -90,7 +87,6 @@ importers:
kleur: 3.0.3
lint-staged: 11.2.6
nock: 13.2.9
node-fetch: cjs
nodemon: 2.0.20
npm-run-all: 4.1.5
prettier: 2.7.1
@ -135,7 +131,6 @@ importers:
'@dianmora/contributors': 5.0.0
'@trivago/prettier-plugin-sort-imports': 3.4.0_prettier@2.7.1
'@types/async': 3.2.15
'@types/autocannon': 4.1.1
'@types/express': 4.17.14
'@types/http-errors': 1.8.2
'@types/jest': 27.5.2
@ -158,12 +153,10 @@ importers:
'@types/webpack-env': 1.18.0
'@typescript-eslint/eslint-plugin': 5.41.0_9a6daa3181726e5ec9b358dee313487a
'@typescript-eslint/parser': 5.41.0_eslint@8.26.0+typescript@4.9.3
'@verdaccio/benchmark': link:packages/tools/benchmark
'@verdaccio/crowdin-translations': link:packages/tools/translations
'@verdaccio/eslint-config': link:packages/tools/eslint
'@verdaccio/types': link:packages/core/types
'@verdaccio/ui-theme': link:packages/plugins/ui-theme
autocannon: 7.10.0
babel-core: 7.0.0-bridge.0_@babel+core@7.20.2
babel-eslint: 10.1.0_eslint@8.26.0
babel-jest: 29.3.1_@babel+core@7.20.2
@ -187,7 +180,6 @@ importers:
kleur: 3.0.3
lint-staged: 11.2.6
nock: 13.2.9
node-fetch: 2.6.7
nodemon: 2.0.20
npm-run-all: 4.1.5
prettier: 2.7.1
@ -1132,25 +1124,6 @@ importers:
node-mocks-http: 1.12.1
undici: 4.16.0
packages/tools/benchmark:
specifiers:
autocannon: 7.10.0
clipanion: 3.1.0
get-port: 5.1.1
node-fetch: cjs
semver: 7.3.8
temp-dir: 2.0.0
ts-node: 10.9.1
dependencies:
clipanion: 3.1.0
get-port: 5.1.1
semver: 7.3.8
temp-dir: 2.0.0
devDependencies:
autocannon: 7.10.0
node-fetch: 2.6.7
ts-node: 10.9.1_2d5f4b194f2936366ced789e115d81de
packages/tools/docusaurus-plugin-contributors:
specifiers:
'@docusaurus/types': 2.2.0
@ -1573,10 +1546,6 @@ packages:
dependencies:
'@jridgewell/trace-mapping': 0.3.15
/@assemblyscript/loader/0.19.22:
resolution: {integrity: sha512-ksrMVpPOatD7ZzXCw+c/g3zId5rm8MMnQe7P32dH/qtDrgT9SbQjJYEngRP0YhRF0qrBCga2PtpID7arqphGyg==}
dev: true
/@babel/cli/7.19.3_@babel+core@7.20.2:
resolution: {integrity: sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg==}
engines: {node: '>=6.9.0'}
@ -9860,12 +9829,6 @@ packages:
resolution: {integrity: sha512-PAmPfzvFA31mRoqZyTVsgJMsvbynR429UTTxhmfsUCrWGh3/fxOrzqBtaTPJsn4UtzTv4Vb0+/O7CARWb69N4g==}
dev: true
/@types/autocannon/4.1.1:
resolution: {integrity: sha512-VMwPSP6i6SWrSbF2CrjXy/UTt9dU6oJMwDudUVjoAyUqK6YgK5llES84leqyM324Gr1nhuJhDpenvgYYdWF4gQ==}
dependencies:
'@types/node': 17.0.21
dev: true
/@types/babel__core/7.1.14:
resolution: {integrity: sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==}
dependencies:
@ -11282,35 +11245,6 @@ packages:
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
engines: {node: '>=8.0.0'}
/autocannon/7.10.0:
resolution: {integrity: sha512-PY1UrXL4NHE7J0hA6GGN2r8xjiAePS/bii3Hz7NOvp4JO3xDNBgRftDjfAxj1t6FDWXiXEOuKF/pdDiisIS8ZA==}
hasBin: true
dependencies:
chalk: 4.1.2
char-spinner: 1.0.1
cli-table3: 0.6.2
color-support: 1.1.3
cross-argv: 2.0.0
form-data: 4.0.0
has-async-hooks: 1.0.0
hdr-histogram-js: 3.0.0
hdr-histogram-percentiles-obj: 3.0.0
http-parser-js: 0.5.2
hyperid: 3.0.0
lodash.chunk: 4.2.0
lodash.clonedeep: 4.5.0
lodash.flatten: 4.4.0
manage-path: 2.0.0
on-net-listen: 1.1.2
pretty-bytes: 5.6.0
progress: 2.0.3
reinterval: 1.1.0
retimer: 3.0.0
semver: 7.3.8
subarg: 1.0.0
timestring: 6.0.0
dev: true
/autoprefixer/10.4.7_postcss@8.4.16:
resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==}
engines: {node: ^10 || ^12 || >=14}
@ -12205,10 +12139,6 @@ packages:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
/char-spinner/1.0.1:
resolution: {integrity: sha1-5upnvSR+EHESmDt6sEee02KAAIE=}
dev: true
/character-entities-legacy/1.1.4:
resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
@ -12488,11 +12418,6 @@ packages:
/color-name/1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
/color-support/1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
hasBin: true
dev: true
/colord/2.9.3:
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
@ -12812,10 +12737,6 @@ packages:
/create-require/1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
/cross-argv/2.0.0:
resolution: {integrity: sha512-YIaY9TR5Nxeb8SMdtrU8asWVM4jqJDNDYlKV21LxtYcfNJhp1kEsgSa6qXwXgzN0WQWGODps0+TlGp2xQSHwOg==}
dev: true
/cross-env/7.0.3:
resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
@ -16318,6 +16239,7 @@ packages:
/get-port/5.1.1:
resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
engines: {node: '>=8'}
dev: true
/get-stream/4.1.0:
resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
@ -16574,10 +16496,6 @@ packages:
ansi-regex: 2.1.1
dev: true
/has-async-hooks/1.0.0:
resolution: {integrity: sha512-YF0VPGjkxr7AyyQQNykX8zK4PvtEDsUJAPqwu06UFz1lb6EvI53sPh5H1kWxg8NXI5LsfRCZ8uX9NkYDZBb/mw==}
dev: true
/has-bigints/1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
@ -16705,19 +16623,6 @@ packages:
property-information: 5.6.0
space-separated-tokens: 1.1.5
/hdr-histogram-js/3.0.0:
resolution: {integrity: sha512-/EpvQI2/Z98mNFYEnlqJ8Ogful8OpArLG/6Tf2bPnkutBVLIeMVNHjk1ZDfshF2BUweipzbk+dB1hgSB7SIakw==}
engines: {node: '>=14'}
dependencies:
'@assemblyscript/loader': 0.19.22
base64-js: 1.5.1
pako: 1.0.11
dev: true
/hdr-histogram-percentiles-obj/3.0.0:
resolution: {integrity: sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==}
dev: true
/he/1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
@ -17065,13 +16970,6 @@ packages:
hasBin: true
dev: true
/hyperid/3.0.0:
resolution: {integrity: sha512-vwl5ARjv9KGKphUpKrNlCpH6oC3qnlCxz7WRG24h53MvkWGit2Iwbv/H8usILbMohBsaRgs8Ieumgy7+oafuyw==}
dependencies:
uuid: 8.3.2
uuid-parse: 1.1.0
dev: true
/hyphenate-style-name/1.0.4:
resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
@ -18801,24 +18699,12 @@ packages:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
dev: false
/lodash.chunk/4.2.0:
resolution: {integrity: sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=}
dev: true
/lodash.clonedeep/4.5.0:
resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=}
dev: true
/lodash.curry/4.1.1:
resolution: {integrity: sha1-JI42By7ekGUB11lmIAqG2riyMXA=}
/lodash.debounce/4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
/lodash.flatten/4.4.0:
resolution: {integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=}
dev: true
/lodash.flow/3.5.0:
resolution: {integrity: sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=}
@ -18977,10 +18863,6 @@ packages:
dependencies:
tmpl: 1.0.5
/manage-path/2.0.0:
resolution: {integrity: sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc=}
dev: true
/map-cache/0.2.2:
resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=}
engines: {node: '>=0.10.0'}
@ -20624,11 +20506,6 @@ packages:
resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
engines: {node: '>= 0.8'}
/on-net-listen/1.1.2:
resolution: {integrity: sha512-y1HRYy8s/RlcBvDUwKXSmkODMdx4KSuIvloCnQYJ2LdBBC1asY4HtfhXwe3UWknLakATZDnbzht2Ijw3M1EqFg==}
engines: {node: '>=9.4.0 || ^8.9.4'}
dev: true
/once/1.4.0:
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
dependencies:
@ -20837,10 +20714,6 @@ packages:
registry-url: 5.1.0
semver: 6.3.0
/pako/1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
dev: true
/param-case/3.0.4:
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
dependencies:
@ -22283,11 +22156,6 @@ packages:
engines: {node: '>= 0.6.0'}
dev: true
/progress/2.0.3:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
dev: true
/promise/7.3.1:
resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
dependencies:
@ -23275,10 +23143,6 @@ packages:
dependencies:
jsesc: 0.5.0
/reinterval/1.1.0:
resolution: {integrity: sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=}
dev: true
/relateurl/0.2.7:
resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=}
engines: {node: '>= 0.10'}
@ -23482,10 +23346,6 @@ packages:
resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==}
engines: {node: '>=4'}
/retimer/3.0.0:
resolution: {integrity: sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==}
dev: true
/retry/0.12.0:
resolution: {integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=}
engines: {node: '>= 4'}
@ -24679,12 +24539,6 @@ packages:
/stylis/4.1.3:
resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==}
/subarg/1.0.0:
resolution: {integrity: sha1-9izxdYHplrSPyWVpn1TAauJouNI=}
dependencies:
minimist: 1.2.6
dev: true
/superagent/8.0.3:
resolution: {integrity: sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==}
engines: {node: '>=6.4.0 <13 || >=14'}
@ -24835,11 +24689,6 @@ packages:
yallist: 3.1.1
dev: true
/temp-dir/2.0.0:
resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
engines: {node: '>=8'}
dev: false
/term-size/2.2.1:
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
engines: {node: '>=8'}
@ -25023,11 +24872,6 @@ packages:
/thunky/1.1.0:
resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
/timestring/6.0.0:
resolution: {integrity: sha512-wMctrWD2HZZLuIlchlkE2dfXJh7J2KDI9Dwl+2abPYg0mswQHfOAyQW3jJg1pY5VfttSINZuKcXoB3FGypVklA==}
engines: {node: '>=8'}
dev: true
/tiny-invariant/1.1.0:
resolution: {integrity: sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==}
@ -25885,10 +25729,6 @@ packages:
resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=}
engines: {node: '>= 0.4.0'}
/uuid-parse/1.1.0:
resolution: {integrity: sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==}
dev: true
/uuid/3.4.0:
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.

@ -118,7 +118,6 @@
"react*",
"ts-node",
"mini-css*",
"autocannon",
"process-warning",
"fastify",
"core-js",

@ -1,14 +0,0 @@
#!/usr/bin/env bash
set -e
VERSION=$1
tmp_registry_log=`mktemp`
npm i -g verdaccio@$VERSION
# start in the background the registry
nohup verdaccio &>$tmp_registry_log &
# wait until has started (using stdout)
grep -q 'http address' <(tail -f $tmp_registry_log)
npm set registry http://localhost:4873

@ -1,20 +0,0 @@
#!/usr/bin/env bash
set -e
FIXTURE=$1
case $FIXTURE in
info)
FIXTURE='npm info jquery'
;;
tarball)
FIXTURE='npm install jquery'
;;
*)
echo "no command found"
return 1;;
esac
hyperfine --ignore-failure --warmup 1 --min-runs=10 --show-output --export-json './hyper-results.json' "$FIXTURE"

@ -1,49 +0,0 @@
/**
* CI - Script used on automation GitHub Actions to
* submit metrics to a third party database.
*/
const url = process.env.METRICS_URL;
const token = process.env.METRICS_TOKEN;
const version = process.env.METRICS_VERSION;
const benchmark = process.env.METRICS_BENCHMARK;
const source = process.env.METRICS_SOURCE;
const commit = process.env.METRICS_COMMIT_HASH;
const file = process.env.METRICS_FILE_NAME ?? 'hyper-results';
if (!url || !token || !version || !benchmark || !commit || !file) {
throw new TypeError('required missing params, check parameters are available');
}
const fs = require('fs');
const path = require('path');
const debug = require('debug')('metrics');
const nodeFetch = require('node-fetch');
const fileMetrics = `${file}-${version}-${benchmark}.json`;
// file should be avilable on the root of the project
const filePath = path.join(__dirname, '../', fileMetrics);
debug('file path %o', filePath);
try {
const fileContent = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
debug('body %o', fileContent.results[0]);
nodeFetch(url, {
method: 'POST',
body: JSON.stringify(fileContent.results[0]),
headers: {
Authorization: `Bearer ${token}`,
'content-type': 'application/json',
'x-metrics-version': version,
'x-metrics-source': source,
'x-metrics-benchmark': benchmark,
'x-metrics-commit-hash': commit,
},
})
.then((res: any) => res.text()) // expecting a json response
.then((json: any) => {
debug('response %o', json);
});
} catch (error) {
// eslint-disable-next-line no-console
console.error('error on process metrics', error);
process.exit(1);
}