mirror of
https://github.com/SomboChea/ui
synced 2026-01-12 06:05:43 +07:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
023b1159f7 | ||
|
|
e81cb308ea | ||
|
|
937d15947b | ||
|
|
01da082c06 | ||
|
|
980dac5b2f | ||
|
|
233ba196a0 | ||
|
|
c9fb3c4c50 | ||
|
|
3d752e079c | ||
|
|
7f07a322f4 | ||
|
|
9ffa6290cc | ||
|
|
47b98c5550 | ||
|
|
da4ac7e851 | ||
|
|
c960fa76db | ||
|
|
5e43ac0d49 | ||
|
|
4e899a8574 | ||
|
|
01daf73bbf | ||
|
|
a89f363115 | ||
|
|
c3eac3d27b | ||
|
|
9d7be476ad | ||
|
|
1070e5c3aa | ||
|
|
11f50919ef | ||
|
|
ea1ebde2f1 |
168
.circleci/config.yml
Normal file
168
.circleci/config.yml
Normal file
@@ -0,0 +1,168 @@
|
||||
version: 2
|
||||
|
||||
aliases:
|
||||
- &defaults
|
||||
working_directory: ~/ui-theme
|
||||
- &node11_executor
|
||||
docker:
|
||||
- image: circleci/node:11.10.1
|
||||
- &node8_executor
|
||||
docker:
|
||||
- image: circleci/node:8
|
||||
- &node10_executor
|
||||
docker:
|
||||
- image: circleci/node:10
|
||||
- &default_executor
|
||||
<<: *node10_executor
|
||||
- &repo_key
|
||||
repo-{{ .Branch }}-{{ .Revision }}
|
||||
- &coverage_key
|
||||
coverage-{{ .Branch }}-{{ .Revision }}
|
||||
- &base_config_key
|
||||
base-config-{{ .Branch }}-{{ .Revision }}
|
||||
- &yarn_cache_key
|
||||
yarn-sha-{{ checksum "yarn.lock" }}
|
||||
- &restore_repo
|
||||
restore_cache:
|
||||
keys:
|
||||
- *repo_key
|
||||
- &ignore_non_dev_branches
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
branches:
|
||||
ignore:
|
||||
- /release\/.*/
|
||||
- &execute_on_release
|
||||
filters:
|
||||
tags:
|
||||
only: /(v)?[0-9]+(\.[0-9]+)*/
|
||||
branches:
|
||||
ignore:
|
||||
- /.*/
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
<<: *defaults
|
||||
<<: *default_executor
|
||||
steps:
|
||||
- *restore_repo
|
||||
- checkout
|
||||
- restore_cache:
|
||||
key: *base_config_key
|
||||
- run:
|
||||
name: 'Base environment setup'
|
||||
command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
|
||||
- save_cache:
|
||||
key: *base_config_key
|
||||
paths:
|
||||
- ~/.npmrc
|
||||
- ~/.gitconfig
|
||||
- restore_cache:
|
||||
key: *yarn_cache_key
|
||||
- run:
|
||||
name: Install Js dependencies
|
||||
command: yarn install --no-progress --registry https://registry.verdaccio.org --no-lockfile
|
||||
- run:
|
||||
name: Build project
|
||||
command: yarn run build
|
||||
- save_cache:
|
||||
key: *yarn_cache_key
|
||||
paths:
|
||||
- ~/.yarn
|
||||
- ~/.cache/yarn
|
||||
- node_modules
|
||||
- save_cache:
|
||||
key: *repo_key
|
||||
paths:
|
||||
- ~/ui-theme
|
||||
|
||||
test_node11:
|
||||
<<: *defaults
|
||||
<<: *node11_executor
|
||||
steps:
|
||||
- *restore_repo
|
||||
- run:
|
||||
name: Test with Node 11
|
||||
command: yarn run test
|
||||
|
||||
test_node8:
|
||||
<<: *defaults
|
||||
<<: *node8_executor
|
||||
steps:
|
||||
- *restore_repo
|
||||
- run:
|
||||
name: Test with Node 8
|
||||
command: yarn test
|
||||
|
||||
test_node10:
|
||||
<<: *defaults
|
||||
<<: *node10_executor
|
||||
steps:
|
||||
- *restore_repo
|
||||
- run:
|
||||
name: Test with Node 10
|
||||
command: yarn run test
|
||||
- save_cache:
|
||||
key: *coverage_key
|
||||
paths:
|
||||
- coverage
|
||||
|
||||
coverage:
|
||||
<<: *defaults
|
||||
<<: *default_executor
|
||||
steps:
|
||||
- *restore_repo
|
||||
- restore_cache:
|
||||
key: *coverage_key
|
||||
- run:
|
||||
name: Publish coverage
|
||||
command: yarn run coverage:publish
|
||||
- store_artifacts:
|
||||
path: coverage/clover.xml
|
||||
prefix: tests
|
||||
- store_artifacts:
|
||||
path: coverage
|
||||
prefix: coverage
|
||||
- store_test_results:
|
||||
path: coverage/clover.xml
|
||||
|
||||
publish_package:
|
||||
<<: *defaults
|
||||
<<: *default_executor
|
||||
steps:
|
||||
- *restore_repo
|
||||
- restore_cache:
|
||||
key: *base_config_key
|
||||
- run:
|
||||
name: Publish
|
||||
command: yarn publish
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
workflow:
|
||||
jobs:
|
||||
- prepare:
|
||||
<<: *ignore_non_dev_branches
|
||||
- test_node11:
|
||||
requires:
|
||||
- prepare
|
||||
<<: *ignore_non_dev_branches
|
||||
- test_node8:
|
||||
requires:
|
||||
- prepare
|
||||
<<: *ignore_non_dev_branches
|
||||
- test_node10:
|
||||
requires:
|
||||
- prepare
|
||||
<<: *ignore_non_dev_branches
|
||||
- coverage:
|
||||
requires:
|
||||
- test_node11
|
||||
- test_node8
|
||||
- test_node10
|
||||
<<: *ignore_non_dev_branches
|
||||
- publish_package:
|
||||
requires:
|
||||
- coverage
|
||||
<<: *execute_on_release
|
||||
264
.github/main.workflow
vendored
264
.github/main.workflow
vendored
@@ -1,93 +1,215 @@
|
||||
workflow "build & test" {
|
||||
resolves = [,
|
||||
"node:12"
|
||||
]
|
||||
on = "pull_request"
|
||||
}
|
||||
|
||||
action "PR:filter" {
|
||||
uses = "actions/bin/filter@master"
|
||||
args = "action 'opened|synchronize'"
|
||||
}
|
||||
|
||||
action "node:8" {
|
||||
needs = ["PR:filter"]
|
||||
uses = "docker://node:8"
|
||||
args = "sh scripts/build-test.sh"
|
||||
}
|
||||
|
||||
action "node:10" {
|
||||
needs = ["PR:filter"]
|
||||
uses = "docker://node:10"
|
||||
args = "sh scripts/build-test.sh"
|
||||
}
|
||||
|
||||
action "node:11" {
|
||||
needs = ["PR:filter"]
|
||||
uses = "docker://node:11"
|
||||
args = "sh scripts/build-test.sh"
|
||||
}
|
||||
|
||||
action "node:12" {
|
||||
needs = [
|
||||
"node:8",
|
||||
"node:10",
|
||||
"node:11"
|
||||
]
|
||||
uses = "docker://node:12"
|
||||
args = "sh scripts/build-test.sh"
|
||||
}
|
||||
|
||||
workflow "build, test & release" {
|
||||
################################################
|
||||
# Workflow for a branch push
|
||||
################################################
|
||||
workflow "build and test on branch" {
|
||||
resolves = [
|
||||
"github-release"
|
||||
"branch.lint.node.10",
|
||||
"branch.test.node.10",
|
||||
"branch.test.node.8",
|
||||
# "branch.test.node.12"
|
||||
]
|
||||
on = "push"
|
||||
}
|
||||
|
||||
action "push:node:8" {
|
||||
uses = "docker://node:8"
|
||||
args = "sh scripts/build-test.sh"
|
||||
# node 10
|
||||
action "branch.filter" {
|
||||
uses = "actions/bin/filter@master"
|
||||
args = "branch"
|
||||
}
|
||||
|
||||
action "push:node:10" {
|
||||
action "branch.install.node.10" {
|
||||
needs = ["branch.filter"]
|
||||
uses = "docker://node:10"
|
||||
args = "sh scripts/build-test.sh"
|
||||
args = "yarn install"
|
||||
}
|
||||
|
||||
action "push:node:11" {
|
||||
uses = "docker://node:11"
|
||||
args = "sh scripts/build-test.sh"
|
||||
action "branch.build.node.10" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["branch.install.node.10"]
|
||||
args = "yarn run build"
|
||||
}
|
||||
|
||||
action "push:node:12" {
|
||||
needs = [
|
||||
"push:node:8",
|
||||
"push:node:10",
|
||||
"push:node:11",
|
||||
action "branch.lint.node.10" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["branch.install.node.10"]
|
||||
args = "yarn run lint"
|
||||
}
|
||||
|
||||
action "branch.test.node.10" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["branch.build.node.10"]
|
||||
args = "yarn run test"
|
||||
}
|
||||
|
||||
# node 8
|
||||
action "branch.install.node.8" {
|
||||
needs = ["branch.filter"]
|
||||
uses = "docker://node:8"
|
||||
args = "yarn install"
|
||||
}
|
||||
|
||||
action "branch.build.node.8" {
|
||||
uses = "docker://node:8"
|
||||
needs = ["branch.install.node.8"]
|
||||
args = "yarn run build"
|
||||
}
|
||||
|
||||
action "branch.test.node.8" {
|
||||
uses = "docker://node:8"
|
||||
needs = ["branch.build.node.8"]
|
||||
args = "yarn run test"
|
||||
}
|
||||
|
||||
# @todo node 12
|
||||
# action "branch.install.node.12" {
|
||||
# needs = ["branch.filter"]
|
||||
# uses = "docker://node:12"
|
||||
# args = "yarn install"
|
||||
# }
|
||||
|
||||
# action "branch.build.node.12" {
|
||||
# uses = "docker://node:12"
|
||||
# needs = ["branch.install.node.12"]
|
||||
# args = "yarn run build"
|
||||
# }
|
||||
|
||||
# action "branch.test.node.12" {
|
||||
# uses = "docker://node:12"
|
||||
# needs = ["branch.build.node.12"]
|
||||
# args = "yarn run test"
|
||||
# }
|
||||
|
||||
################################################
|
||||
# Workflow for a Pull request
|
||||
################################################
|
||||
workflow "build and test on PR" {
|
||||
resolves = [
|
||||
"pr.lint.node.10",
|
||||
"pr.test.node.10",
|
||||
"pr.test.node.8",
|
||||
# "pr.test.node.12"
|
||||
]
|
||||
uses = "docker://node:12"
|
||||
args = "sh scripts/build-test.sh"
|
||||
on = "pull_request"
|
||||
}
|
||||
|
||||
action "release:filter" {
|
||||
needs = [
|
||||
"push:node:12"
|
||||
# node 10
|
||||
action "pr.filter" {
|
||||
uses = "actions/bin/filter@master"
|
||||
args = "action 'opened|synchronize|reopened'"
|
||||
}
|
||||
|
||||
action "pr.install.node.10" {
|
||||
needs = ["pr.filter"]
|
||||
uses = "docker://node:10"
|
||||
args = "yarn install"
|
||||
}
|
||||
|
||||
action "pr.build.node.10" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["pr.install.node.10"]
|
||||
args = "yarn run build"
|
||||
}
|
||||
|
||||
action "pr.lint.node.10" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["pr.install.node.10"]
|
||||
args = "yarn run lint"
|
||||
}
|
||||
|
||||
action "pr.test.node.10" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["pr.build.node.10"]
|
||||
args = "yarn run test"
|
||||
}
|
||||
|
||||
# node 8
|
||||
action "pr.install.node.8" {
|
||||
needs = ["pr.filter"]
|
||||
uses = "docker://node:8"
|
||||
args = "yarn install"
|
||||
}
|
||||
|
||||
action "pr.build.node.8" {
|
||||
uses = "docker://node:8"
|
||||
needs = ["pr.install.node.8"]
|
||||
args = "yarn run build"
|
||||
}
|
||||
|
||||
action "pr.test.node.8" {
|
||||
uses = "docker://node:8"
|
||||
needs = ["pr.build.node.8"]
|
||||
args = "yarn run test"
|
||||
}
|
||||
|
||||
# @todo node 12
|
||||
# action "pr.install.node.12" {
|
||||
# needs = ["pr.filter"]
|
||||
# uses = "docker://node:12"
|
||||
# args = "yarn install"
|
||||
# }
|
||||
|
||||
# action "pr.build.node.12" {
|
||||
# uses = "docker://node:12"
|
||||
# needs = ["pr.install.node.12"]
|
||||
# args = "yarn run build"
|
||||
# }
|
||||
|
||||
# action "pr.test.node.12" {
|
||||
# uses = "docker://node:12"
|
||||
# needs = ["pr.build.node.12"]
|
||||
# args = "yarn run test"
|
||||
# }
|
||||
|
||||
|
||||
################################################
|
||||
# Workflow for a github release when a tag is
|
||||
# pushed
|
||||
################################################
|
||||
workflow "github release" {
|
||||
resolves = [
|
||||
"release.github",
|
||||
"release.lint",
|
||||
]
|
||||
on = "push"
|
||||
}
|
||||
|
||||
action "release.filter" {
|
||||
uses = "actions/bin/filter@master"
|
||||
args = "tag v*"
|
||||
}
|
||||
|
||||
action "release:authorization" {
|
||||
needs = ["release:filter"]
|
||||
uses = "actions/bin/filter@master"
|
||||
args = ["actor", "ayusharma", "juanpicado"]
|
||||
action "release.install" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["release.filter"]
|
||||
args = "yarn install"
|
||||
}
|
||||
|
||||
action "release:publish" {
|
||||
needs = [
|
||||
"release:authorization"
|
||||
]
|
||||
action "release.build" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["release.install"]
|
||||
args = "yarn run build"
|
||||
}
|
||||
|
||||
action "release.lint" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["release.install"]
|
||||
args = "yarn run lint"
|
||||
}
|
||||
|
||||
action "release.test" {
|
||||
uses = "docker://node:10"
|
||||
needs = ["release.build"]
|
||||
args = "yarn run test"
|
||||
}
|
||||
|
||||
action "release.auth" {
|
||||
needs = ["release.test"]
|
||||
uses = "actions/bin/filter@master"
|
||||
args = ["actor", "octocat", "torvalds"]
|
||||
}
|
||||
|
||||
action "release.npm.publish" {
|
||||
needs = ["release.auth"]
|
||||
uses = "docker://node:10"
|
||||
args = "sh scripts/publish.sh"
|
||||
secrets = [
|
||||
@@ -98,11 +220,11 @@ action "release:publish" {
|
||||
}
|
||||
}
|
||||
|
||||
action "github-release" {
|
||||
needs = ["release:publish"]
|
||||
action "release.github" {
|
||||
needs = ["release.npm.publish"]
|
||||
uses = "docker://node:10"
|
||||
args = "sh scripts/github-release.sh"
|
||||
secrets = [
|
||||
"GITHUB_TOKEN",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
## npm
|
||||
/*
|
||||
!/static/*
|
||||
!/static/**/*
|
||||
!index.js
|
||||
!README.md
|
||||
|
||||
|
||||
56
CHANGELOG.md
56
CHANGELOG.md
@@ -2,6 +2,62 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
<a name="0.1.9"></a>
|
||||
## [0.1.9](https://github.com/verdaccio/ui/compare/v0.1.8...v0.1.9) (2019-05-16)
|
||||
|
||||
|
||||
|
||||
<a name="0.1.8"></a>
|
||||
## [0.1.8](https://github.com/verdaccio/ui/compare/v0.1.7...v0.1.8) (2019-05-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* use auto for overflow-y ([#57](https://github.com/verdaccio/ui/issues/57)) ([01da082](https://github.com/verdaccio/ui/commit/01da082))
|
||||
* verify validation url and email ([#60](https://github.com/verdaccio/ui/issues/60)) ([980dac5](https://github.com/verdaccio/ui/commit/980dac5))
|
||||
|
||||
|
||||
|
||||
<a name="0.1.7"></a>
|
||||
## [0.1.7](https://github.com/verdaccio/ui/compare/v0.1.6...v0.1.7) (2019-05-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* search suggestion container height ([#54](https://github.com/verdaccio/ui/issues/54)) ([c9fb3c4](https://github.com/verdaccio/ui/commit/c9fb3c4))
|
||||
|
||||
|
||||
|
||||
<a name="0.1.6"></a>
|
||||
## [0.1.6](https://github.com/verdaccio/ui/compare/v0.1.5...v0.1.6) (2019-05-07)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* pattern allow yarn to add all files on pack ([#50](https://github.com/verdaccio/ui/issues/50)) ([9ffa629](https://github.com/verdaccio/ui/commit/9ffa629))
|
||||
|
||||
|
||||
|
||||
<a name="0.1.5"></a>
|
||||
## [0.1.5](https://github.com/verdaccio/ui/compare/v0.1.4...v0.1.5) (2019-05-04)
|
||||
|
||||
|
||||
|
||||
<a name="0.1.4"></a>
|
||||
## [0.1.4](https://github.com/verdaccio/ui/compare/v0.1.3...v0.1.4) (2019-05-04)
|
||||
|
||||
|
||||
|
||||
<a name="0.1.3"></a>
|
||||
## [0.1.3](https://github.com/verdaccio/ui/compare/v0.1.2...v0.1.3) (2019-05-04)
|
||||
|
||||
|
||||
|
||||
<a name="0.1.2"></a>
|
||||
## [0.1.2](https://github.com/verdaccio/ui/compare/v0.1.1...v0.1.2) (2019-04-28)
|
||||
|
||||
|
||||
|
||||
<a name="0.1.1"></a>
|
||||
## [0.1.1](https://github.com/verdaccio/ui/compare/v0.1.0...v0.1.1) (2019-04-28)
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ module.exports = {
|
||||
collectCoverage: true,
|
||||
testEnvironment: 'jest-environment-jsdom-global',
|
||||
testURL: 'http://localhost',
|
||||
testRegex: '(test/unit/webui/.*\\.spec)\\.js',
|
||||
testRegex: '(test/unit/.*\\.spec)\\.js',
|
||||
setupFiles: [
|
||||
'./test/unit/setup.js'
|
||||
],
|
||||
@@ -35,6 +35,7 @@ module.exports = {
|
||||
'<rootDir>/build',
|
||||
],
|
||||
snapshotSerializers: [
|
||||
'enzyme-to-json/serializer',
|
||||
"jest-emotion"
|
||||
],
|
||||
coveragePathIgnorePatterns: [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/ui-theme",
|
||||
"version": "0.1.1",
|
||||
"version": "0.1.9",
|
||||
"description": "Verdaccio User Interface",
|
||||
"author": {
|
||||
"name": "Verdaccio Core Team"
|
||||
@@ -28,6 +28,7 @@
|
||||
"emotion": "9.2.12",
|
||||
"enzyme": "3.9.0",
|
||||
"enzyme-adapter-react-16": "1.10.0",
|
||||
"enzyme-to-json": "3.3.5",
|
||||
"eslint": "5.14.1",
|
||||
"eslint-config-google": "0.12.0",
|
||||
"eslint-config-prettier": "4.1.0",
|
||||
@@ -89,7 +90,8 @@
|
||||
"supertest": "3.4.2",
|
||||
"typeface-roboto": "0.0.54",
|
||||
"url-loader": "1.1.2",
|
||||
"verdaccio": "4.0.0-alpha.7",
|
||||
"validator": "10.11.0",
|
||||
"verdaccio": "next",
|
||||
"verdaccio-auth-memory": "0.0.4",
|
||||
"verdaccio-memory": "2.0.0",
|
||||
"webpack": "4.20.2",
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
yarn install
|
||||
|
||||
yarn run build
|
||||
|
||||
yarn run lint
|
||||
|
||||
yarn run test
|
||||
|
||||
13
scripts/gh_publish.sh
Executable file
13
scripts/gh_publish.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get the last tag from GitHub
|
||||
lastTag=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
|
||||
# Print it to the console for verification
|
||||
echo "Bumping version to new tag: ${lastTag}"
|
||||
|
||||
# creating .npmrc
|
||||
echo "//$REGISTRY_URL/:_authToken=$REGISTRY_AUTH_TOKEN" > .npmrc
|
||||
|
||||
# Publish to NPM
|
||||
npm publish --registry https://$REGISTRY_URL/
|
||||
@@ -6,8 +6,5 @@ lastTag=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
# Print it to the console for verification
|
||||
echo "Bumping version to new tag: ${lastTag}"
|
||||
|
||||
# creating .npmrc
|
||||
echo "//$REGISTRY_URL/:_authToken=$REGISTRY_AUTH_TOKEN" > .npmrc
|
||||
|
||||
# Publish to NPM
|
||||
npm publish --registry https://$REGISTRY_URL/
|
||||
npm publish
|
||||
|
||||
@@ -12,6 +12,7 @@ import Tooltip from '@material-ui/core/Tooltip/index';
|
||||
|
||||
import { DetailContextConsumer } from '../../pages/version/index';
|
||||
import { Fab, ActionListItem } from './styles';
|
||||
import { isURL } from '../../utils/url';
|
||||
|
||||
const ACTIONS = {
|
||||
homepage: {
|
||||
@@ -40,9 +41,6 @@ class ActionBar extends Component<any, any> {
|
||||
}
|
||||
|
||||
renderIconsWithLink(link, component) {
|
||||
if (!link) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<a href={link} target={'_blank'}>
|
||||
{component}
|
||||
@@ -61,7 +59,7 @@ class ActionBar extends Component<any, any> {
|
||||
|
||||
const renderList = Object.keys(actionsMap).reduce((component, value, key) => {
|
||||
const link = actionsMap[value];
|
||||
if (link) {
|
||||
if (link && isURL(link)) {
|
||||
const fab = <Fab size={'small'}>{ACTIONS[value]['icon']}</Fab>;
|
||||
component.push(
|
||||
<Tooltip key={key} title={ACTIONS[value]['title']}>
|
||||
|
||||
@@ -10,6 +10,7 @@ import ListItemText from '@material-ui/core/ListItemText/index';
|
||||
|
||||
import { DetailContextConsumer } from '../../pages/version/index';
|
||||
import { Heading, AuthorListItem } from './styles';
|
||||
import { isEmail } from '../../utils/url';
|
||||
|
||||
class Authors extends Component<any, any> {
|
||||
render() {
|
||||
@@ -23,9 +24,10 @@ class Authors extends Component<any, any> {
|
||||
}
|
||||
|
||||
renderLinkForMail(email, avatarComponent, packageName, version) {
|
||||
if (!email) {
|
||||
if (!email || isEmail(email) === false) {
|
||||
return avatarComponent;
|
||||
}
|
||||
|
||||
return (
|
||||
<a href={`mailto:${email}?subject=${packageName}@${version}`} target={'_top'}>
|
||||
{avatarComponent}
|
||||
|
||||
@@ -8,11 +8,10 @@ import type { Node } from 'react';
|
||||
import Autosuggest from 'react-autosuggest';
|
||||
import match from 'autosuggest-highlight/match';
|
||||
import parse from 'autosuggest-highlight/parse';
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import MenuItem from '@material-ui/core/MenuItem';
|
||||
|
||||
import { fontWeight } from '../../utils/styles/sizes';
|
||||
import { Wrapper, InputField } from './styles';
|
||||
import { Wrapper, InputField, SuggestionContainer } from './styles';
|
||||
import { IProps } from './types';
|
||||
|
||||
const renderInputComponent = (inputProps): Node => {
|
||||
@@ -110,12 +109,12 @@ const AutoComplete = ({
|
||||
// this format avoid arrow function eslint rule
|
||||
function renderSuggestionsContainer({ containerProps, children, query }) {
|
||||
return (
|
||||
<Paper {...containerProps} square={true}>
|
||||
<SuggestionContainer {...containerProps} square={true}>
|
||||
{suggestionsLoaded && children === null && query && renderMessage(SUGGESTIONS_RESPONSE.NO_RESULT)}
|
||||
{suggestionsLoading && query && renderMessage(SUGGESTIONS_RESPONSE.LOADING)}
|
||||
{suggestionsError && renderMessage(SUGGESTIONS_RESPONSE.FAILURE)}
|
||||
{children}
|
||||
</Paper>
|
||||
</SuggestionContainer>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
import React from 'react';
|
||||
import styled, { css } from 'react-emotion';
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
|
||||
import TextField from '../TextField';
|
||||
import { IInputField } from './types';
|
||||
@@ -50,3 +51,10 @@ export const InputField = ({ color, ...others }: IInputField) => (
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
export const SuggestionContainer = styled(Paper)`
|
||||
&& {
|
||||
max-height: 500px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -10,6 +10,7 @@ import Tooltip from '@material-ui/core/Tooltip';
|
||||
|
||||
import { DetailContextConsumer } from '../../pages/version';
|
||||
import { Details, Heading, Content, Fab } from './styles';
|
||||
import { isEmail } from '../../utils/url';
|
||||
|
||||
interface Props {
|
||||
type: 'contributors' | 'maintainers';
|
||||
@@ -58,7 +59,7 @@ class Developers extends Component<Props, any> {
|
||||
};
|
||||
|
||||
renderLinkForMail(email, avatarComponent, packageName, version) {
|
||||
if (!email) {
|
||||
if (!email || isEmail(email) === false) {
|
||||
return avatarComponent;
|
||||
}
|
||||
return (
|
||||
|
||||
@@ -34,6 +34,7 @@ import {
|
||||
Text,
|
||||
WrapperLink,
|
||||
} from './styles';
|
||||
import { isURL } from '../../utils/url';
|
||||
|
||||
const Package = ({
|
||||
author: { name: authorName, avatar: authorAvatar },
|
||||
@@ -92,7 +93,8 @@ const Package = ({
|
||||
);
|
||||
|
||||
const renderHomePageLink = () =>
|
||||
homepage && (
|
||||
homepage &&
|
||||
isURL(homepage) && (
|
||||
<a href={homepage} target={'_blank'}>
|
||||
<Tooltip aria-label={'Homepage'} title={'Visit homepage'}>
|
||||
<IconButton aria-label={'Homepage'}>
|
||||
@@ -104,7 +106,8 @@ const Package = ({
|
||||
);
|
||||
|
||||
const renderBugsLink = () =>
|
||||
url && (
|
||||
url &&
|
||||
isURL(url) && (
|
||||
<a href={url} target={'_blank'}>
|
||||
<Tooltip aria-label={'Bugs'} title={'Open an issue'}>
|
||||
<IconButton aria-label={'Bugs'}>
|
||||
|
||||
@@ -10,6 +10,7 @@ import CopyToClipBoard from '../CopyToClipBoard';
|
||||
|
||||
import { Heading, GithubLink, RepositoryListItem } from './styles';
|
||||
import git from './img/git.png';
|
||||
import { isURL } from '../../utils/url';
|
||||
|
||||
class Repository extends Component<any, any> {
|
||||
render() {
|
||||
@@ -33,7 +34,7 @@ class Repository extends Component<any, any> {
|
||||
} = {},
|
||||
} = packageMeta.latest;
|
||||
|
||||
if (!url) {
|
||||
if (!url || isURL(url) === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
*/
|
||||
|
||||
import { createBrowserHistory } from 'history';
|
||||
import { getBaseNamePath } from './utils/url';
|
||||
|
||||
const history = createBrowserHistory();
|
||||
const history = createBrowserHistory({
|
||||
basename: getBaseNamePath(),
|
||||
});
|
||||
|
||||
export default history;
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
<link rel="icon" type="image/png" href="<%= htmlWebpackPlugin.options.verdaccioURL %>/-/static/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<script>
|
||||
window.__VERDACCIO_BASENAME_UI_OPTIONS = JSON.parse('<%= htmlWebpackPlugin.options.__UI_OPTIONS %>');
|
||||
window.VERDACCIO_BASENAME = '<%= htmlWebpackPlugin.options.basename %>';
|
||||
window.VERDACCIO_API_URL = '<%= htmlWebpackPlugin.options.verdaccioURL %>/-/verdaccio/';
|
||||
window.VERDACCIO_SCOPE = '<%= htmlWebpackPlugin.options.scope %>';
|
||||
window.VERDACCIO_LOGO = '<%= htmlWebpackPlugin.options.logo %>';
|
||||
|
||||
@@ -1,4 +1,25 @@
|
||||
import validator from 'validator';
|
||||
|
||||
export function isURL(url) {
|
||||
return validator.isURL(url || '', {
|
||||
protocols: ['http', 'https', 'git+https'],
|
||||
require_protocol: true,
|
||||
});
|
||||
}
|
||||
|
||||
export function isEmail(email) {
|
||||
return validator.isEmail(email || '');
|
||||
}
|
||||
|
||||
export function getRegistryURL() {
|
||||
// Don't add slash if it's not a sub directory
|
||||
return `${location.origin}${location.pathname === '/' ? '' : location.pathname}`;
|
||||
}
|
||||
|
||||
export function getBaseNamePath() {
|
||||
return window.__VERDACCIO_BASENAME_UI_OPTIONS.url_prefix;
|
||||
}
|
||||
|
||||
export function getRootPath() {
|
||||
return window.__VERDACCIO_BASENAME_UI_OPTIONS.base;
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
import path from 'path';
|
||||
|
||||
export const parseConfigurationFile = (name) => {
|
||||
return path.join(__dirname, `./partials/config/yaml/${name}.yaml`);
|
||||
};
|
||||
@@ -1,11 +1,11 @@
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
import storage from '../../../src/webui/utils/storage';
|
||||
import App from '../../../src/webui/app';
|
||||
import storage from '../../src/webui/utils/storage';
|
||||
import App from '../../src/webui/app';
|
||||
|
||||
import { generateTokenWithTimeRange } from './components/__mocks__/token';
|
||||
|
||||
jest.mock('../../../src/webui/utils/storage', () => {
|
||||
jest.mock('../../src/webui/utils/storage', () => {
|
||||
class LocalStorageMock {
|
||||
constructor() {
|
||||
this.store = {};
|
||||
@@ -26,7 +26,7 @@ jest.mock('../../../src/webui/utils/storage', () => {
|
||||
return new LocalStorageMock();
|
||||
});
|
||||
|
||||
jest.mock('../../../src/webui/utils/api', () => ({
|
||||
jest.mock('../../src/webui/utils/api', () => ({
|
||||
request: require('./components/__mocks__/api').default.request
|
||||
}));
|
||||
|
||||
@@ -36,7 +36,7 @@ describe('App', () => {
|
||||
beforeEach(() => {
|
||||
wrapper = mount(<App />);
|
||||
});
|
||||
|
||||
|
||||
test('toggleLoginModal: should toggle the value in state', () => {
|
||||
const { handleToggleLoginModal } = wrapper.instance();
|
||||
expect(wrapper.state().showLoginModal).toBeFalsy();
|
||||
@@ -1,3 +1,3 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`<NotFound /> component should load the component in default state 1`] = `ShallowWrapper {}`;
|
||||
exports[`<NotFound /> component should load the component in default state 1`] = `<withRouter(WithTheme(WithWidth(NotFound))) />`;
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +1,3 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`<Search /> component test should load the component in default state 1`] = `"<div class=\\"css-1crzyyo e18292mt0\\"><div role=\\"combobox\\" aria-haspopup=\\"listbox\\" aria-owns=\\"react-autowhatever-1\\" aria-expanded=\\"false\\" class=\\"react-autosuggest__container\\"><div class=\\"MuiFormControl-root-1 MuiFormControl-fullWidth-4 react-autosuggest__input\\" aria-autocomplete=\\"list\\" aria-controls=\\"react-autowhatever-1\\"><div class=\\"MuiInputBase-root-18 MuiInput-root-5 css-n9ojyg MuiInput-underline-9 MuiInputBase-fullWidth-27 MuiInput-fullWidth-12 MuiInputBase-formControl-19 MuiInput-formControl-6 MuiInputBase-adornedStart-22\\"><div class=\\"MuiInputAdornment-root-35 MuiInputAdornment-positionStart-37\\" style=\\"color: rgb(255, 255, 255);\\"><svg class=\\"MuiSvgIcon-root-40\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path d=\\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\\"></path><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path></svg></div><input aria-invalid=\\"false\\" autocomplete=\\"off\\" class=\\"MuiInputBase-input-28 MuiInput-input-13 css-hodoyq MuiInputBase-inputAdornedStart-33\\" placeholder=\\"Search Packages\\" type=\\"text\\" value=\\"\\"></div></div><div class=\\"MuiPaper-root-49 MuiPaper-elevation2-53 react-autosuggest__suggestions-container\\" id=\\"react-autowhatever-1\\" role=\\"listbox\\"></div></div></div>"`;
|
||||
exports[`<Search /> component test should load the component in default state 1`] = `"<div class=\\"css-1crzyyo e18292mt0\\"><div role=\\"combobox\\" aria-haspopup=\\"listbox\\" aria-owns=\\"react-autowhatever-1\\" aria-expanded=\\"false\\" class=\\"react-autosuggest__container\\"><div class=\\"MuiFormControl-root-1 MuiFormControl-fullWidth-4 react-autosuggest__input\\" aria-autocomplete=\\"list\\" aria-controls=\\"react-autowhatever-1\\"><div class=\\"MuiInputBase-root-18 MuiInput-root-5 css-n9ojyg MuiInput-underline-9 MuiInputBase-fullWidth-27 MuiInput-fullWidth-12 MuiInputBase-formControl-19 MuiInput-formControl-6 MuiInputBase-adornedStart-22\\"><div class=\\"MuiInputAdornment-root-35 MuiInputAdornment-positionStart-37\\" style=\\"color: rgb(255, 255, 255);\\"><svg class=\\"MuiSvgIcon-root-40\\" focusable=\\"false\\" viewBox=\\"0 0 24 24\\" aria-hidden=\\"true\\" role=\\"presentation\\"><path d=\\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\\"></path><path fill=\\"none\\" d=\\"M0 0h24v24H0z\\"></path></svg></div><input aria-invalid=\\"false\\" autocomplete=\\"off\\" class=\\"MuiInputBase-input-28 MuiInput-input-13 css-hodoyq MuiInputBase-inputAdornedStart-33\\" placeholder=\\"Search Packages\\" type=\\"text\\" value=\\"\\"></div></div><div class=\\"MuiPaper-root-49 MuiPaper-elevation2-53 react-autosuggest__suggestions-container css-cfo6a e18292mt1\\" id=\\"react-autowhatever-1\\" role=\\"listbox\\"></div></div></div>"`;
|
||||
@@ -6,8 +6,8 @@
|
||||
import React from 'react';
|
||||
import { shallow } from 'enzyme';
|
||||
|
||||
import CopyToClipBoard from '../../../../src/webui/components/CopyToClipBoard';
|
||||
import { CopyIcon } from '../../../../src/webui/components/CopyToClipBoard/styles';
|
||||
import CopyToClipBoard from '../../../src/webui/components/CopyToClipBoard/index';
|
||||
import { CopyIcon } from '../../../src/webui/components/CopyToClipBoard/styles';
|
||||
|
||||
describe('<CopyToClipBoard /> component', () => {
|
||||
let wrapper;
|
||||
@@ -2,9 +2,9 @@
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
|
||||
import Footer from '../../../../src/webui/components/Footer/index';
|
||||
import Footer from '../../../src/webui/components/Footer/index';
|
||||
|
||||
jest.mock('../../../../package.json', () => ({
|
||||
jest.mock('../../../package.json', () => ({
|
||||
version: '4.0.0-alpha.3'
|
||||
}));
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import React from 'react';
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import { shallow } from 'enzyme';
|
||||
import Header from '../../../../src/webui/components/Header';
|
||||
import Header from '../../../src/webui/components/Header/index';
|
||||
|
||||
describe('<Header /> component with logged in state', () => {
|
||||
let wrapper;
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
import React from 'react';
|
||||
import { shallow } from 'enzyme';
|
||||
import Help from '../../../../src/webui/components/Help/index';
|
||||
import Help from '../../../src/webui/components/Help/index';
|
||||
|
||||
describe('<Help /> component', () => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
|
||||
import LoginModal from '../../../../src/webui/components/Login';
|
||||
import LoginModal from '../../../src/webui/components/Login/index';
|
||||
|
||||
const eventUsername = {
|
||||
target: {
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
import React from 'react';
|
||||
import { shallow, mount } from 'enzyme';
|
||||
import NoItems from '../../../../src/webui/components/NoItems/index';
|
||||
import NoItems from '../../../src/webui/components/NoItems/index';
|
||||
|
||||
console.error = jest.fn();
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import React from 'react';
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import { shallow } from 'enzyme';
|
||||
import NotFound from '../../../../src/webui/components/NotFound/index';
|
||||
import NotFound from '../../../src/webui/components/NotFound/index';
|
||||
|
||||
console.error = jest.fn();
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
import React from 'react';
|
||||
import { shallow } from 'enzyme';
|
||||
import Package from '../../../../src/webui/components/Package/index';
|
||||
import Tag from '../../../../src/webui/components/Tag/index';
|
||||
import { Version, WrapperLink, Field, OverviewItem } from '../../../../src/webui/components/Package/styles';
|
||||
import Package from '../../../src/webui/components/Package/index';
|
||||
import Tag from '../../../src/webui/components/Tag/index';
|
||||
import { Version, WrapperLink, Field, OverviewItem } from '../../../src/webui/components/Package/styles';
|
||||
|
||||
|
||||
/**
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
import PackageList from '../../../../src/webui/components/PackageList/index';
|
||||
import Help from '../../../../src/webui/components/Help/index';
|
||||
import PackageList from '../../../src/webui/components/PackageList/index';
|
||||
import Help from '../../../src/webui/components/Help/index';
|
||||
import { BrowserRouter } from 'react-router-dom';
|
||||
|
||||
describe('<PackageList /> component', () => {
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
import React from 'react';
|
||||
import { shallow, mount } from 'enzyme';
|
||||
import Readme from '../../../../src/webui/components/Readme/index';
|
||||
import Readme from '../../../src/webui/components/Readme/index';
|
||||
|
||||
describe('<Readme /> component', () => {
|
||||
test('should load the component in default state', () => {
|
||||
@@ -6,11 +6,11 @@
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
|
||||
import { Search } from '../../../../src/webui/components/Search/index';
|
||||
import { Search } from '../../../src/webui/components/Search/index';
|
||||
|
||||
const SEARCH_FILE_PATH = '../../../../src/webui/components/Search/index';
|
||||
const API_FILE_PATH = '../../../../src/webui/utils/api';
|
||||
const URL_FILE_PATH = '../../../../src/webui/utils/url';
|
||||
const SEARCH_FILE_PATH = '../../../src/webui/components/Search/index';
|
||||
const API_FILE_PATH = '../../../src/webui/utils/api';
|
||||
const URL_FILE_PATH = '../../../src/webui/utils/url';
|
||||
|
||||
// Global mocks
|
||||
const event = {
|
||||
@@ -1,4 +1,4 @@
|
||||
import {API_ERROR} from '../../../../../src/lib/constants';
|
||||
import {API_ERROR} from '../../../../src/lib/constants';
|
||||
/**
|
||||
* API mock for login endpoint
|
||||
* @param {object} config configuration of api call
|
||||
@@ -10,6 +10,7 @@ import Adapter from 'enzyme-adapter-react-16';
|
||||
configure({ adapter: new Adapter() });
|
||||
|
||||
global.__APP_VERSION__ = '1.0.0';
|
||||
global.__VERDACCIO_BASENAME_UI_OPTIONS = {};
|
||||
|
||||
// mocking few DOM methods
|
||||
if (global.document) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { isTokenExpire, makeLogin } from '../../../../src/webui/utils/login';
|
||||
import { isTokenExpire, makeLogin } from '../../../src/webui/utils/login';
|
||||
|
||||
import {
|
||||
generateTokenWithTimeRange,
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
formatDateDistance,
|
||||
getLastUpdatedPackageTime,
|
||||
getRecentReleases
|
||||
} from '../../../../src/webui/utils/package';
|
||||
} from '../../../src/webui/utils/package';
|
||||
|
||||
import { packageMeta } from '../components/store/packageMeta';
|
||||
|
||||
@@ -52,13 +52,22 @@ describe('formatDate', () => {
|
||||
|
||||
describe('formatDateDistance', () => {
|
||||
test('should calculate the distance', () => {
|
||||
// const dateAboutTwoMonthsAgo = () => {
|
||||
// const date = new Date();
|
||||
// date.setMonth(date.getMonth() - 1);
|
||||
// date.setDate(date.getDay() - 20);
|
||||
// return date;
|
||||
// };
|
||||
const dateTwoMonthsAgo = () => {
|
||||
const date = new Date();
|
||||
date.setMonth(date.getMonth() - 2);
|
||||
return date;
|
||||
};
|
||||
const date = dateTwoMonthsAgo();
|
||||
expect(formatDateDistance(date)).toEqual('about 2 months');
|
||||
// const date1 = dateAboutTwoMonthsAgo();
|
||||
const date2 = dateTwoMonthsAgo();
|
||||
// FIXME: we need to review this expect, fails every x time.
|
||||
// expect(formatDateDistance(date1)).toEqual('about 2 months');
|
||||
expect(formatDateDistance(date2)).toEqual('2 months');
|
||||
});
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -7,6 +7,7 @@ module.exports = {
|
||||
output: {
|
||||
path: `${env.APP_ROOT}/static/`,
|
||||
filename: '[name].[hash].js',
|
||||
// FIXME: do we need this?
|
||||
publicPath: 'ToReplaceByVerdaccio/-/static',
|
||||
},
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ export default {
|
||||
__APP_VERSION__: `"${getPackageJson('version')}"`,
|
||||
}),
|
||||
new HTMLWebpackPlugin({
|
||||
__UI_OPTIONS: JSON.stringify({base: '/'}),
|
||||
title: 'Verdaccio Dev UI',
|
||||
scope: '',
|
||||
logo: 'https://verdaccio.org/img/logo/symbol/svg/verdaccio-tiny.svg',
|
||||
|
||||
@@ -45,7 +45,9 @@ const prodConf = {
|
||||
}),
|
||||
new HTMLWebpackPlugin({
|
||||
title: 'ToReplaceByTitle',
|
||||
__UI_OPTIONS: 'ToReplaceByVerdaccioUI',
|
||||
scope: 'ToReplaceByScope',
|
||||
basename: 'ToReplaceByPrefix',
|
||||
logo: 'ToReplaceByLogo',
|
||||
primary_color: 'ToReplaceByPrimaryColor',
|
||||
filename: 'index.html',
|
||||
|
||||
177
yarn.lock
177
yarn.lock
@@ -1606,10 +1606,10 @@
|
||||
resolved "https://registry.npmjs.org/@verdaccio/types/-/types-5.0.0-beta.4.tgz#433a36bef5b3bbd31711c48071989ac35dc83e54"
|
||||
integrity sha512-aPrCUrFMXo/ikgT/9YEAr5EDlH2gFJGfdrUra2ipQxV3SbNrRN95KxwwSDS+W+YKG0+rAIQKIxnx8hf6gEtePQ==
|
||||
|
||||
"@verdaccio/ui-theme@0.0.4":
|
||||
version "0.0.4"
|
||||
resolved "https://registry.npmjs.org/@verdaccio/ui-theme/-/ui-theme-0.0.4.tgz#6e7eb3f568d104985f0cf7a982c2a8ece67627b6"
|
||||
integrity sha512-jsbTG9rIyC45dnDgvdWDJBZb9Xu4MDJ6cA0gwcNLyP0IIxT0dnTu4bZ/OUsXq8L6kncx4yCqqnCCZ7ChiBXhlw==
|
||||
"@verdaccio/ui-theme@0.1.6":
|
||||
version "0.1.6"
|
||||
resolved "https://registry.verdaccio.org/@verdaccio%2fui-theme/-/ui-theme-0.1.6.tgz#2e5b7bd745c0e08e934feffd5de41ca5b444fd92"
|
||||
integrity sha512-C9y+tf+R0uZqStg7t2k8Fx2OcYMdLL/FUMeuCAbVNLHkGlG9Te99t3+gbthTnxTnDvhNBkK65+DrFOax2S7GSA==
|
||||
|
||||
"@webassemblyjs/ast@1.7.8":
|
||||
version "1.7.8"
|
||||
@@ -2676,6 +2676,22 @@ body-parser@1.18.3:
|
||||
raw-body "2.3.3"
|
||||
type-is "~1.6.16"
|
||||
|
||||
body-parser@1.19.0:
|
||||
version "1.19.0"
|
||||
resolved "https://registry.verdaccio.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
|
||||
integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
|
||||
dependencies:
|
||||
bytes "3.1.0"
|
||||
content-type "~1.0.4"
|
||||
debug "2.6.9"
|
||||
depd "~1.1.2"
|
||||
http-errors "1.7.2"
|
||||
iconv-lite "0.4.24"
|
||||
on-finished "~2.3.0"
|
||||
qs "6.7.0"
|
||||
raw-body "2.4.0"
|
||||
type-is "~1.6.17"
|
||||
|
||||
bonjour@^3.5.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
|
||||
@@ -2927,7 +2943,7 @@ bytes@3.0.0:
|
||||
resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
||||
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
|
||||
|
||||
bytes@^3.0.0:
|
||||
bytes@3.1.0, bytes@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
||||
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
|
||||
@@ -3110,15 +3126,6 @@ chalk@2.3.1:
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.2.0"
|
||||
|
||||
chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||
dependencies:
|
||||
ansi-styles "^3.2.1"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chalk@^1.1.1, chalk@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
|
||||
@@ -3130,6 +3137,15 @@ chalk@^1.1.1, chalk@^1.1.3:
|
||||
strip-ansi "^3.0.0"
|
||||
supports-color "^2.0.0"
|
||||
|
||||
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||
dependencies:
|
||||
ansi-styles "^3.2.1"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
change-emitter@^0.1.2:
|
||||
version "0.1.6"
|
||||
resolved "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515"
|
||||
@@ -4265,6 +4281,11 @@ dateformat@^3.0.0:
|
||||
resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
||||
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
|
||||
|
||||
dayjs@1.8.13:
|
||||
version "1.8.13"
|
||||
resolved "https://registry.verdaccio.org/dayjs/-/dayjs-1.8.13.tgz#51b5cdad23ba508bcea939a853b492fefb7fdc47"
|
||||
integrity sha512-JZ01l/PMU8OqwuUs2mOQ/CTekMtoXOUSylfjqjgDzbhRSxpFIrPnHn8Y8a0lfocNgAdBNZb8y0/gbzJ2riQ4WQ==
|
||||
|
||||
debounce@^1.1.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131"
|
||||
@@ -4771,6 +4792,13 @@ enzyme-adapter-utils@^1.10.0:
|
||||
prop-types "^15.7.2"
|
||||
semver "^5.6.0"
|
||||
|
||||
enzyme-to-json@3.3.5:
|
||||
version "3.3.5"
|
||||
resolved "https://registry.verdaccio.org/enzyme-to-json/-/enzyme-to-json-3.3.5.tgz#f8eb82bd3d5941c9d8bc6fd9140030777d17d0af"
|
||||
integrity sha512-DmH1wJ68HyPqKSYXdQqB33ZotwfUhwQZW3IGXaNXgR69Iodaoj8TF/D9RjLdz4pEhGq2Tx2zwNUIjBuqoZeTgA==
|
||||
dependencies:
|
||||
lodash "^4.17.4"
|
||||
|
||||
enzyme@3.9.0:
|
||||
version "3.9.0"
|
||||
resolved "https://registry.npmjs.org/enzyme/-/enzyme-3.9.0.tgz#2b491f06ca966eb56b6510068c7894a7e0be3909"
|
||||
@@ -6038,7 +6066,7 @@ global-prefix@^3.0.0:
|
||||
kind-of "^6.0.2"
|
||||
which "^1.3.1"
|
||||
|
||||
global@4.3.2, global@^4.3.0:
|
||||
global@^4.3.0:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
|
||||
integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
|
||||
@@ -6133,7 +6161,18 @@ handle-thing@^2.0.0:
|
||||
resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
|
||||
integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
|
||||
|
||||
handlebars@4.1.1, handlebars@^4.0.2, handlebars@^4.1.0:
|
||||
handlebars@4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.verdaccio.org/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67"
|
||||
integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==
|
||||
dependencies:
|
||||
neo-async "^2.6.0"
|
||||
optimist "^0.6.1"
|
||||
source-map "^0.6.1"
|
||||
optionalDependencies:
|
||||
uglify-js "^3.1.4"
|
||||
|
||||
handlebars@^4.0.2, handlebars@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz#6e4e41c18ebe7719ae4d38e5aca3d32fa3dd23d3"
|
||||
integrity sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==
|
||||
@@ -6423,17 +6462,6 @@ http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
|
||||
setprototypeof "1.1.0"
|
||||
statuses ">= 1.4.0 < 2"
|
||||
|
||||
http-errors@1.7.1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.1.tgz#6a4ffe5d35188e1c39f872534690585852e1f027"
|
||||
integrity sha512-jWEUgtZWGSMba9I1N3gc1HmvpBUaNC9vDdA46yScAdp+C5rdEuKWUBLWTQpW9FwSWSbYYs++b6SDCxf9UEJzfw==
|
||||
dependencies:
|
||||
depd "~1.1.2"
|
||||
inherits "2.0.3"
|
||||
setprototypeof "1.1.0"
|
||||
statuses ">= 1.5.0 < 2"
|
||||
toidentifier "1.0.0"
|
||||
|
||||
http-errors@1.7.2:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
|
||||
@@ -7659,7 +7687,7 @@ jest@24.1.0:
|
||||
import-local "^2.0.0"
|
||||
jest-cli "^24.1.0"
|
||||
|
||||
js-base64@2.5.1, js-base64@^2.1.8, js-base64@^2.1.9:
|
||||
js-base64@^2.1.8, js-base64@^2.1.9:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
|
||||
integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==
|
||||
@@ -7669,11 +7697,6 @@ js-levenshtein@^1.1.3:
|
||||
resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
|
||||
integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
|
||||
|
||||
js-string-escape@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
|
||||
integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=
|
||||
|
||||
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||
@@ -7940,7 +7963,7 @@ kind-of@^6.0.0, kind-of@^6.0.2:
|
||||
resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
|
||||
integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
|
||||
|
||||
kleur@^3.0.2:
|
||||
kleur@3.0.3, kleur@^3.0.2:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
|
||||
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
|
||||
@@ -8518,6 +8541,11 @@ miller-rabin@^4.0.0:
|
||||
bn.js "^4.0.0"
|
||||
brorand "^1.0.1"
|
||||
|
||||
mime-db@1.40.0:
|
||||
version "1.40.0"
|
||||
resolved "https://registry.verdaccio.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
|
||||
integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
|
||||
|
||||
"mime-db@>= 1.38.0 < 2":
|
||||
version "1.39.0"
|
||||
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.39.0.tgz#f95a20275742f7d2ad0429acfe40f4233543780e"
|
||||
@@ -8535,26 +8563,28 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19:
|
||||
dependencies:
|
||||
mime-db "~1.38.0"
|
||||
|
||||
mime-types@~2.1.24:
|
||||
version "2.1.24"
|
||||
resolved "https://registry.verdaccio.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
|
||||
integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
|
||||
dependencies:
|
||||
mime-db "1.40.0"
|
||||
|
||||
mime@1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
|
||||
integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
|
||||
|
||||
mime@2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.npmjs.org/mime/-/mime-2.4.1.tgz#19eb7357bebbda37df585b14038347721558c715"
|
||||
integrity sha512-VRUfmQO0rCd3hKwBymAn3kxYzBHr3I/wdVMywgG3HhXOwrCQgN84ZagpdTm2tZ4TNtwsSmyJWYO88mb5XvzGqQ==
|
||||
mime@2.4.2, mime@^2.0.3, mime@^2.3.1:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78"
|
||||
integrity sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==
|
||||
|
||||
mime@^1.3.4, mime@^1.4.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
||||
|
||||
mime@^2.0.3, mime@^2.3.1:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78"
|
||||
integrity sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==
|
||||
|
||||
mimic-fn@^1.0.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
|
||||
@@ -10652,7 +10682,7 @@ qs@6.5.2, qs@~6.5.2:
|
||||
resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
|
||||
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
|
||||
|
||||
qs@^6.5.1:
|
||||
qs@6.7.0, qs@^6.5.1:
|
||||
version "6.7.0"
|
||||
resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
||||
integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
|
||||
@@ -10749,6 +10779,16 @@ raw-body@2.3.3:
|
||||
iconv-lite "0.4.23"
|
||||
unpipe "1.0.0"
|
||||
|
||||
raw-body@2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.verdaccio.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
|
||||
integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
|
||||
dependencies:
|
||||
bytes "3.1.0"
|
||||
http-errors "1.7.2"
|
||||
iconv-lite "0.4.24"
|
||||
unpipe "1.0.0"
|
||||
|
||||
rc@^1.1.6, rc@^1.2.7:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
||||
@@ -12825,6 +12865,14 @@ type-is@^1.6.16, type-is@~1.6.16:
|
||||
media-typer "0.3.0"
|
||||
mime-types "~2.1.18"
|
||||
|
||||
type-is@~1.6.17:
|
||||
version "1.6.18"
|
||||
resolved "https://registry.verdaccio.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
||||
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
|
||||
dependencies:
|
||||
media-typer "0.3.0"
|
||||
mime-types "~2.1.24"
|
||||
|
||||
typedarray@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
@@ -13149,6 +13197,11 @@ validate-npm-package-license@^3.0.1:
|
||||
spdx-correct "^3.0.0"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
|
||||
validator@10.11.0:
|
||||
version "10.11.0"
|
||||
resolved "https://registry.verdaccio.org/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228"
|
||||
integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==
|
||||
|
||||
value-equal@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
|
||||
@@ -13177,15 +13230,15 @@ verdaccio-auth-memory@0.0.4:
|
||||
resolved "https://registry.npmjs.org/verdaccio-auth-memory/-/verdaccio-auth-memory-0.0.4.tgz#b44a65209778a8dc3c8d39478141a0bc22e04375"
|
||||
integrity sha512-0k/RHK1XNmrPiuIbVHMo0I2ggYEwOqNUobgUQlVCTDSoUPS8jxL3MNdcCI2lPfY79G9NzsOKuVwWCXHbIWtH7A==
|
||||
|
||||
verdaccio-htpasswd@2.0.0-beta.1:
|
||||
version "2.0.0-beta.1"
|
||||
resolved "https://registry.npmjs.org/verdaccio-htpasswd/-/verdaccio-htpasswd-2.0.0-beta.1.tgz#26a4b5900a9d4048993ed5fccb3334c6bfca77c4"
|
||||
integrity sha512-UipSN6NJLkgl3EWYBFA2cgv6q6lgnZMJECJFEaJEDoNnms18Eqfewy/EKtOfycT0u9EZILuOIjwnjfMoYjVXhA==
|
||||
verdaccio-htpasswd@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.verdaccio.org/verdaccio-htpasswd/-/verdaccio-htpasswd-2.0.0.tgz#cd517dca1d3cee8a46e6ed59b9b9693acb6d9b1f"
|
||||
integrity sha512-HI6AvstmpkyQp6mHHbCVrSu1rOFq/FND2V4gM7EhUtmOAoJjOmZENVGT87ZNf2mTQq8P4MRnfypBIjfutI3BAg==
|
||||
dependencies:
|
||||
"@verdaccio/file-locking" "1.0.0"
|
||||
apache-md5 "1.1.2"
|
||||
bcryptjs "2.4.3"
|
||||
http-errors "1.7.1"
|
||||
http-errors "1.7.2"
|
||||
unix-crypt-td-js "1.0.0"
|
||||
|
||||
verdaccio-memory@2.0.0:
|
||||
@@ -13197,37 +13250,33 @@ verdaccio-memory@2.0.0:
|
||||
http-errors "1.7.2"
|
||||
memory-fs "0.4.1"
|
||||
|
||||
verdaccio@4.0.0-alpha.7:
|
||||
version "4.0.0-alpha.7"
|
||||
resolved "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.7.tgz#2fda3d341b326c94d3e6b134cdd8311dd8fcb7ea"
|
||||
integrity sha512-3WjtsZbE6qsuetdczZXbQPZq1sSGOeLhdXvkiW8RIu6nxa7MdgTcuijPzNtp6DekVAjyTN6QW8YCWl1FbNu+wg==
|
||||
verdaccio@next:
|
||||
version "4.0.0-beta.8"
|
||||
resolved "https://registry.verdaccio.org/verdaccio/-/verdaccio-4.0.0-beta.8.tgz#1c5682d02ee052f84d6e3db466a52349e521b1a0"
|
||||
integrity sha512-eFqR9H1A5gcKm+gbg16zO4DRzXCKGVl4F3LuXjNnBOr1a1W1imuZ25uESZIq0yv4H2OBs4ZLAp9CoXbqnQ2GAg==
|
||||
dependencies:
|
||||
"@verdaccio/local-storage" "2.1.0"
|
||||
"@verdaccio/streams" "2.0.0"
|
||||
"@verdaccio/ui-theme" "0.0.4"
|
||||
"@verdaccio/ui-theme" "0.1.6"
|
||||
JSONStream "1.3.5"
|
||||
async "3.0.1-0"
|
||||
body-parser "1.18.3"
|
||||
body-parser "1.19.0"
|
||||
bunyan "1.8.12"
|
||||
chalk "2.4.2"
|
||||
commander "2.20.0"
|
||||
compression "1.7.4"
|
||||
cookies "0.7.3"
|
||||
cors "2.8.5"
|
||||
date-fns "1.30.1"
|
||||
dayjs "1.8.13"
|
||||
express "4.16.4"
|
||||
global "4.3.2"
|
||||
handlebars "4.1.1"
|
||||
handlebars "4.1.2"
|
||||
http-errors "1.7.2"
|
||||
js-base64 "2.5.1"
|
||||
js-string-escape "1.0.1"
|
||||
js-yaml "3.13.1"
|
||||
jsonwebtoken "8.5.1"
|
||||
lockfile "1.0.4"
|
||||
kleur "3.0.3"
|
||||
lodash "4.17.11"
|
||||
lunr-mutable-indexes "2.3.2"
|
||||
marked "0.6.2"
|
||||
mime "2.4.1"
|
||||
mime "2.4.2"
|
||||
minimatch "3.0.4"
|
||||
mkdirp "0.5.1"
|
||||
mv "2.1.1"
|
||||
@@ -13235,7 +13284,7 @@ verdaccio@4.0.0-alpha.7:
|
||||
request "2.88.0"
|
||||
semver "6.0.0"
|
||||
verdaccio-audit "1.2.0"
|
||||
verdaccio-htpasswd "2.0.0-beta.1"
|
||||
verdaccio-htpasswd "2.0.0"
|
||||
|
||||
verror@1.10.0:
|
||||
version "1.10.0"
|
||||
|
||||
Reference in New Issue
Block a user