Compare commits

..

24 Commits

Author SHA1 Message Date
github-actions[bot]
4fc14eab02 chore: update versions (6-next) (#3053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-03-12 22:48:42 +01:00
Juan Picado
a2b69a08e2 add banner support ukraine (#3060)
* add banner support ukraine

* fix test

* add blood link

* Update packages/plugins/ui-theme/src/App/Header/Support/Support.tsx

Co-authored-by: Daniel Ruf <827205+DanielRuf@users.noreply.github.com>

Co-authored-by: Daniel Ruf <827205+DanielRuf@users.noreply.github.com>
2022-03-12 22:42:05 +01:00
verdacciobot
6eea70a6dd chore: updated contributors list 2022-03-10 00:10:59 +00:00
Juan Picado
e533f1d500 chore: force banner keep open 2022-03-09 21:36:32 +01:00
Juan Picado
45cc559f47 chore: add donate button to redcrossredcrescent on home page 2022-03-09 21:16:03 +01:00
dependabot[bot]
ce81b3e96d chore(deps): bump actions/github-script from 3 to 6 (#2989)
Bumps [actions/github-script](https://github.com/actions/github-script) from 3 to 6.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v3...v6)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 21:09:11 +01:00
Xingwang Liao
31d661c7bd fix(loaders): always create plugin instance with new (#3052)
* class plugin transpile with babel contains a function '_classCallCheck',
* will throw an error when a class is invoked without 'new'
* see: https://babeljs.io/docs/en/babel-plugin-transform-classes#examples
2022-03-09 19:45:21 +01:00
Juan Picado
b69333778d chore: update redcross links to be more inclusive 2022-03-09 07:47:36 +01:00
github-actions[bot]
4dcc250fdb chore: update versions (6-next) (#3044)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-03-08 17:58:19 +01:00
verdacciobot
756a47aee0 chore: updated contributors list 2022-03-08 16:55:14 +00:00
Juan Picado
2c45bc6e82 chore: fix script 2022-03-08 17:51:34 +01:00
dependabot[bot]
31050ee369 chore(deps): bump actions/checkout from 2 to 3 (#3045)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-07 20:44:27 +01:00
Juan Picado
9652472780 Update README.md 2022-03-07 20:11:00 +01:00
Juan Picado
87f903d530 chore: update links 2022-03-07 19:54:58 +01:00
Juan Picado
8d625d25d2 add banner for Ukraine 2022-03-07 16:59:50 +01:00
Xingwang Liao
a179f1fd43 fix(ui-theme): show default logo in footer (#3031)
* fix(ui-theme): show default logo in footer

The link of the footer logo is verdaccio website, so the logo should be verdaccio's

* fixup! fix(ui-theme): show default logo in footer

* fixup! fixup! fix(ui-theme): show default logo in footer
2022-03-07 08:53:48 +01:00
Juan Picado
a049eaa38f chore: upgrade docusaurus 2.0.0-beta.17 (#3040) 2022-03-05 21:43:58 +01:00
Juan Picado
d2dd76260b chore: migrate to fully undici fetch (#3037)
* chore: migrate to fully undici fetch

* chore: update warnings

* remove debug

* restore dep

* chore:  update implementation

* fix lint

* update node

* update pnpm

* disable e2e cli

* disable cli
2022-03-05 18:44:10 +01:00
dependabot[bot]
f38c759cb2 chore(deps): bump pnpm/action-setup from 2.1.0 to 2.2.1 (#3022)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 2.1.0 to 2.2.1.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v2.1.0...v2.2.1)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2022-03-05 09:32:33 +01:00
Juan Picado
28c3aad443 chore: update e2e docs 2022-03-05 09:14:43 +01:00
Juan Picado
a020d4f580 chore: clean up warnings on ui tests (#3034)
* fix: remove duplicated call to fetch manifest

* fix: clean forward ref warnings

* clean button warnings

* clean box warnings

* SnackbarContent

* InputAdornment

* more migrations dialog, etc

* dialog cleanup

* clean up text component

* remove forward ref

* restore website components

* clean up

* IconButton

* format

* restore config
2022-03-05 00:12:37 +01:00
Juan Picado
160c25ddc5 Update benchmark.yml 2022-03-04 20:50:52 +01:00
Juan Picado
1debee3e9d chore: add new logger props 2022-03-04 19:52:10 +01:00
(H)eDoCode
76d78b0328 Node JS API Documentation : Working Implementation Code (#3032)
* Working node JS Code

Maybe add where do the `addrs` comes from ?
Added host and port display cause otherwise user doesn't know which default address and port are.

* Removing comments 

because I'm unsure about these / they are incorrect

Please complete it if you know how to make it work with a configFilePath as third parameter

* chore: fix website config

Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2022-03-04 19:22:02 +01:00
168 changed files with 5591 additions and 4016 deletions

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-theme': patch
---
add banner support ukraine

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-theme': patch
---
show verdaccio logo in the footer even when custom brand is set

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/loaders': patch
---
always create plugin instance with new

View File

@@ -50,8 +50,10 @@
"afraid-mice-obey",
"big-lobsters-sin",
"bright-poems-obey",
"brown-pandas-wink",
"calm-pants-impress",
"dry-planes-tap",
"dull-monkeys-search",
"eleven-brooms-hunt",
"eleven-spoons-matter",
"fair-lemons-beam",
@@ -73,6 +75,7 @@
"light-walls-begin",
"little-stingrays-rule",
"loud-shoes-jog",
"lovely-drinks-argue",
"many-vans-care",
"modern-spies-tell",
"neat-toes-report",

View File

@@ -15,7 +15,7 @@ jobs:
name: Prepare build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14.x
@@ -57,12 +57,12 @@ jobs:
# - local
- 3.13.1
- 4.12.2
- 5.5.2
- 6.0.0-6-next.31
- 5.7.0
- 6.0.0-6-next.35
name: Benchmark autocannon
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14.x
@@ -118,12 +118,12 @@ jobs:
# old versions to compare same test along previous releases
- 3.13.1
- 4.12.2
- 5.5.2
- 6.0.0-6-next.31
- 5.7.0
- 6.0.0-6-next.35
name: Benchmark hyperfine
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14.x

View File

@@ -20,7 +20,7 @@ jobs:
if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
steps:
- name: checkout code repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0

View File

@@ -24,7 +24,7 @@ jobs:
ports:
- 4873:4873
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Use Node 16
uses: actions/setup-node@v3
with:
@@ -49,7 +49,7 @@ jobs:
name: Lint
needs: prepare
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Use Node 16
uses: actions/setup-node@v3
with:
@@ -69,7 +69,7 @@ jobs:
name: Format
needs: prepare
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Use Node 16
uses: actions/setup-node@v3
with:
@@ -95,7 +95,7 @@ jobs:
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@v3
with:
@@ -117,12 +117,12 @@ jobs:
runs-on: ubuntu-latest
name: UI Test E2E Node 16
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Install pnpm
run: npm i pnpm@6.24.1 -g
run: npm i pnpm@latest -g
- uses: actions/cache@v2
with:
path: ~/.pnpm-store
@@ -136,38 +136,40 @@ jobs:
run: pnpm test:e2e:ui
# env:
# DEBUG: verdaccio:e2e*
ci-e2e-cli:
needs: [format, lint]
runs-on: ubuntu-latest
# TODO: fails on migrate to node 16, we need to check why
name: CLI Test E2E Node 14
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/setup-node@v3
with:
node-version: 14
- name: Install pnpm
run: npm i pnpm@6.24.1 -g
- uses: actions/cache@v2
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install
## we need scripts, pupetter downloads aditional content
run: pnpm recursive install --frozen-lockfile
- name: build
run: pnpm build
- name: Test CLI
run: pnpm test:e2e:cli
env:
DEBUG: verdaccio*
# FIXME verify why fails on Node 16 (locally works fine)
# ci-e2e-cli:
# needs: [format, lint]
# runs-on: ubuntu-latest
# # TODO: fails on migrate to node 16, we need to check why
# name: CLI Test E2E Node 16
# steps:
# - uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# with:
# node-version: 16
# - name: Install pnpm
# run: npm i pnpm@latest -g
# - uses: actions/cache@v2
# with:
# path: ~/.pnpm-store
# key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
# - name: Install
# ## we need scripts, pupetter downloads aditional content
# run: pnpm recursive install --frozen-lockfile
# - name: build
# run: pnpm build
# - name: Test CLI
# run: pnpm test:e2e:cli
# env:
# DEBUG: verdaccio*
sync-translations:
needs: [ci-e2e-cli, ci-e2e-ui]
# needs: [ci-e2e-cli, ci-e2e-ui]
needs: [ci-e2e-ui]
runs-on: ubuntu-latest
name: synchronize translations
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16

View File

@@ -14,7 +14,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.

View File

@@ -15,7 +15,7 @@ jobs:
name: Run script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
persist-credentials: false
fetch-depth: 0

View File

@@ -19,7 +19,7 @@ jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
with:

View File

@@ -24,7 +24,7 @@ jobs:
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Use Node 14
uses: actions/setup-node@v3
@@ -41,7 +41,7 @@ jobs:
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-
- uses: pnpm/action-setup@v2.1.0
- uses: pnpm/action-setup@v2.2.1
with:
version: 6.10.2
run_install: |
@@ -97,7 +97,7 @@ jobs:
- name: Audit preview URL with Lighthouse
id: lighthouse_audit
uses: treosh/lighthouse-ci-action@v9.3.0
uses: treosh/lighthouse-ci-action@9.3.0
with:
urls: |
${{ steps.netlify_preview.outputs.preview-url }}
@@ -106,7 +106,7 @@ jobs:
- name: Format lighthouse score
id: format_lighthouse_score
uses: actions/github-script@v3
uses: actions/github-script@v6
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |

View File

@@ -1,3 +1,7 @@
[![BannerUK](https://cdn.verdaccio.dev/readme/banner-uk.svg)](https://donate.redcrossredcrescent.org/ua/donate/~my-donation?_cv=1)
> Verdaccio stands for **peace**, stop the war, we will be yellow / blue 🇺🇦 until that happens.
![verdaccio logo](https://cdn.verdaccio.dev/readme/verdaccio@2x.png)
![verdaccio gif](https://cdn.verdaccio.dev/readme/readme-website.png)
@@ -26,6 +30,7 @@ Google Cloud Storage** or create your own plugin.
[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)
## Install

View File

@@ -114,7 +114,7 @@
"docker": "docker build -t verdaccio/verdaccio:local . --no-cache",
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"",
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"",
"lint": "eslint --max-warnings 44 \"**/*.{js,jsx,ts,tsx}\"",
"lint": "eslint --max-warnings 42 \"**/*.{js,jsx,ts,tsx}\"",
"test": "pnpm recursive test --filter ./packages",
"test:e2e:cli": "pnpm test --filter ...@verdaccio/e2e-cli",
"test:e2e:ui": "pnpm test --filter ...@verdaccio/e2e-ui",

View File

@@ -1,5 +1,14 @@
# @verdaccio/api
## 6.0.0-6-next.23
### Patch Changes
- @verdaccio/auth@6.0.0-6-next.20
- @verdaccio/store@6.0.0-6-next.20
- @verdaccio/hooks@6.0.0-6-next.12
- @verdaccio/middleware@6.0.0-6-next.20
## 6.0.0-6-next.22
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/api",
"version": "6.0.0-6-next.22",
"version": "6.0.0-6-next.23",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -39,13 +39,13 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/auth": "workspace:6.0.0-6-next.19",
"@verdaccio/auth": "workspace:6.0.0-6-next.20",
"@verdaccio/config": "workspace:6.0.0-6-next.12",
"@verdaccio/core": "workspace:6.0.0-6-next.4",
"@verdaccio/hooks": "workspace:6.0.0-6-next.12",
"@verdaccio/logger": "workspace:6.0.0-6-next.10",
"@verdaccio/middleware": "workspace:6.0.0-6-next.19",
"@verdaccio/store": "workspace:6.0.0-6-next.19",
"@verdaccio/middleware": "workspace:6.0.0-6-next.20",
"@verdaccio/store": "workspace:6.0.0-6-next.20",
"@verdaccio/utils": "workspace:6.0.0-6-next.10",
"abortcontroller-polyfill": "1.7.3",
"cookies": "0.8.0",
@@ -58,7 +58,7 @@
},
"devDependencies": {
"@types/node": "16.11.21",
"@verdaccio/server": "workspace:6.0.0-6-next.27",
"@verdaccio/server": "workspace:6.0.0-6-next.28",
"@verdaccio/types": "workspace:11.0.0-6-next.10",
"@verdaccio/helper": "1.0.0",
"supertest": "6.2.2"

View File

@@ -1,5 +1,12 @@
# @verdaccio/auth
## 6.0.0-6-next.20
### Patch Changes
- Updated dependencies [31d661c7]
- @verdaccio/loaders@6.0.0-6-next.11
## 6.0.0-6-next.19
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/auth",
"version": "6.0.0-6-next.19",
"version": "6.0.0-6-next.20",
"description": "logger",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -41,7 +41,7 @@
"dependencies": {
"@verdaccio/core": "workspace:6.0.0-6-next.4",
"@verdaccio/config": "workspace:6.0.0-6-next.12",
"@verdaccio/loaders": "workspace:6.0.0-6-next.10",
"@verdaccio/loaders": "workspace:6.0.0-6-next.11",
"@verdaccio/logger": "workspace:6.0.0-6-next.10",
"@verdaccio/utils": "workspace:6.0.0-6-next.10",
"debug": "4.3.3",

View File

@@ -1,5 +1,12 @@
# @verdaccio/cli
## 6.0.0-6-next.30
### Patch Changes
- @verdaccio/fastify-migration@6.0.0-6-next.21
- @verdaccio/node-api@6.0.0-6-next.29
## 6.0.0-6-next.29
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/cli",
"version": "6.0.0-6-next.29",
"version": "6.0.0-6-next.30",
"author": {
"name": "Juan Picado",
"email": "juanpicado19@gmail.com"
@@ -47,8 +47,8 @@
"@verdaccio/core": "workspace:6.0.0-6-next.4",
"@verdaccio/config": "workspace:6.0.0-6-next.12",
"@verdaccio/logger": "workspace:6.0.0-6-next.10",
"@verdaccio/node-api": "workspace:6.0.0-6-next.28",
"@verdaccio/fastify-migration": "workspace:6.0.0-6-next.20",
"@verdaccio/node-api": "workspace:6.0.0-6-next.29",
"@verdaccio/fastify-migration": "workspace:6.0.0-6-next.21",
"clipanion": "3.1.0",
"envinfo": "7.8.1",
"kleur": "3.0.3",

View File

@@ -1,5 +1,12 @@
# @verdaccio/fastify-migration
## 6.0.0-6-next.21
### Patch Changes
- @verdaccio/auth@6.0.0-6-next.20
- @verdaccio/store@6.0.0-6-next.20
## 6.0.0-6-next.20
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/fastify-migration",
"version": "6.0.0-6-next.20",
"version": "6.0.0-6-next.21",
"description": "Fastify server migration package",
"keywords": [
"private",
@@ -36,9 +36,9 @@
"dependencies": {
"@verdaccio/core": "workspace:6.0.0-6-next.4",
"@verdaccio/config": "workspace:6.0.0-6-next.12",
"@verdaccio/auth": "workspace:6.0.0-6-next.19",
"@verdaccio/auth": "workspace:6.0.0-6-next.20",
"@verdaccio/logger": "workspace:6.0.0-6-next.10",
"@verdaccio/store": "workspace:6.0.0-6-next.19",
"@verdaccio/store": "workspace:6.0.0-6-next.20",
"@verdaccio/tarball": "workspace:11.0.0-6-next.11",
"@verdaccio/utils": "workspace:6.0.0-6-next.10",
"@verdaccio/readme": "workspace:11.0.0-6-next.4",

View File

@@ -35,12 +35,11 @@
"core-js": "3.20.3",
"debug": "4.3.3",
"handlebars": "4.7.7",
"undici": "4.12.2",
"undici-fetch": "1.0.0-rc.4"
"undici": "4.15.0"
},
"devDependencies": {
"@types/node": "16.11.21",
"@verdaccio/auth": "workspace:6.0.0-6-next.19",
"@verdaccio/auth": "workspace:6.0.0-6-next.20",
"@verdaccio/config": "workspace:6.0.0-6-next.12",
"@verdaccio/types": "workspace:11.0.0-6-next.10"
},

View File

@@ -1,10 +1,10 @@
import buildDebug from 'debug';
import { fetch } from 'undici';
import { HTTP_STATUS } from '@verdaccio/core';
import { logger } from '@verdaccio/logger';
const debug = buildDebug('verdaccio:hooks:request');
const fetch = require('undici-fetch');
export type FetchOptions = {
body: string;

View File

@@ -1,3 +1,5 @@
import { MockAgent, setGlobalDispatcher } from 'undici';
import { createRemoteUser, parseConfigFile } from '@verdaccio/config';
import { setup } from '@verdaccio/logger';
import { Config } from '@verdaccio/types';
@@ -16,8 +18,6 @@ const multiNotificationConfig = parseConfigFile(parseConfigurationNotifyFile('mu
setup([]);
const domain = 'http://slack-service';
const { MockAgent } = require('undici');
const { setGlobalDispatcher } = require('undici-fetch');
const options = {
path: '/foo?auth_token=mySecretToken',

View File

@@ -1,5 +1,11 @@
# @verdaccio/loaders
## 6.0.0-6-next.11
### Patch Changes
- 31d661c7: always create plugin instance with new
## 6.0.0-6-next.10
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/loaders",
"version": "6.0.0-6-next.10",
"version": "6.0.0-6-next.11",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",

View File

@@ -121,7 +121,7 @@ export function loadPlugin<T extends IPlugin<T>>(
try {
plugin = isES6(plugin)
? new plugin.default(mergeConfig(config, pluginConfigs[pluginId]), params)
: plugin(pluginConfigs[pluginId], params);
: new plugin(pluginConfigs[pluginId], params);
} catch (error: any) {
plugin = null;
logger.error({ error, pluginId }, 'error loading a plugin @{pluginId}: @{error}');

View File

@@ -1,5 +1,11 @@
# @verdaccio/middleware
## 6.0.0-6-next.20
### Patch Changes
- @verdaccio/auth@6.0.0-6-next.20
## 6.0.0-6-next.19
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/middleware",
"version": "6.0.0-6-next.19",
"version": "6.0.0-6-next.20",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -40,7 +40,7 @@
"dependencies": {
"debug": "4.3.3",
"body-parser": "1.19.1",
"@verdaccio/auth": "workspace:6.0.0-6-next.19",
"@verdaccio/auth": "workspace:6.0.0-6-next.20",
"@verdaccio/core": "workspace:6.0.0-6-next.4",
"@verdaccio/logger": "workspace:6.0.0-6-next.10",
"@verdaccio/utils": "workspace:6.0.0-6-next.10",

View File

@@ -1,5 +1,11 @@
# @verdaccio/node-api
## 6.0.0-6-next.29
### Patch Changes
- @verdaccio/server@6.0.0-6-next.28
## 6.0.0-6-next.28
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/node-api",
"version": "6.0.0-6-next.28",
"version": "6.0.0-6-next.29",
"description": "node API",
"main": "build/index.js",
"types": "build/index.d.ts",
@@ -42,7 +42,7 @@
"@verdaccio/core": "workspace:6.0.0-6-next.4",
"@verdaccio/config": "workspace:6.0.0-6-next.12",
"@verdaccio/logger": "workspace:6.0.0-6-next.10",
"@verdaccio/server": "workspace:6.0.0-6-next.27",
"@verdaccio/server": "workspace:6.0.0-6-next.28",
"core-js": "3.20.3",
"debug": "4.3.3",
"lodash": "4.17.21"

View File

@@ -104,7 +104,7 @@ describe('HTPasswd', () => {
done();
};
wrapper.authenticate('bcrypt', 'password', callback);
});
}, 15000);
});
describe('addUser()', () => {

View File

@@ -1,5 +1,17 @@
# @verdaccio/ui-theme
## 6.0.0-6-next.22
### Patch Changes
- a2b69a08: add banner support ukraine
## 6.0.0-6-next.21
### Patch Changes
- a179f1fd: show verdaccio logo in the footer even when custom brand is set
## 6.0.0-6-next.20
### Patch Changes

View File

@@ -29,6 +29,7 @@ module.exports = Object.assign({}, config, {
'\\.(s?css)$': '<rootDir>/jest/identity.js',
'\\.(png)$': '<rootDir>/jest/identity.js',
'\\.(svg)$': '<rootDir>/jest/unit/empty.ts',
'\\.(jpg)$': '<rootDir>/jest/unit/empty.ts',
'github-markdown-css': '<rootDir>/jest/identity.js',
// note: this section has to be on sync with webpack configuration
'verdaccio-ui/components/(.*)': '<rootDir>/src/components/$1',

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/ui-theme",
"version": "6.0.0-6-next.20",
"version": "6.0.0-6-next.22",
"description": "Verdaccio User Interface",
"author": {
"name": "Verdaccio Contributors",
@@ -33,7 +33,7 @@
"@testing-library/dom": "8.11.2",
"@testing-library/jest-dom": "5.16.1",
"@testing-library/react": "12.1.2",
"@verdaccio/node-api": "workspace:6.0.0-6-next.28",
"@verdaccio/node-api": "workspace:6.0.0-6-next.29",
"@verdaccio/types": "workspace:*",
"babel-loader": "8.2.3",
"babel-plugin-dynamic-import-node": "2.3.3",

View File

@@ -1,8 +1,8 @@
/* eslint-disable react/jsx-max-depth */
import styled from '@emotion/styled';
import Box from '@mui/material/Box';
import React, { Suspense, useEffect } from 'react';
import { Router } from 'react-router-dom';
import Box from 'verdaccio-ui/components/Box';
import Loading from 'verdaccio-ui/components/Loading';
import StyleBaseline from 'verdaccio-ui/design-tokens/StyleBaseline';
import loadDayJSLocale from 'verdaccio-ui/design-tokens/load-dayjs-locale';

View File

@@ -56,7 +56,7 @@ const Footer = () => {
{configOptions?.version && (
<>
{t('footer.powered-by')}
<Logo onClick={goToVerdaccioWebsite} size="x-small" />
<Logo isDefault={true} onClick={goToVerdaccioWebsite} size="x-small" />
{`/ ${configOptions.version}`}
</>
)}

View File

@@ -1,7 +1,7 @@
import Button from '@mui/material/Button';
import React, { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
import Button from 'verdaccio-ui/components/Button';
import { useConfig } from 'verdaccio-ui/providers/config';
import { Dispatch, RootState } from '../../store/store';

View File

@@ -1,8 +1,8 @@
import AccountCircle from '@mui/icons-material/AccountCircle';
import IconButton from '@mui/material/IconButton';
import Menu from '@mui/material/Menu';
import React, { MouseEvent } from 'react';
import { useTranslation } from 'react-i18next';
import IconButton from 'verdaccio-ui/components/IconButton';
import Menu from 'verdaccio-ui/components/Menu';
import MenuItem from 'verdaccio-ui/components/MenuItem';
import HeaderGreetings from './HeaderGreetings';

View File

@@ -1,10 +1,11 @@
import Button from '@mui/material/Button';
import React, { MouseEvent, useContext, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import Button from 'verdaccio-ui/components/Button';
import ThemeContext from 'verdaccio-ui/design-tokens/ThemeContext';
import HeaderMenu from './HeaderMenu';
import HeaderToolTip from './HeaderToolTip';
import { Support } from './Support';
import { RightSide } from './styles';
interface Props {
@@ -78,6 +79,7 @@ const HeaderRight: React.FC<Props> = ({
tooltipIconType={'search'}
/>
)}
<Support />
<HeaderToolTip title={t('header.documentation')} tooltipIconType={'help'} />
<HeaderToolTip
onClick={onOpenRegistryInfoDialog}

View File

@@ -3,8 +3,8 @@ import Info from '@mui/icons-material/Info';
import NightsStay from '@mui/icons-material/NightsStay';
import Search from '@mui/icons-material/Search';
import WbSunny from '@mui/icons-material/WbSunny';
import IconButton from '@mui/material/IconButton';
import React, { forwardRef } from 'react';
import IconButton from 'verdaccio-ui/components/IconButton';
import { IconSearchButton, StyledLink } from './styles';
@@ -55,7 +55,6 @@ const HeaderToolTipIcon = forwardRef<HeaderToolTipIconRef, Props>(function Heade
</IconSearchButton>
);
case 'dark-mode':
// todo(Priscila): Add Zoom transition effect
return (
<IconButton color="inherit" onClick={onClick} ref={ref} size="large">
<NightsStay />
@@ -63,7 +62,6 @@ const HeaderToolTipIcon = forwardRef<HeaderToolTipIconRef, Props>(function Heade
);
case 'light-mode':
// todo(Priscila): Add Zoom transition effect
return (
<IconButton color="inherit" onClick={onClick} ref={ref} size="large">
<WbSunny />

View File

@@ -1,9 +1,9 @@
import Dialog from '@mui/material/Dialog';
import DialogContent from '@mui/material/DialogContent';
import i18next from 'i18next';
import isEmpty from 'lodash/isEmpty';
import React, { useCallback, useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import Dialog from 'verdaccio-ui/components/Dialog';
import DialogContent from 'verdaccio-ui/components/DialogContent';
import { LoginBody } from '../../../store/models/login';
import { Dispatch, RootState } from '../../../store/store';

View File

@@ -1,9 +1,9 @@
import styled from '@emotion/styled';
import CloseIcon from '@mui/icons-material/Close';
import DialogTitle from '@mui/material/DialogTitle';
import IconButton from '@mui/material/IconButton';
import React from 'react';
import { useTranslation } from 'react-i18next';
import DialogTitle from 'verdaccio-ui/components/DialogTitle';
import IconButton from 'verdaccio-ui/components/IconButton';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
const StyledIconButton = styled(IconButton)<{ theme?: Theme }>(({ theme }) => ({

View File

@@ -1,9 +1,9 @@
/* eslint-disable verdaccio/jsx-spread */
import styled from '@emotion/styled';
import Button from '@mui/material/Button';
import React, { memo } from 'react';
import { useForm } from 'react-hook-form';
import { useTranslation } from 'react-i18next';
import Button from 'verdaccio-ui/components/Button';
import TextField from 'verdaccio-ui/components/TextField';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
import { LoginError } from 'verdaccio-ui/utils/login';

View File

@@ -1,8 +1,8 @@
import styled from '@emotion/styled';
import Error from '@mui/icons-material/Error';
import Box from '@mui/material/Box';
import SnackbarContent from '@mui/material/SnackbarContent';
import React, { memo } from 'react';
import Box from 'verdaccio-ui/components/Box';
import SnackbarContent from 'verdaccio-ui/components/SnackbarContent';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
import { LoginError } from 'verdaccio-ui/utils/login';

View File

@@ -1,12 +1,12 @@
import styled from '@emotion/styled';
import CloseIcon from '@mui/icons-material/Close';
import LockOutlined from '@mui/icons-material/LockOutlined';
import Avatar from '@mui/material/Avatar';
import Box from '@mui/material/Box';
import IconButton from '@mui/material/IconButton';
import React from 'react';
import { useTranslation } from 'react-i18next';
import Avatar from 'verdaccio-ui/components/Avatar';
import Box from 'verdaccio-ui/components/Box';
import Heading from 'verdaccio-ui/components/Heading';
import IconButton from 'verdaccio-ui/components/IconButton';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
interface Props {

View File

@@ -1,8 +1,8 @@
import Button from '@mui/material/Button';
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import React from 'react';
import { useTranslation } from 'react-i18next';
import Button from 'verdaccio-ui/components/Button';
import Dialog from 'verdaccio-ui/components/Dialog';
import DialogActions from 'verdaccio-ui/components/DialogActions';
import { Content, Title } from './styles';
import { Props } from './types';

View File

@@ -1,6 +1,6 @@
import styled from '@emotion/styled';
import DialogContent from 'verdaccio-ui/components/DialogContent';
import DialogTitle from 'verdaccio-ui/components/DialogTitle';
import DialogContent from '@mui/material/DialogContent';
import DialogTitle from '@mui/material/DialogTitle';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
export const Title = styled(DialogTitle)<{ theme?: Theme }>((props) => ({

View File

@@ -0,0 +1,139 @@
/* eslint-disable verdaccio/jsx-no-style */
/* eslint-disable react/jsx-max-depth */
/* eslint-disable react/jsx-pascal-case */
import styled from '@emotion/styled';
import { Theme } from '@mui/material';
import Box from '@mui/material/Box';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import IconButton from '@mui/material/IconButton';
import Modal from '@mui/material/Modal';
import Tooltip from '@mui/material/Tooltip';
import Typography from '@mui/material/Typography';
import FlagsIcon from 'country-flag-icons/react/3x2';
import React from 'react';
import flag from './uk.jpg';
const style = {
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
bgcolor: 'background.paper',
border: '2px solid #000',
boxShadow: 24,
p: 4,
};
const Flags = styled('span')<{ theme?: Theme }>(() => ({
width: '25px',
}));
const title = 'Support people affected by the war in Ukraine';
const Support = () => {
const [open, setOpen] = React.useState(false);
const handleOpen = () => setOpen(true);
const handleClose = () => setOpen(false);
return (
<>
<Tooltip title={title}>
<IconButton color="inherit" onClick={handleOpen} size="large">
<Flags>
<FlagsIcon.UA />
</Flags>
</IconButton>
</Tooltip>
<Modal
aria-describedby="modal-modal-description"
aria-labelledby="modal-modal-title"
onClose={handleClose}
open={open}
>
<Box sx={style}>
<Grid container={true} spacing={2}>
<Grid item={true} xs={12}>
<Typography component="h2" variant="h6">
{title}
</Typography>
<Divider />
</Grid>
<Grid item={true} lg={4} xs={12}>
<img alt={title} height="150" src={flag} />
</Grid>
<Grid item={true} lg={8} xs={12}>
<span style={{ fontStyle: 'italic', fontSize: '0.75rem' }}>
<Typography>
{`Hi, this is a message that I've composed to call your attention to ask
for humanitarian support for more than 44 million Ukrainians that are having
a hard time suffering for a horrible and unjustified war. It would be great if you
decide today to make a difference and help others. You could help by donating
to very well-known humanitarian organizations, helping in your local
area with food, clothes, donate blood, toys for kids, or your own time. Any help is very welcome.`}
</Typography>
</span>
<ul style={{ padding: '10px 0' }}>
<li>
<a
href="https://twitter.com/denysdovhan/status/1501486563842211843"
rel="noreferrer"
target="_blank"
>
{'Listen at Twitter OSS developers about the war'}
</a>
</li>
<li>
<a
href="https://snyk.io/blog/celebrating-amazing-open-source-innovation-ukraine/"
rel="noreferrer"
target="_blank"
>
{'Learn more about Open Source developers in Ukraine'}
</a>
</li>
<li>
<a
href="https://www.savethechildren.org/us/where-we-work/ukraine/"
rel="noreferrer"
target="_blank"
>
{'Donate to Save the Children'}
</a>
</li>
<li>
<a href="https://www.ifrc.org/" rel="noreferrer" target="_blank">
{'Donate to the International Red Cross'}
</a>
</li>
<li>
<a
href="https://www.hrw.org/news/2022/03/10/ukraine-russian-air-dropped-bombs-hit-residential-area/"
rel="noreferrer"
target="_blank"
>
{'Read Reports from Human Rights Watch'}
</a>
</li>
<li>
<a href="https://europeanbloodalliance.eu/" rel="noreferrer" target="_blank">
{'Donate blood in Europe'}
</a>
</li>
</ul>
<div>
<Typography variant="div">{`Spread the voice, make the difference today.`}</Typography>
</div>
<div style={{ padding: '10px 0', fontWeight: 600 }}>
<Typography variant="div">{`Att: Verdaccio Lead Mantainer, Juan P.`}</Typography>
</div>
</Grid>
</Grid>
</Box>
</Modal>
</>
);
};
export { Support };

View File

@@ -0,0 +1,3 @@
import { Support } from './Support';
export { Support };

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -1,7 +1,7 @@
import { css } from '@emotion/react';
import styled from '@emotion/styled';
import IconButton from '@mui/material/IconButton';
import AppBar from 'verdaccio-ui/components/AppBar';
import IconButton from 'verdaccio-ui/components/IconButton';
import Link from 'verdaccio-ui/components/Link';
import Toolbar from 'verdaccio-ui/components/Toolbar';
import { Theme } from 'verdaccio-ui/design-tokens/theme';

View File

@@ -1,8 +1,8 @@
import Box from '@mui/material/Box';
import React from 'react';
import { isURL } from 'verdaccio-ui/utils/url';
import { DetailContext } from '../../pages/Version';
import Box from '../Box';
import ActionBarAction, { ActionBarActionProps } from './ActionBarAction';
/* eslint-disable verdaccio/jsx-spread */

View File

@@ -18,7 +18,7 @@ exports[`<ActionBar /> component should render the component in default state 1`
font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
font-weight: 400;
font-size: 1rem;
line-height: 1.75;
line-height: 1.5;
}
.emotion-3 {
@@ -162,8 +162,8 @@ exports[`<ActionBar /> component should render the component in default state 1`
rel="noopener noreferrer"
target="_blank"
>
<span
class="MuiTypography-root MuiTypography-subtitle1 emotion-1"
<p
class="MuiTypography-root MuiTypography-body1 emotion-1"
>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-circular MuiFab-sizeSmall emotion-2 emotion-3"
@@ -186,7 +186,7 @@ exports[`<ActionBar /> component should render the component in default state 1`
class="MuiTouchRipple-root emotion-5"
/>
</button>
</span>
</p>
</a>
<a
aria-label="Open an issue"
@@ -196,8 +196,8 @@ exports[`<ActionBar /> component should render the component in default state 1`
rel="noopener noreferrer"
target="_blank"
>
<span
class="MuiTypography-root MuiTypography-subtitle1 emotion-1"
<p
class="MuiTypography-root MuiTypography-body1 emotion-1"
>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-circular MuiFab-sizeSmall emotion-2 emotion-3"
@@ -220,7 +220,7 @@ exports[`<ActionBar /> component should render the component in default state 1`
class="MuiTouchRipple-root emotion-5"
/>
</button>
</span>
</p>
</a>
<button
aria-label="Download tarball"

View File

@@ -1,10 +1,3 @@
import { AppBarProps, default as MaterialUIAppBar } from '@mui/material/AppBar';
import React, { forwardRef } from 'react';
import { default as MaterialUIAppBar } from '@mui/material/AppBar';
type AppBarRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const AppBar = forwardRef<AppBarRef, AppBarProps>(function AppBar(props, ref) {
return <MaterialUIAppBar {...props} ref={ref} />;
});
export default AppBar;
export default MaterialUIAppBar;

View File

@@ -1,11 +1,11 @@
import Avatar from '@mui/material/Avatar';
import List from '@mui/material/List';
import React, { FC, useContext } from 'react';
import { useTranslation } from 'react-i18next';
import { getAuthorName } from 'verdaccio-ui/utils/package';
import { isEmail } from 'verdaccio-ui/utils/url';
import { DetailContext } from '../../pages/Version';
import List from '../List';
import { AuthorListItem, AuthorListItemText, StyledText } from './styles';
const Author: FC = () => {

View File

@@ -215,11 +215,11 @@ Object {
<ul
class="MuiList-root MuiList-padding MuiList-subheader emotion-0"
>
<span
<h6
class="MuiTypography-root MuiTypography-subtitle1 emotion-1 emotion-2"
>
Author
</span>
</h6>
<div
class="MuiButtonBase-root MuiListItem-root MuiListItem-gutters MuiListItem-padding MuiListItem-button emotion-3 emotion-4"
role="button"
@@ -466,11 +466,11 @@ Object {
<ul
class="MuiList-root MuiList-padding MuiList-subheader emotion-0"
>
<span
<h6
class="MuiTypography-root MuiTypography-subtitle1 emotion-1 emotion-2"
>
Author
</span>
</h6>
<div
class="MuiButtonBase-root MuiListItem-root MuiListItem-gutters MuiListItem-padding MuiListItem-button emotion-3 emotion-4"
role="button"
@@ -774,11 +774,11 @@ Object {
<ul
class="MuiList-root MuiList-padding MuiList-subheader emotion-0"
>
<span
<h6
class="MuiTypography-root MuiTypography-subtitle1 emotion-1 emotion-2"
>
Author
</span>
</h6>
<div
class="MuiButtonBase-root MuiListItem-root MuiListItem-gutters MuiListItem-padding MuiListItem-button emotion-3 emotion-4"
role="button"
@@ -1020,11 +1020,11 @@ Object {
<ul
class="MuiList-root MuiList-padding MuiList-subheader emotion-0"
>
<span
<h6
class="MuiTypography-root MuiTypography-subtitle1 emotion-1 emotion-2"
>
Author
</span>
</h6>
<div
class="MuiButtonBase-root MuiListItem-root MuiListItem-gutters MuiListItem-padding MuiListItem-button emotion-3 emotion-4"
role="button"

View File

@@ -1,8 +1,8 @@
import styled from '@emotion/styled';
import ListItem from '@mui/material/ListItem';
import ListItemText from '@mui/material/ListItemText';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
import ListItem from '../ListItem';
import ListItemText from '../ListItemText';
import Text from '../Text';
export const StyledText = styled(Text)<{ theme?: Theme }>((props) => ({

View File

@@ -1,3 +0,0 @@
import { default as MaterialUIAvatar } from '@mui/material/Avatar';
export default MaterialUIAvatar;

View File

@@ -1,8 +0,0 @@
import { BoxProps, default as MaterialUIBox } from '@mui/material/Box';
import React from 'react';
function Box(props: BoxProps) {
return <MaterialUIBox {...props} />;
}
export default Box;

View File

@@ -1,10 +0,0 @@
import { ButtonProps, default as MaterialUIButton } from '@mui/material/Button';
import React, { forwardRef } from 'react';
type ButtonRef = HTMLButtonElement;
const Button = forwardRef<ButtonRef, ButtonProps>(function Button(props, ref) {
return <MaterialUIButton {...props} ref={ref} />;
});
export default Button;

View File

@@ -1,10 +0,0 @@
import { CardProps, default as MaterialUICard } from '@mui/material/Card';
import React, { forwardRef } from 'react';
type CardRef = HTMLDivElement;
const Card = forwardRef<CardRef, CardProps>(function Card(props, ref) {
return <MaterialUICard {...props} ref={ref} />;
});
export default Card;

View File

@@ -1,13 +0,0 @@
import { CardActionsProps, default as MaterialUICardActions } from '@mui/material/CardActions';
import React, { forwardRef } from 'react';
type CardActionsRef = HTMLDivElement;
const CardActions = forwardRef<CardActionsRef, CardActionsProps>(function CardContentActions(
props,
ref
) {
return <MaterialUICardActions {...props} innerRef={ref} />;
});
export default CardActions;

View File

@@ -1,10 +0,0 @@
import { CardContentProps, default as MaterialUICardContent } from '@mui/material/CardContent';
import React, { forwardRef } from 'react';
type CardContentRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const CardContent = forwardRef<CardContentRef, CardContentProps>(function CardContent(props) {
return <MaterialUICardContent {...props} />;
});
export default CardContent;

View File

@@ -1,10 +0,0 @@
import { ChipProps, default as MaterialUIChip } from '@mui/material/Chip';
import React, { forwardRef } from 'react';
type ChipRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const Chip = forwardRef<ChipRef, ChipProps>(function Chip(props) {
return <MaterialUIChip {...props} />;
});
export default Chip;

View File

@@ -1,15 +0,0 @@
import {
CircularProgressProps,
default as MaterialUICircularProgress,
} from '@mui/material/CircularProgress';
import React, { forwardRef } from 'react';
type CircularProgressRef = HTMLDivElement;
const CircularProgress = forwardRef<CircularProgressRef, CircularProgressProps>(
function CircularProgress(props, ref) {
return <MaterialUICircularProgress {...props} ref={ref} />;
}
);
export default CircularProgress;

View File

@@ -1,12 +1,11 @@
import styled from '@emotion/styled';
import FileCopy from '@mui/icons-material/FileCopy';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { copyToClipBoardUtility } from 'verdaccio-ui/utils/cli-utils';
import IconButton from './IconButton';
import Tooltip from './Tooltip';
interface Props {
text: string;
children?: React.ReactNode;

View File

@@ -1,10 +0,0 @@
import { DialogProps, default as MaterialUIDialog } from '@mui/material/Dialog';
import React, { forwardRef } from 'react';
type DialogRef = HTMLDivElement;
const Dialog = forwardRef<DialogRef, DialogProps>(function Dialog(props, ref) {
return <MaterialUIDialog {...props} ref={ref} />;
});
export default Dialog;

View File

@@ -1,16 +0,0 @@
import {
DialogActionsProps,
default as MaterialUIDialogActions,
} from '@mui/material/DialogActions';
import React, { forwardRef } from 'react';
type DialogActionsRef = HTMLDivElement;
const DialogActions = forwardRef<DialogActionsRef, DialogActionsProps>(function DialogActions(
props,
ref
) {
return <MaterialUIDialogActions {...props} ref={ref} />;
});
export default DialogActions;

View File

@@ -1,16 +0,0 @@
import {
DialogContentProps,
default as MaterialUIDialogContent,
} from '@mui/material/DialogContent';
import React, { forwardRef } from 'react';
type DialogContentRef = HTMLDivElement;
const DialogContent = forwardRef<DialogContentRef, DialogContentProps>(function DialogContent(
props,
ref
) {
return <MaterialUIDialogContent {...props} ref={ref} />;
});
export default DialogContent;

View File

@@ -1,10 +0,0 @@
import { DialogTitleProps, default as MaterialUIDialogTitle } from '@mui/material/DialogTitle';
import React, { forwardRef } from 'react';
type DialogTitleRef = HTMLDivElement;
const DialogTitle = forwardRef<DialogTitleRef, DialogTitleProps>(function DialogTitle(props, ref) {
return <MaterialUIDialogTitle {...props} ref={ref} />;
});
export default DialogTitle;

View File

@@ -1,10 +0,0 @@
import { DividerProps, default as MaterialUIDivider } from '@mui/material/Divider';
import React, { forwardRef } from 'react';
type DividerRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const Divider = forwardRef<DividerRef, DividerProps>(function Divider(props, ref) {
return <MaterialUIDivider {...props} innerRef={ref} />;
});
export default Divider;

View File

@@ -1,12 +1,8 @@
import { FabProps, default as MaterialUIFab } from '@mui/material/Fab';
import React, { forwardRef } from 'react';
import Fab from '@mui/material/Fab';
import React from 'react';
type FloatingActionButtonRef = HTMLButtonElement;
const FloatingActionButton = forwardRef<FloatingActionButtonRef, FabProps>(
function FloatingActionButton(props, ref) {
return <MaterialUIFab {...props} ref={ref} data-testid="fab" />;
}
);
const FloatingActionButton = (props) => {
return <Fab {...props} data-testid="fab" />;
};
export default FloatingActionButton;

View File

@@ -1,10 +0,0 @@
import { FormControlProps, default as MaterialUIFormControl } from '@mui/material/FormControl';
import React, { forwardRef } from 'react';
type FormControlRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const FormControl = forwardRef<FormControlRef, FormControlProps>(function FormControl(props, ref) {
return <MaterialUIFormControl {...props} innerRef={ref} />;
});
export default FormControl;

View File

@@ -1,16 +1,3 @@
import {
FormHelperTextProps,
default as MaterialUIFormHelperText,
} from '@mui/material/FormHelperText';
import React, { forwardRef } from 'react';
import { default as MaterialUIFormHelperText } from '@mui/material/FormHelperText';
type FormHelperTextRef = HTMLParagraphElement;
const FormHelperText = forwardRef<FormHelperTextRef, FormHelperTextProps>(function FormHelperText(
props,
ref
) {
return <MaterialUIFormHelperText {...props} ref={ref} />;
});
export default FormHelperText;
export default MaterialUIFormHelperText;

View File

@@ -1,10 +0,0 @@
import { GridProps, default as MaterialUIGrid } from '@mui/material/Grid';
import React, { forwardRef } from 'react';
type GridRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const Grid = forwardRef<GridRef, GridProps>(function Grid(props, ref) {
return <MaterialUIGrid {...props} innerRef={ref} />;
});
export default Grid;

View File

@@ -1,10 +0,0 @@
import { IconButtonProps, default as MaterialUIIconButton } from '@mui/material/IconButton';
import React, { forwardRef } from 'react';
type IconButtonRef = HTMLButtonElement;
const IconButton = forwardRef<IconButtonRef, IconButtonProps>(function IconButton(props, ref) {
return <MaterialUIIconButton {...props} ref={ref} />;
});
export default IconButton;

View File

@@ -1,10 +1,3 @@
import { InputProps, default as MaterialUIInput } from '@mui/material/Input';
import React, { forwardRef } from 'react';
import { default as MaterialUIInput } from '@mui/material/Input';
type InputRef = HTMLDivElement;
const Input = forwardRef<InputRef, InputProps>(function Input(props, ref) {
return <MaterialUIInput {...props} ref={ref} />;
});
export default Input;
export default MaterialUIInput;

View File

@@ -1,16 +0,0 @@
import {
InputAdornmentProps,
default as MaterialUIInputAdornment,
} from '@mui/material/InputAdornment';
import React, { forwardRef } from 'react';
type InputAdornmentRef = HTMLDivElement;
const InputAdornment = forwardRef<InputAdornmentRef, InputAdornmentProps>(function InputAdornment(
props,
ref
) {
return <MaterialUIInputAdornment {...props} ref={ref} />;
});
export default InputAdornment;

View File

@@ -1 +0,0 @@
export { default } from './InputAdornment';

View File

@@ -1,10 +0,0 @@
import { InputLabelProps, default as MaterialUIInputLabel } from '@mui/material/InputLabel';
import React, { forwardRef } from 'react';
type InputLabelRef = HTMLLabelElement;
const InputLabel = forwardRef<InputLabelRef, InputLabelProps>(function InputLabel(props, ref) {
return <MaterialUIInputLabel {...props} ref={ref} />;
});
export default InputLabel;

View File

@@ -1,10 +0,0 @@
import { ListProps, default as MaterialUIList } from '@mui/material/List';
import React, { forwardRef } from 'react';
type ListRef = HTMLUListElement;
const List = forwardRef<ListRef, ListProps>(function List(props, ref) {
return <MaterialUIList {...props} ref={ref} />;
});
export default List;

View File

@@ -1,23 +0,0 @@
import { ListItemProps, default as MaterialUIListItem } from '@mui/material/ListItem';
import React, { forwardRef } from 'react';
type ListItemRef<T extends boolean = false> = T extends true ? HTMLDivElement : HTMLLIElement;
interface Props<T extends boolean = false> extends Omit<ListItemProps, 'button'> {
button?: T;
}
const ListItem = forwardRef(function ListItem<T extends boolean>(
{ button, ...props }: Props<T>,
ref: React.Ref<ListItemRef<T>>
) {
// it seems typescript has some discrimination type limitions. Please see: https://github.com/mui-org/material-ui/issues/14971
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return <MaterialUIListItem {...props} button={button as any} innerRef={ref} />;
});
ListItem.defaultProps = {
button: false,
};
export default ListItem;

View File

@@ -1,13 +0,0 @@
import { ListItemTextProps, default as MaterialUIListItemText } from '@mui/material/ListItemText';
import React, { forwardRef } from 'react';
type ListItemTextRef = HTMLDivElement;
const ListItemText = forwardRef<ListItemTextRef, ListItemTextProps>(function ListItemText(
props,
ref
) {
return <MaterialUIListItemText {...props} ref={ref} />;
});
export default ListItemText;

View File

@@ -1,9 +1,8 @@
import styled from '@emotion/styled';
import CircularProgress from '@mui/material/CircularProgress';
import React from 'react';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
import CircularProgress from '../../CircularProgress';
interface Props {
size?: number;
centered?: boolean;

View File

@@ -3,8 +3,8 @@ import React from 'react';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
import { useConfig } from 'verdaccio-ui/providers/config';
import blackAndWithLogo from './img/logo-black-and-white.svg';
import defaultLogo from './img/logo.svg';
import blackAndWithLogo from './img/logo-uk.svg';
import defaultLogo from './img/logo-uk.svg';
const sizes = {
'x-small': '30px',
@@ -21,11 +21,12 @@ interface Props {
size?: keyof typeof sizes;
onClick?: () => void;
className?: string;
isDefault?: boolean;
}
const Logo: React.FC<Props> = ({ size, onClick, className }) => {
const Logo: React.FC<Props> = ({ size, onClick, className, isDefault = false }) => {
const { configOptions } = useConfig();
if (configOptions?.logo) {
if (!isDefault && configOptions?.logo) {
return (
<ImageLogo onClick={onClick} className={className}>
<img alt="logo" height="40px" src={configOptions.logo} />

View File

@@ -0,0 +1,38 @@
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="100" height="100" rx="37" fill="#F7F8F6"/>
<g filter="url(#filter0_d_0_18)">
<mask id="path-2-inside-1_0_18" fill="white">
<path fill-rule="evenodd" clip-rule="evenodd" d="M70 46.6L54.8 77H46L22.4 29.8L37.6 29.8L50.4 55.4L54.8 46.6H70Z"/>
</mask>
<path fill-rule="evenodd" clip-rule="evenodd" d="M70 46.6L54.8 77H46L22.4 29.8L37.6 29.8L50.4 55.4L54.8 46.6H70Z" fill="#005EB8"/>
<path d="M70 46.6L72.1466 47.6733L73.8833 44.2H70V46.6ZM54.8 77V79.4H56.2833L56.9466 78.0733L54.8 77ZM46 77L43.8534 78.0733L44.5167 79.4H46V77ZM22.4 29.8V27.4H18.5167L20.2534 30.8733L22.4 29.8ZM37.6 29.8L39.7466 28.7267L39.0833 27.4H37.6V29.8ZM50.4 55.4L48.2534 56.4733L50.4 60.7666L52.5466 56.4733L50.4 55.4ZM54.8 46.6V44.2H53.3167L52.6534 45.5267L54.8 46.6ZM67.8534 45.5267L52.6534 75.9267L56.9466 78.0733L72.1466 47.6733L67.8534 45.5267ZM54.8 74.6H46V79.4H54.8V74.6ZM48.1466 75.9267L24.5466 28.7267L20.2534 30.8733L43.8534 78.0733L48.1466 75.9267ZM22.4 32.2L37.6 32.2V27.4L22.4 27.4V32.2ZM35.4534 30.8733L48.2534 56.4733L52.5466 54.3267L39.7466 28.7267L35.4534 30.8733ZM52.5466 56.4733L56.9466 47.6733L52.6534 45.5267L48.2534 54.3267L52.5466 56.4733ZM54.8 49H70V44.2H54.8V49Z" fill="#005EB8" mask="url(#path-2-inside-1_0_18)"/>
</g>
<g filter="url(#filter1_d_0_18)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M72.8 41H57.6L63.2 29.8L78.4 29.8L72.8 41Z" fill="#005EB8"/>
<path d="M76.4584 31L72.0584 39.8H59.5416L63.9416 31H76.4584Z" stroke="#005EB8" stroke-width="2.4"/>
</g>
<path d="M56.6351 70.688L54.0607 75.8H46.7416L24.3416 31H36.8573L56.6351 70.688Z" fill="#FFD101" stroke="#FFD101" stroke-width="2.4"/>
<path d="M59.6 31H74.821" stroke="#005EB8" stroke-width="2.4" stroke-linecap="square"/>
<path d="M55.6 35H70.821" stroke="#005EB8" stroke-width="2.4" stroke-linecap="square"/>
<path d="M51.6 39.8H66.821" stroke="#005EB8" stroke-width="2.4" stroke-linecap="square"/>
<defs>
<filter id="filter0_d_0_18" x="17.4" y="28.8" width="57.6" height="57.2" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2.5"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_18"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_18" result="shape"/>
</filter>
<filter id="filter1_d_0_18" x="52.6" y="28.8" width="30.8" height="21.2" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2.5"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_18"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_18" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,10 +0,0 @@
import { default as MaterialUIMenu, MenuProps } from '@mui/material/Menu';
import React, { forwardRef } from 'react';
type MenuRef = HTMLDivElement;
const Menu = forwardRef<MenuRef, MenuProps>(function Menu(props, ref) {
return <MaterialUIMenu {...props} ref={ref} />;
});
export default Menu;

View File

@@ -1,11 +1,11 @@
import styled from '@emotion/styled';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import React, { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { useHistory } from 'react-router-dom';
import { Theme } from 'verdaccio-ui/design-tokens/theme';
import Box from '../Box';
import Button from '../Button';
import Heading from '../Heading';
import PackageImg from './img/package.svg';

View File

@@ -1,9 +1,9 @@
import styled from '@emotion/styled';
import List from '@mui/material/List';
import { PRIMARY_COLOR } from 'verdaccio-ui/utils/colors';
import { default as MuiCard } from '../Card';
import { default as Typography } from '../Heading';
import List from '../List';
export const Wrapper = styled('div')({
display: 'flex',

View File

@@ -1,10 +1,3 @@
import { default as MaterialUIPaper, PaperProps } from '@mui/material/Paper';
import React, { forwardRef } from 'react';
import { default as MaterialUIPaper } from '@mui/material/Paper';
type PaperRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
const Paper = forwardRef<PaperRef, PaperProps>(function Paper(props, ref) {
return <MaterialUIPaper {...props} ref={ref} />;
});
export default Paper;
export default MaterialUIPaper;

View File

@@ -1,15 +0,0 @@
import {
default as MaterialUISnackbarContent,
SnackbarContentProps,
} from '@mui/material/SnackbarContent';
import React, { forwardRef } from 'react';
type SnackbarContentRef = HTMLDivElement;
const SnackbarContent = forwardRef<SnackbarContentRef, SnackbarContentProps>(
function SnackbarContent(props, ref) {
return <MaterialUISnackbarContent {...props} ref={ref} />;
}
);
export default SnackbarContent;

View File

@@ -1,10 +0,0 @@
import { default as MaterialUITab, TabProps } from '@mui/material/Tab';
import React, { forwardRef } from 'react';
type TabRef = HTMLButtonElement;
const Tab = forwardRef<TabRef, TabProps>(function Tab(props, ref) {
return <MaterialUITab {...props} innerRef={ref} />;
});
export default Tab;

View File

@@ -1,14 +0,0 @@
import { default as MaterialUITabs, TabsProps } from '@mui/material/Tabs';
import React, { forwardRef } from 'react';
type TabsRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
interface Props extends Omit<TabsProps, 'onChange'> {
onChange: (event: React.ChangeEvent<{}>, value: number) => void;
}
const Tabs = forwardRef<TabsRef, Props>(function Tabs(props, ref) {
return <MaterialUITabs {...props} innerRef={ref} />;
});
export default Tabs;

View File

@@ -1,17 +1,3 @@
import { default as MaterialUITypography } from '@mui/material/Typography';
import React, { forwardRef } from 'react';
import { TextProps } from './TextConfig';
type TextRef = HTMLElementTagNameMap[keyof HTMLElementTagNameMap];
// The reference is already from type of the Component, so the any below is not a problem
const Text = forwardRef<TextRef, TextProps>(function Text(props, ref) {
return <MaterialUITypography {...props} component="span" ref={ref} />;
});
Text.defaultProps = {
variant: 'subtitle1',
};
export default Text;
export default MaterialUITypography;

View File

@@ -1,7 +0,0 @@
import { TypographyProps } from '@mui/material/Typography';
type TextType = 'subtitle1' | 'subtitle2' | 'body1' | 'body2';
export interface TextProps extends Omit<TypographyProps, 'variant'> {
variant?: TextType;
}

View File

@@ -1,2 +1 @@
export { default } from './Text';
export { TextProps } from './TextConfig';

View File

@@ -1,10 +1,3 @@
import { default as MaterialUIToolbar, ToolbarProps } from '@mui/material/Toolbar';
import React, { forwardRef } from 'react';
import { default as MaterialUIToolbar } from '@mui/material/Toolbar';
type ToolbarRef = HTMLDivElement;
const Toolbar = forwardRef<ToolbarRef, ToolbarProps>(function Toolbar(props, ref) {
return <MaterialUIToolbar {...props} ref={ref} />;
});
export default Toolbar;
export default MaterialUIToolbar;

View File

@@ -1,25 +0,0 @@
import { default as MaterialUITooltip, TooltipProps } from '@mui/material/Tooltip';
import { TFunctionResult } from 'i18next';
import React, { forwardRef } from 'react';
// The default element type of MUI's Tooltip is 'div' and the change of this prop is not allowed
type TooltipRef = HTMLDivElement;
// Returning only the children in case of undefined title was necessary as the Tooltip component no longer accepts this type
// You can read more about this in this issue https://github.com/mui-org/material-ui/issues/20701
type Props = Omit<TooltipProps, 'title'> & {
title: TFunctionResult;
};
const Tooltip = forwardRef<TooltipRef, Props>(function ToolTip({ title, children, ...props }) {
if (!title) {
return children;
}
return (
<MaterialUITooltip {...props} title={title}>
{children}
</MaterialUITooltip>
);
});
export default Tooltip;

View File

@@ -1,7 +1,7 @@
import CardContent from '@mui/material/CardContent';
import React, { useContext } from 'react';
import { useTranslation } from 'react-i18next';
import { useHistory } from 'react-router-dom';
import CardContent from 'verdaccio-ui/components/CardContent';
import { PackageDependencies } from '../../../../../types/packageMeta';
import { DetailContext } from '../../context';

Some files were not shown because too many files have changed in this diff Show More