mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-20 17:05:52 +01:00
improve website contributors page docusaurus (#2701)
This commit is contained in:
parent
980b09e40c
commit
21ddd12166
8
.github/workflows/website.yml
vendored
8
.github/workflows/website.yml
vendored
@ -47,7 +47,8 @@ jobs:
|
||||
run_install: |
|
||||
- recursive: true
|
||||
args: [--frozen-lockfile]
|
||||
|
||||
- name: Build Plugins
|
||||
run: pnpm build --filter "docusaurus-plugin-contributors"
|
||||
- name: Lint And Pretty
|
||||
run: |
|
||||
pnpm eslint:check --filter ...@verdaccio/website
|
||||
@ -82,13 +83,11 @@ jobs:
|
||||
|
||||
# Will deploy to Preview URL, only when a pull request is open with changes on the website
|
||||
- name: Build Deployment Preview
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
env:
|
||||
CONTEXT: deploy-preview
|
||||
run: pnpm netlify:build:deployPreview --filter ...@verdaccio/website
|
||||
|
||||
- name: 🤖 Deploy Preview Netlify
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
uses: semoal/action-netlify-deploy@master
|
||||
id: netlify_preview
|
||||
with:
|
||||
@ -102,7 +101,6 @@ jobs:
|
||||
build-dir: './website/build'
|
||||
|
||||
- name: Audit preview URL with Lighthouse
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
id: lighthouse_audit
|
||||
uses: treosh/lighthouse-ci-action@v3
|
||||
with:
|
||||
@ -112,7 +110,6 @@ jobs:
|
||||
temporaryPublicStorage: true
|
||||
|
||||
- name: Format lighthouse score
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
id: format_lighthouse_score
|
||||
uses: actions/github-script@v3
|
||||
with:
|
||||
@ -137,7 +134,6 @@ jobs:
|
||||
core.setOutput("comment", comment);
|
||||
|
||||
- name: Add comment to PR
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
id: comment_to_pr
|
||||
uses: marocchino/sticky-pull-request-comment@v1
|
||||
with:
|
||||
|
3
packages/tools/docusaurus-plugin-contributors/.babelrc
Normal file
3
packages/tools/docusaurus-plugin-contributors/.babelrc
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "../../../.babelrc"
|
||||
}
|
10
packages/tools/docusaurus-plugin-contributors/README.md
Normal file
10
packages/tools/docusaurus-plugin-contributors/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Contributors Page for Docusaurus Website
|
||||
|
||||
[https://verdaccio.org/contributors](https://verdaccio.org/contributors)
|
||||
|
||||
It generates a dynamic page to render contributors based on a source file `contributors.json` file.
|
||||
|
||||
> The source file is generated by a GitHub Action schedumed to fetch all new contributors
|
||||
> or new changes in an specific period of time, please don't modify it.
|
||||
|
||||
**Kudos to @dianmora** for building a library to fetch [contributors data](https://github.com/dianmorales/contributors).
|
27
packages/tools/docusaurus-plugin-contributors/package.json
Normal file
27
packages/tools/docusaurus-plugin-contributors/package.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "docusaurus-plugin-contributors",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"main": "./build/index.js",
|
||||
"types": "build/index.d.ts",
|
||||
"dependencies": {
|
||||
"@docusaurus/types": "2.0.0-beta.9",
|
||||
"@docusaurus/utils": "2.0.0-beta.9"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "rimraf ./build",
|
||||
"build": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
7182
packages/tools/docusaurus-plugin-contributors/src/contributors.json
Normal file
7182
packages/tools/docusaurus-plugin-contributors/src/contributors.json
Normal file
File diff suppressed because it is too large
Load Diff
62
packages/tools/docusaurus-plugin-contributors/src/index.ts
Normal file
62
packages/tools/docusaurus-plugin-contributors/src/index.ts
Normal file
@ -0,0 +1,62 @@
|
||||
/* eslint-disable no-console */
|
||||
import { LoadContext, Plugin } from '@docusaurus/types';
|
||||
import { normalizeUrl } from '@docusaurus/utils';
|
||||
import { readFileSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
|
||||
export interface PluginOptions {
|
||||
debug?: boolean;
|
||||
pathFileName?: string;
|
||||
}
|
||||
|
||||
export const DEFAULT_OPTIONS: PluginOptions = {
|
||||
debug: false,
|
||||
};
|
||||
|
||||
export default function contributorsPlugin(
|
||||
context: LoadContext,
|
||||
opts: PluginOptions
|
||||
): Plugin<Record<string, unknown> | null> {
|
||||
const { baseUrl } = context.siteConfig;
|
||||
const options: PluginOptions = { ...DEFAULT_OPTIONS, ...opts };
|
||||
const { pathFileName, debug = true } = options;
|
||||
if (debug) {
|
||||
console.log('[CONTRIBUTORS_PLUGIN] Opts Input:', opts);
|
||||
console.log('[CONTRIBUTORS_PLUGIN] Options:', options);
|
||||
}
|
||||
return {
|
||||
name: 'docusaurus-plugin-contributors',
|
||||
async loadContent() {
|
||||
let content: Record<string, unknown> | null = null;
|
||||
const contributorsFilesName = pathFileName || join(__dirname, 'contributors.json');
|
||||
try {
|
||||
content = JSON.parse(readFileSync(contributorsFilesName, 'utf8'));
|
||||
console.log('content', content);
|
||||
return content;
|
||||
} catch (error) {
|
||||
console.log('error', error);
|
||||
return { error: true };
|
||||
}
|
||||
},
|
||||
async contentLoaded({ content, actions }) {
|
||||
const { createData, addRoute } = actions;
|
||||
if (!content) {
|
||||
return;
|
||||
}
|
||||
const contributorsJsonPath = await createData('contributors.json', JSON.stringify(content));
|
||||
const routeOptions = {
|
||||
path: normalizeUrl([baseUrl, 'contributors']),
|
||||
component: '@site/src/components/Contributors.tsx',
|
||||
modules: {
|
||||
contributors: contributorsJsonPath,
|
||||
},
|
||||
exact: true,
|
||||
};
|
||||
if (debug) {
|
||||
console.error('[CONTRIBUTORS_PLUGIN] Route:', routeOptions);
|
||||
}
|
||||
// @ts-ignore
|
||||
addRoute(routeOptions);
|
||||
},
|
||||
};
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./build"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["src/**/*.test.ts"]
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "../../tsconfig.reference.json",
|
||||
"compilerOptions": {
|
||||
"rootDir": "./src",
|
||||
"outDir": "./build"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["src/**/*.test.ts"]
|
||||
}
|
409
pnpm-lock.yaml
generated
409
pnpm-lock.yaml
generated
@ -1076,6 +1076,14 @@ importers:
|
||||
node-fetch: 3.0.0-beta.6-exportfix
|
||||
ts-node: 10.2.1_6fc948d4599a6d595975f0dd8328fd81
|
||||
|
||||
packages/tools/docusaurus-plugin-contributors:
|
||||
specifiers:
|
||||
'@docusaurus/types': 2.0.0-beta.9
|
||||
'@docusaurus/utils': 2.0.0-beta.9
|
||||
dependencies:
|
||||
'@docusaurus/types': 2.0.0-beta.9
|
||||
'@docusaurus/utils': 2.0.0-beta.9
|
||||
|
||||
packages/tools/eslint:
|
||||
specifiers:
|
||||
eslint-config-google: 0.14.0
|
||||
@ -1284,10 +1292,13 @@ importers:
|
||||
'@docusaurus/preset-classic': 2.0.0-beta.9
|
||||
'@docusaurus/remark-plugin-npm2yarn': 2.0.0-beta.9
|
||||
'@docusaurus/theme-search-algolia': 2.0.0-beta.9
|
||||
'@material-ui/core': ^4.11.2
|
||||
'@material-ui/icons': ^4.11.2
|
||||
'@mdx-js/react': ^1.6.22
|
||||
'@tsconfig/docusaurus': ^1.0.2
|
||||
clsx: ^1.1.1
|
||||
copy-text-to-clipboard: ^3.0.1
|
||||
docusaurus-plugin-contributors: workspace:1.0.0
|
||||
docusaurus-plugin-sass: ^0.2.1
|
||||
docusaurus-plugin-sentry: ^1.0.0
|
||||
esbuild: 0.12.25
|
||||
@ -1306,9 +1317,12 @@ importers:
|
||||
'@docusaurus/preset-classic': 2.0.0-beta.9_7e7c414ddb9e6b9f608031ec5eab6c84
|
||||
'@docusaurus/remark-plugin-npm2yarn': 2.0.0-beta.9_react-dom@17.0.2+react@17.0.2
|
||||
'@docusaurus/theme-search-algolia': 2.0.0-beta.9_7e7c414ddb9e6b9f608031ec5eab6c84
|
||||
'@material-ui/core': 4.12.3_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/icons': 4.11.2_fced322086cd04afb0b6feec9e866920
|
||||
'@mdx-js/react': 1.6.22_react@17.0.2
|
||||
clsx: 1.1.1
|
||||
copy-text-to-clipboard: 3.0.1
|
||||
docusaurus-plugin-contributors: link:../packages/tools/docusaurus-plugin-contributors
|
||||
docusaurus-plugin-sentry: 1.0.0_95f6b737b4bc0d4236201ee71b37c46d
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
@ -1506,14 +1520,14 @@ packages:
|
||||
resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.15.8
|
||||
'@babel/generator': 7.15.8
|
||||
'@babel/helper-module-transforms': 7.15.8
|
||||
'@babel/helpers': 7.15.4
|
||||
'@babel/parser': 7.15.8
|
||||
'@babel/template': 7.15.4
|
||||
'@babel/traverse': 7.15.4
|
||||
'@babel/types': 7.15.6
|
||||
'@babel/code-frame': 7.16.0
|
||||
'@babel/generator': 7.16.0
|
||||
'@babel/helper-module-transforms': 7.16.0
|
||||
'@babel/helpers': 7.16.3
|
||||
'@babel/parser': 7.16.3
|
||||
'@babel/template': 7.16.0
|
||||
'@babel/traverse': 7.16.3
|
||||
'@babel/types': 7.16.0
|
||||
convert-source-map: 1.7.0
|
||||
debug: 4.3.2
|
||||
gensync: 1.0.0-beta.2
|
||||
@ -2063,7 +2077,6 @@ packages:
|
||||
'@babel/types': 7.16.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/helper-optimise-call-expression/7.15.4:
|
||||
resolution: {integrity: sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==}
|
||||
@ -2234,7 +2247,6 @@ packages:
|
||||
'@babel/types': 7.16.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/highlight/7.14.5:
|
||||
resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==}
|
||||
@ -2682,7 +2694,7 @@ packages:
|
||||
'@babel/core': 7.12.9
|
||||
'@babel/helper-plugin-utils': 7.14.5
|
||||
'@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.9
|
||||
'@babel/plugin-transform-parameters': 7.15.4_@babel+core@7.12.9
|
||||
'@babel/plugin-transform-parameters': 7.16.3_@babel+core@7.12.9
|
||||
dev: false
|
||||
|
||||
/@babel/plugin-proposal-object-rest-spread/7.15.6_@babel+core@7.13.15:
|
||||
@ -4160,16 +4172,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-transform-parameters/7.15.4_@babel+core@7.12.9:
|
||||
resolution: {integrity: sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.12.9
|
||||
'@babel/helper-plugin-utils': 7.14.5
|
||||
dev: false
|
||||
|
||||
/@babel/plugin-transform-parameters/7.15.4_@babel+core@7.13.15:
|
||||
resolution: {integrity: sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@ -4190,6 +4192,16 @@ packages:
|
||||
'@babel/helper-plugin-utils': 7.14.5
|
||||
dev: false
|
||||
|
||||
/@babel/plugin-transform-parameters/7.16.3_@babel+core@7.12.9:
|
||||
resolution: {integrity: sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.12.9
|
||||
'@babel/helper-plugin-utils': 7.14.5
|
||||
dev: false
|
||||
|
||||
/@babel/plugin-transform-parameters/7.16.3_@babel+core@7.16.0:
|
||||
resolution: {integrity: sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@ -5556,7 +5568,7 @@ packages:
|
||||
'@babel/preset-env': 7.13.15_@babel+core@7.13.15
|
||||
'@babel/preset-react': 7.13.13_@babel+core@7.13.15
|
||||
'@babel/preset-typescript': 7.13.0_@babel+core@7.13.15
|
||||
'@babel/runtime': 7.14.5
|
||||
'@babel/runtime': 7.16.3
|
||||
'@babel/runtime-corejs3': 7.14.8
|
||||
'@babel/traverse': 7.14.5
|
||||
'@docusaurus/cssnano-preset': 2.0.0-beta.3
|
||||
@ -5876,7 +5888,7 @@ packages:
|
||||
shelljs: 0.8.4
|
||||
tslib: 2.3.1
|
||||
utility-types: 3.10.0
|
||||
webpack: 5.61.0_esbuild@0.12.25
|
||||
webpack: 5.64.0_esbuild@0.12.25
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- bufferutil
|
||||
@ -6083,7 +6095,7 @@ packages:
|
||||
peerDependencies:
|
||||
react: '*'
|
||||
dependencies:
|
||||
'@types/react': 17.0.36
|
||||
'@types/react': 17.0.37
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
dev: false
|
||||
@ -6233,6 +6245,22 @@ packages:
|
||||
- webpack-cli
|
||||
dev: false
|
||||
|
||||
/@docusaurus/types/2.0.0-beta.9:
|
||||
resolution: {integrity: sha512-7qK7PCwRImHzv9RMi5HJ7RoHKQ8r7oqZK79UucmzBXl5nyfZridBC7JQ+LG7GBqYVaIjfOHUflOOLIVn+gK2/g==}
|
||||
dependencies:
|
||||
commander: 5.1.0
|
||||
joi: 17.4.2
|
||||
querystring: 0.2.0
|
||||
utility-types: 3.10.0
|
||||
webpack: 5.64.0
|
||||
webpack-merge: 5.8.0
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- esbuild
|
||||
- uglify-js
|
||||
- webpack-cli
|
||||
dev: false
|
||||
|
||||
/@docusaurus/types/2.0.0-beta.9_esbuild@0.12.25:
|
||||
resolution: {integrity: sha512-7qK7PCwRImHzv9RMi5HJ7RoHKQ8r7oqZK79UucmzBXl5nyfZridBC7JQ+LG7GBqYVaIjfOHUflOOLIVn+gK2/g==}
|
||||
dependencies:
|
||||
@ -6240,7 +6268,7 @@ packages:
|
||||
joi: 17.4.2
|
||||
querystring: 0.2.0
|
||||
utility-types: 3.10.0
|
||||
webpack: 5.61.0_esbuild@0.12.25
|
||||
webpack: 5.64.0_esbuild@0.12.25
|
||||
webpack-merge: 5.8.0
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
@ -6328,6 +6356,35 @@ packages:
|
||||
- webpack-cli
|
||||
dev: false
|
||||
|
||||
/@docusaurus/utils/2.0.0-beta.9:
|
||||
resolution: {integrity: sha512-f5TUY72Qux0wv1tjxsvjFDjfRnsWtQjsjR5Q/gJ5V021H9lycC9YCk0cEReg3bI3+IVL2iGvQqNnH3R1G7NcRw==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
react: '*'
|
||||
react-dom: '*'
|
||||
dependencies:
|
||||
'@docusaurus/types': 2.0.0-beta.9
|
||||
'@mdx-js/runtime': 1.6.22
|
||||
'@types/github-slugger': 1.3.0
|
||||
chalk: 4.1.2
|
||||
escape-string-regexp: 4.0.0
|
||||
fs-extra: 10.0.0
|
||||
globby: 11.0.4
|
||||
gray-matter: 4.0.3
|
||||
lodash: 4.17.21
|
||||
micromatch: 4.0.4
|
||||
remark-mdx-remove-exports: 1.6.22
|
||||
remark-mdx-remove-imports: 1.6.22
|
||||
resolve-pathname: 3.0.0
|
||||
tslib: 2.3.1
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- esbuild
|
||||
- supports-color
|
||||
- uglify-js
|
||||
- webpack-cli
|
||||
dev: false
|
||||
|
||||
/@docusaurus/utils/2.0.0-beta.9_95f6b737b4bc0d4236201ee71b37c46d:
|
||||
resolution: {integrity: sha512-f5TUY72Qux0wv1tjxsvjFDjfRnsWtQjsjR5Q/gJ5V021H9lycC9YCk0cEReg3bI3+IVL2iGvQqNnH3R1G7NcRw==}
|
||||
engines: {node: '>=14'}
|
||||
@ -6434,7 +6491,6 @@ packages:
|
||||
|
||||
/@emotion/hash/0.8.0:
|
||||
resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
|
||||
dev: true
|
||||
|
||||
/@emotion/is-prop-valid/1.1.0:
|
||||
resolution: {integrity: sha512-9RkilvXAufQHsSsjQ3PIzSns+pxuX4EW8EbGeSPjZMHuMx6z/MOzb9LpqNieQX4F3mre3NWS2+X3JNRHTQztUQ==}
|
||||
@ -6997,6 +7053,124 @@ packages:
|
||||
read-yaml-file: 1.1.0
|
||||
dev: true
|
||||
|
||||
/@material-ui/core/4.12.3_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.6 || ^17.0.0
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
'@material-ui/styles': 4.11.4_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/system': 4.12.1_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/types': 5.1.0
|
||||
'@material-ui/utils': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
'@types/react-transition-group': 4.4.4
|
||||
clsx: 1.1.1
|
||||
hoist-non-react-statics: 3.3.2
|
||||
popper.js: 1.16.1-lts
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
react-is: 17.0.2
|
||||
react-transition-group: 4.4.2_react-dom@17.0.2+react@17.0.2
|
||||
dev: false
|
||||
|
||||
/@material-ui/icons/4.11.2_fced322086cd04afb0b6feec9e866920:
|
||||
resolution: {integrity: sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
'@material-ui/core': ^4.0.0
|
||||
'@types/react': ^16.8.6 || ^17.0.0
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
'@material-ui/core': 4.12.3_react-dom@17.0.2+react@17.0.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
dev: false
|
||||
|
||||
/@material-ui/styles/4.11.4_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.6 || ^17.0.0
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
'@emotion/hash': 0.8.0
|
||||
'@material-ui/types': 5.1.0
|
||||
'@material-ui/utils': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
clsx: 1.1.1
|
||||
csstype: 2.6.13
|
||||
hoist-non-react-statics: 3.3.2
|
||||
jss: 10.8.2
|
||||
jss-plugin-camel-case: 10.8.2
|
||||
jss-plugin-default-unit: 10.8.2
|
||||
jss-plugin-global: 10.8.2
|
||||
jss-plugin-nested: 10.8.2
|
||||
jss-plugin-props-sort: 10.8.2
|
||||
jss-plugin-rule-value-function: 10.8.2
|
||||
jss-plugin-vendor-prefixer: 10.8.2
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
dev: false
|
||||
|
||||
/@material-ui/system/4.12.1_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.6 || ^17.0.0
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
'@material-ui/utils': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
csstype: 2.6.13
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
dev: false
|
||||
|
||||
/@material-ui/types/5.1.0:
|
||||
resolution: {integrity: sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dev: false
|
||||
|
||||
/@material-ui/utils/4.11.2_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
react-is: 17.0.2
|
||||
dev: false
|
||||
|
||||
/@mdx-js/mdx/1.6.22:
|
||||
resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==}
|
||||
dependencies:
|
||||
@ -7023,6 +7197,12 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@mdx-js/react/1.6.22:
|
||||
resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==}
|
||||
peerDependencies:
|
||||
react: ^16.13.1 || ^17.0.0
|
||||
dev: false
|
||||
|
||||
/@mdx-js/react/1.6.22_react@17.0.2:
|
||||
resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==}
|
||||
peerDependencies:
|
||||
@ -7031,6 +7211,19 @@ packages:
|
||||
react: 17.0.2
|
||||
dev: false
|
||||
|
||||
/@mdx-js/runtime/1.6.22:
|
||||
resolution: {integrity: sha512-p17spaO2+55VLCuxXA3LVHC4phRx60NR2XMdZ+qgVU1lKvEX4y88dmFNOzGDCPLJ03IZyKrJ/rPWWRiBrd9JrQ==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
react: ^16.13.1
|
||||
dependencies:
|
||||
'@mdx-js/mdx': 1.6.22
|
||||
'@mdx-js/react': 1.6.22
|
||||
buble-jsx-only: 0.19.8
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@mdx-js/runtime/1.6.22_react@17.0.2:
|
||||
resolution: {integrity: sha512-p17spaO2+55VLCuxXA3LVHC4phRx60NR2XMdZ+qgVU1lKvEX4y88dmFNOzGDCPLJ03IZyKrJ/rPWWRiBrd9JrQ==}
|
||||
engines: {node: '>=8'}
|
||||
@ -8027,7 +8220,7 @@ packages:
|
||||
resolution: {integrity: sha512-38vpjXic0+E2sIBEKUe+RrCmbc8RqcQhNV8OmU3KUcwgy/yzTeo67MhllP+0zjZWNr7Lhw+RnUkL0hzkf63nUQ==}
|
||||
dependencies:
|
||||
'@types/history': 4.7.7
|
||||
'@types/react': 17.0.33
|
||||
'@types/react': 17.0.36
|
||||
'@types/react-router': 5.1.8
|
||||
dev: true
|
||||
|
||||
@ -8043,14 +8236,13 @@ packages:
|
||||
resolution: {integrity: sha512-HzOyJb+wFmyEhyfp4D4NYrumi+LQgQL/68HvJO+q6XtuHSDvw6Aqov7sCAhjbNq3bUPgPqbdvjXC5HeB2oEAPg==}
|
||||
dependencies:
|
||||
'@types/history': 4.7.7
|
||||
'@types/react': 17.0.34
|
||||
'@types/react': 17.0.36
|
||||
dev: true
|
||||
|
||||
/@types/react-transition-group/4.4.4:
|
||||
resolution: {integrity: sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==}
|
||||
dependencies:
|
||||
'@types/react': 17.0.37
|
||||
dev: true
|
||||
|
||||
/@types/react-virtualized/9.21.15:
|
||||
resolution: {integrity: sha512-R4ntUW+Y/a7RgRpfeYz3iRe+kaDWtXieMeQum4AoYjjZsR/QhpKqFu4muSBhzA7OHJHd6qA0KkeTzxj5ah5tmQ==}
|
||||
@ -8064,14 +8256,6 @@ packages:
|
||||
dependencies:
|
||||
'@types/prop-types': 15.7.3
|
||||
'@types/scheduler': 0.16.2
|
||||
csstype: 3.0.8
|
||||
dev: true
|
||||
|
||||
/@types/react/17.0.34:
|
||||
resolution: {integrity: sha512-46FEGrMjc2+8XhHXILr+3+/sTe3OfzSPU9YGKILLrUYbQ1CLQC9Daqo1KzENGXAWwrFwiY0l4ZbF20gRvgpWTg==}
|
||||
dependencies:
|
||||
'@types/prop-types': 15.7.4
|
||||
'@types/scheduler': 0.16.2
|
||||
csstype: 3.0.9
|
||||
dev: true
|
||||
|
||||
@ -8081,7 +8265,7 @@ packages:
|
||||
'@types/prop-types': 15.7.4
|
||||
'@types/scheduler': 0.16.2
|
||||
csstype: 3.0.9
|
||||
dev: false
|
||||
dev: true
|
||||
|
||||
/@types/react/17.0.37:
|
||||
resolution: {integrity: sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==}
|
||||
@ -8089,7 +8273,6 @@ packages:
|
||||
'@types/prop-types': 15.7.4
|
||||
'@types/scheduler': 0.16.2
|
||||
csstype: 3.0.9
|
||||
dev: true
|
||||
|
||||
/@types/redux/3.6.0:
|
||||
resolution: {integrity: sha1-8evh5UEVGAcuT9/KXHbhbnTBOZo=}
|
||||
@ -11218,7 +11401,6 @@ packages:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
is-in-browser: 1.1.3
|
||||
dev: true
|
||||
|
||||
/css-what/2.1.3:
|
||||
resolution: {integrity: sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==}
|
||||
@ -11411,11 +11593,6 @@ packages:
|
||||
|
||||
/csstype/2.6.13:
|
||||
resolution: {integrity: sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==}
|
||||
dev: true
|
||||
|
||||
/csstype/3.0.8:
|
||||
resolution: {integrity: sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==}
|
||||
dev: true
|
||||
|
||||
/csstype/3.0.9:
|
||||
resolution: {integrity: sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==}
|
||||
@ -11903,9 +12080,8 @@ packages:
|
||||
/dom-helpers/5.2.1:
|
||||
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
csstype: 3.0.9
|
||||
dev: true
|
||||
|
||||
/dom-serializer/0.1.1:
|
||||
resolution: {integrity: sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==}
|
||||
@ -14545,7 +14721,6 @@ packages:
|
||||
|
||||
/hyphenate-style-name/1.0.4:
|
||||
resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
|
||||
dev: true
|
||||
|
||||
/i18next/20.6.1:
|
||||
resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
|
||||
@ -14974,7 +15149,6 @@ packages:
|
||||
|
||||
/is-in-browser/1.1.3:
|
||||
resolution: {integrity: sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=}
|
||||
dev: true
|
||||
|
||||
/is-installed-globally/0.4.0:
|
||||
resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
|
||||
@ -16073,21 +16247,18 @@ packages:
|
||||
'@babel/runtime': 7.16.3
|
||||
hyphenate-style-name: 1.0.4
|
||||
jss: 10.8.2
|
||||
dev: true
|
||||
|
||||
/jss-plugin-default-unit/10.8.2:
|
||||
resolution: {integrity: sha512-UZ7cwT9NFYSG+SEy7noRU50s4zifulFdjkUNKE+u6mW7vFP960+RglWjTgMfh79G6OENZmaYnjHV/gcKV4nSxg==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
jss: 10.8.2
|
||||
dev: true
|
||||
|
||||
/jss-plugin-global/10.8.2:
|
||||
resolution: {integrity: sha512-UaYMSPsYZ7s/ECGoj4KoHC2jwQd5iQ7K+FFGnCAILdQrv7hPmvM2Ydg45ThT/sH46DqktCRV2SqjRuxeBH8nRA==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
jss: 10.8.2
|
||||
dev: true
|
||||
|
||||
/jss-plugin-nested/10.8.2:
|
||||
resolution: {integrity: sha512-acRvuPJOb930fuYmhkJaa994EADpt8TxI63Iyg96C8FJ9T2xRyU5T6R1IYKRwUiqZo+2Sr7fdGzRTDD4uBZaMA==}
|
||||
@ -16095,14 +16266,12 @@ packages:
|
||||
'@babel/runtime': 7.16.3
|
||||
jss: 10.8.2
|
||||
tiny-warning: 1.0.3
|
||||
dev: true
|
||||
|
||||
/jss-plugin-props-sort/10.8.2:
|
||||
resolution: {integrity: sha512-wqdcjayKRWBZnNpLUrXvsWqh+5J5YToAQ+8HNBNw0kZxVvCDwzhK2Nx6AKs7p+5/MbAh2PLgNW5Ym/ysbVAuqQ==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.16.3
|
||||
jss: 10.8.2
|
||||
dev: true
|
||||
|
||||
/jss-plugin-rule-value-function/10.8.2:
|
||||
resolution: {integrity: sha512-bW0EKAs+0HXpb6BKJhrn94IDdiWb0CnSluTkh0rGEgyzY/nmD1uV/Wf6KGlesGOZ9gmJzQy+9FFdxIUID1c9Ug==}
|
||||
@ -16110,7 +16279,6 @@ packages:
|
||||
'@babel/runtime': 7.16.3
|
||||
jss: 10.8.2
|
||||
tiny-warning: 1.0.3
|
||||
dev: true
|
||||
|
||||
/jss-plugin-vendor-prefixer/10.8.2:
|
||||
resolution: {integrity: sha512-DeGv18QsSiYLSVIEB2+l0af6OToUe0JB+trpzUxyqD2QRC/5AzzDrCrYffO5AHZ81QbffYvSN/pkfZaTWpRXlg==}
|
||||
@ -16118,7 +16286,6 @@ packages:
|
||||
'@babel/runtime': 7.16.3
|
||||
css-vendor: 2.0.8
|
||||
jss: 10.8.2
|
||||
dev: true
|
||||
|
||||
/jss/10.8.2:
|
||||
resolution: {integrity: sha512-FkoUNxI329CKQ9OQC8L72MBF9KPf5q8mIupAJ5twU7G7XREW7ahb+7jFfrjZ4iy1qvhx1HwIWUIvkZBDnKkEdQ==}
|
||||
@ -16127,7 +16294,6 @@ packages:
|
||||
csstype: 3.0.9
|
||||
is-in-browser: 1.1.3
|
||||
tiny-warning: 1.0.3
|
||||
dev: true
|
||||
|
||||
/jsx-ast-utils/2.2.3:
|
||||
resolution: {integrity: sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==}
|
||||
@ -18213,6 +18379,10 @@ packages:
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/popper.js/1.16.1-lts:
|
||||
resolution: {integrity: sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==}
|
||||
dev: false
|
||||
|
||||
/portfinder/1.0.28:
|
||||
resolution: {integrity: sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==}
|
||||
engines: {node: '>= 0.12.0'}
|
||||
@ -19596,7 +19766,6 @@ packages:
|
||||
|
||||
/react-is/17.0.2:
|
||||
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
|
||||
dev: true
|
||||
|
||||
/react-json-view/1.21.3_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==}
|
||||
@ -19624,7 +19793,7 @@ packages:
|
||||
react-loadable: '*'
|
||||
webpack: '>=4.41.1 || 5.x'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
react-loadable: /@docusaurus/react-loadable/5.5.2_react@17.0.2
|
||||
webpack: 5.61.0_esbuild@0.12.25
|
||||
dev: false
|
||||
@ -19636,7 +19805,7 @@ packages:
|
||||
react-loadable: '*'
|
||||
webpack: '>=4.41.1 || 5.x'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
react-loadable: 5.5.0_react@17.0.2
|
||||
webpack: 5.40.0_esbuild@0.12.25
|
||||
dev: false
|
||||
@ -19678,7 +19847,7 @@ packages:
|
||||
react: '>=15'
|
||||
react-router: '>=5'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
react: 17.0.2
|
||||
react-router: 5.2.0_react@17.0.2
|
||||
dev: false
|
||||
@ -19689,7 +19858,7 @@ packages:
|
||||
react: '>=15'
|
||||
react-router: '>=5'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
react: 17.0.2
|
||||
react-router: 5.2.1_react@17.0.2
|
||||
dev: false
|
||||
@ -19699,7 +19868,7 @@ packages:
|
||||
peerDependencies:
|
||||
react: '>=15'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
history: 4.10.1
|
||||
loose-envify: 1.4.0
|
||||
prop-types: 15.7.2
|
||||
@ -19728,7 +19897,7 @@ packages:
|
||||
peerDependencies:
|
||||
react: '>=15'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
history: 4.10.1
|
||||
hoist-non-react-statics: 3.3.2
|
||||
loose-envify: 1.4.0
|
||||
@ -19772,7 +19941,7 @@ packages:
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
react: 17.0.2
|
||||
use-composed-ref: 1.1.0_react@17.0.2
|
||||
use-latest: 1.2.0_react@17.0.2
|
||||
@ -19786,13 +19955,12 @@ packages:
|
||||
react: '>=16.6.0'
|
||||
react-dom: '>=16.6.0'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.15.4
|
||||
'@babel/runtime': 7.16.3
|
||||
dom-helpers: 5.2.1
|
||||
loose-envify: 1.4.0
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
dev: true
|
||||
|
||||
/react-twitter-widgets/1.10.0_react@17.0.2:
|
||||
resolution: {integrity: sha512-K7MAREhkKJxrhoiNWricKs1O++NyElnVpcplLzZ67gDrmeIsD3E4TUzlt0/nTZAHPOPPc86V4kEd4KIg4de7cQ==}
|
||||
@ -21811,6 +21979,32 @@ packages:
|
||||
webpack: 5.61.0_esbuild@0.12.25
|
||||
dev: false
|
||||
|
||||
/terser-webpack-plugin/5.2.4_esbuild@0.12.25+webpack@5.64.0:
|
||||
resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==}
|
||||
engines: {node: '>= 10.13.0'}
|
||||
peerDependencies:
|
||||
'@swc/core': '*'
|
||||
esbuild: '*'
|
||||
uglify-js: '*'
|
||||
webpack: ^5.1.0
|
||||
peerDependenciesMeta:
|
||||
'@swc/core':
|
||||
optional: true
|
||||
esbuild:
|
||||
optional: true
|
||||
uglify-js:
|
||||
optional: true
|
||||
dependencies:
|
||||
esbuild: 0.12.25
|
||||
jest-worker: 27.2.5
|
||||
p-limit: 3.1.0
|
||||
schema-utils: 3.1.1
|
||||
serialize-javascript: 6.0.0
|
||||
source-map: 0.6.1
|
||||
terser: 5.7.2
|
||||
webpack: 5.64.0_esbuild@0.12.25
|
||||
dev: false
|
||||
|
||||
/terser-webpack-plugin/5.2.4_webpack@5.52.0:
|
||||
resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==}
|
||||
engines: {node: '>= 10.13.0'}
|
||||
@ -21859,7 +22053,6 @@ packages:
|
||||
source-map: 0.6.1
|
||||
terser: 5.7.2
|
||||
webpack: 5.64.0_webpack-cli@4.7.2
|
||||
dev: true
|
||||
|
||||
/terser/4.8.0:
|
||||
resolution: {integrity: sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==}
|
||||
@ -23439,6 +23632,86 @@ packages:
|
||||
- uglify-js
|
||||
dev: false
|
||||
|
||||
/webpack/5.64.0:
|
||||
resolution: {integrity: sha512-UclnN24m054HaPC45nmDEosX6yXWD+UGC12YtUs5i356DleAUGMDC9LBAw37xRRfgPKYIdCYjGA7RZ1AA+ZnGg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
webpack-cli: '*'
|
||||
peerDependenciesMeta:
|
||||
webpack-cli:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/eslint-scope': 3.7.0
|
||||
'@types/estree': 0.0.50
|
||||
'@webassemblyjs/ast': 1.11.1
|
||||
'@webassemblyjs/wasm-edit': 1.11.1
|
||||
'@webassemblyjs/wasm-parser': 1.11.1
|
||||
acorn: 8.4.1
|
||||
acorn-import-assertions: 1.7.6_acorn@8.4.1
|
||||
browserslist: 4.17.4
|
||||
chrome-trace-event: 1.0.2
|
||||
enhanced-resolve: 5.8.3
|
||||
es-module-lexer: 0.9.3
|
||||
eslint-scope: 5.1.1
|
||||
events: 3.3.0
|
||||
glob-to-regexp: 0.4.1
|
||||
graceful-fs: 4.2.6
|
||||
json-parse-better-errors: 1.0.2
|
||||
loader-runner: 4.2.0
|
||||
mime-types: 2.1.31
|
||||
neo-async: 2.6.2
|
||||
schema-utils: 3.1.1
|
||||
tapable: 2.2.0
|
||||
terser-webpack-plugin: 5.2.4_webpack@5.64.0
|
||||
watchpack: 2.2.0
|
||||
webpack-sources: 3.2.0
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- esbuild
|
||||
- uglify-js
|
||||
dev: false
|
||||
|
||||
/webpack/5.64.0_esbuild@0.12.25:
|
||||
resolution: {integrity: sha512-UclnN24m054HaPC45nmDEosX6yXWD+UGC12YtUs5i356DleAUGMDC9LBAw37xRRfgPKYIdCYjGA7RZ1AA+ZnGg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
webpack-cli: '*'
|
||||
peerDependenciesMeta:
|
||||
webpack-cli:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/eslint-scope': 3.7.0
|
||||
'@types/estree': 0.0.50
|
||||
'@webassemblyjs/ast': 1.11.1
|
||||
'@webassemblyjs/wasm-edit': 1.11.1
|
||||
'@webassemblyjs/wasm-parser': 1.11.1
|
||||
acorn: 8.4.1
|
||||
acorn-import-assertions: 1.7.6_acorn@8.4.1
|
||||
browserslist: 4.17.4
|
||||
chrome-trace-event: 1.0.2
|
||||
enhanced-resolve: 5.8.3
|
||||
es-module-lexer: 0.9.3
|
||||
eslint-scope: 5.1.1
|
||||
events: 3.3.0
|
||||
glob-to-regexp: 0.4.1
|
||||
graceful-fs: 4.2.6
|
||||
json-parse-better-errors: 1.0.2
|
||||
loader-runner: 4.2.0
|
||||
mime-types: 2.1.31
|
||||
neo-async: 2.6.2
|
||||
schema-utils: 3.1.1
|
||||
tapable: 2.2.0
|
||||
terser-webpack-plugin: 5.2.4_esbuild@0.12.25+webpack@5.64.0
|
||||
watchpack: 2.2.0
|
||||
webpack-sources: 3.2.0
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- esbuild
|
||||
- uglify-js
|
||||
dev: false
|
||||
|
||||
/webpack/5.64.0_webpack-cli@4.7.2:
|
||||
resolution: {integrity: sha512-UclnN24m054HaPC45nmDEosX6yXWD+UGC12YtUs5i356DleAUGMDC9LBAw37xRRfgPKYIdCYjGA7RZ1AA+ZnGg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
|
@ -39,6 +39,7 @@ module.exports = {
|
||||
i18n: i18nConfig,
|
||||
plugins: [
|
||||
'docusaurus-plugin-sass',
|
||||
"docusaurus-plugin-contributors",
|
||||
isProductionDeployment && ['docusaurus-plugin-sentry', { DSN: 'a7bc89ee3f284570b1d9a47e600e7597' }]
|
||||
].filter(Boolean),
|
||||
webpack: {
|
||||
|
@ -28,6 +28,9 @@
|
||||
"@docusaurus/preset-classic": "2.0.0-beta.9",
|
||||
"@docusaurus/remark-plugin-npm2yarn": "2.0.0-beta.9",
|
||||
"@docusaurus/theme-search-algolia": "2.0.0-beta.9",
|
||||
"docusaurus-plugin-contributors": "workspace:1.0.0",
|
||||
"@material-ui/core": "^4.11.2",
|
||||
"@material-ui/icons": "^4.11.2",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"clsx": "^1.1.1",
|
||||
"copy-text-to-clipboard": "^3.0.1",
|
||||
|
247
website/src/components/Contributors.tsx
Normal file
247
website/src/components/Contributors.tsx
Normal file
@ -0,0 +1,247 @@
|
||||
import Translate from '@docusaurus/Translate';
|
||||
import { ListItemSecondaryAction, Tooltip } from '@material-ui/core';
|
||||
import Avatar from '@material-ui/core/Avatar';
|
||||
import Badge from '@material-ui/core/Badge';
|
||||
import Chip from '@material-ui/core/Chip';
|
||||
import Dialog from '@material-ui/core/Dialog';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
import DialogTitle from '@material-ui/core/DialogTitle';
|
||||
import Grid from '@material-ui/core/Grid';
|
||||
import IconButton from '@material-ui/core/IconButton';
|
||||
import List from '@material-ui/core/List';
|
||||
import ListItem from '@material-ui/core/ListItem';
|
||||
import ListItemIcon from '@material-ui/core/ListItemIcon';
|
||||
import ListItemText from '@material-ui/core/ListItemText';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import { green, yellow } from '@material-ui/core/colors';
|
||||
import { createStyles, makeStyles, withStyles } from '@material-ui/core/styles';
|
||||
import { ThemeProvider, createMuiTheme } from '@material-ui/core/styles';
|
||||
import EmojiEventsIcon from '@material-ui/icons/EmojiEvents';
|
||||
import MergeTypeIcon from '@material-ui/icons/MergeType';
|
||||
import StarIcon from '@material-ui/icons/Star';
|
||||
import Layout from '@theme/Layout';
|
||||
import React from 'react';
|
||||
|
||||
const generateImage = (id) => `https://avatars3.githubusercontent.com/u/${id}?s=120&v=4`;
|
||||
|
||||
const theme = createMuiTheme({
|
||||
palette: {
|
||||
primary: {
|
||||
main: '#4B5E40',
|
||||
},
|
||||
secondary: {
|
||||
main: '#808a79',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const useStyles = makeStyles((theme) =>
|
||||
createStyles({
|
||||
small: {
|
||||
width: theme.spacing(3),
|
||||
height: theme.spacing(3),
|
||||
},
|
||||
medium: {
|
||||
width: theme.spacing(6),
|
||||
height: theme.spacing(6),
|
||||
},
|
||||
large: {
|
||||
width: theme.spacing(12),
|
||||
height: theme.spacing(12),
|
||||
},
|
||||
root: {
|
||||
width: '100%',
|
||||
maxWidth: 360,
|
||||
backgroundColor: theme.palette.background.paper,
|
||||
},
|
||||
inline: {
|
||||
display: 'inline',
|
||||
},
|
||||
starColor: {
|
||||
color: yellow[500],
|
||||
},
|
||||
archived: {
|
||||
opacity: `0.4`,
|
||||
},
|
||||
emojiEvent: {
|
||||
color: green[800],
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
const StyledBadge = withStyles(() => ({
|
||||
badge: {
|
||||
right: -3,
|
||||
top: 8,
|
||||
padding: '0 4px',
|
||||
},
|
||||
}))(Badge);
|
||||
|
||||
function ListItemLink(props) {
|
||||
return <ListItem button component="a" {...props} />;
|
||||
}
|
||||
|
||||
type ContributorsProps = {
|
||||
contributors: any;
|
||||
};
|
||||
|
||||
function convertItemTo(item) {
|
||||
const node = {
|
||||
url: item.login,
|
||||
userId: item.id,
|
||||
id: `key-${item.login}`,
|
||||
contributions: item.contributions,
|
||||
repositories: item.repositories,
|
||||
};
|
||||
|
||||
return { node };
|
||||
}
|
||||
|
||||
const Contributors: React.FC<ContributorsProps> = ({ contributors }): React.ReactElement => {
|
||||
const [user, setUser] = React.useState(null);
|
||||
const [open, setOpen] = React.useState(false);
|
||||
const classes = useStyles();
|
||||
|
||||
const handleClickOpen = (item) => {
|
||||
setUser(item);
|
||||
setOpen(true);
|
||||
};
|
||||
|
||||
const handleClose = () => {
|
||||
setOpen(false);
|
||||
setUser(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Layout
|
||||
title="Contributors"
|
||||
description="Verdaccio Contributors, thanks to the community Verdaccio keeps running">
|
||||
<ThemeProvider theme={theme}>
|
||||
<div style={{ display: 'flex', width: '80%', flexFlow: 'wrap', margin: '1rem auto' }}>
|
||||
<header>
|
||||
<h1>
|
||||
<Translate>Contributors</Translate>
|
||||
</h1>
|
||||
<p>
|
||||
<Translate>
|
||||
Thanks to everyone involved in maintaining and improving Verdaccio, this page is
|
||||
to thank you every minute spent here.
|
||||
</Translate>{' '}
|
||||
<b>
|
||||
<Translate>Thanks</Translate>
|
||||
</b>
|
||||
</p>
|
||||
</header>
|
||||
</div>
|
||||
|
||||
<div style={{ display: 'flex', width: '80%', flexFlow: 'wrap', margin: '1rem auto' }}>
|
||||
{contributors.map((item) => {
|
||||
const userItem = convertItemTo(item);
|
||||
return (
|
||||
<div
|
||||
role="button"
|
||||
tabIndex={0}
|
||||
style={{ flex: 'auto', cursor: 'pointer', margin: '10px' }}
|
||||
key={userItem.node.url}
|
||||
onKeyDown={() => handleClickOpen(userItem)}
|
||||
onClick={() => handleClickOpen(userItem)}>
|
||||
<Avatar
|
||||
src={generateImage(userItem.node.userId)}
|
||||
alt={userItem.node.url}
|
||||
className={classes.large}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
{user && (
|
||||
<Dialog onClose={handleClose} aria-labelledby="simple-dialog-title" open={open}>
|
||||
<DialogTitle id="simple-dialog-title">
|
||||
<Grid container alignContent="center-flex" alignItems="center" justify="center">
|
||||
<Grid item lg="3" md="3" sm="3">
|
||||
<a
|
||||
href={'https://github.com/' + user.node.url}
|
||||
target="_blank"
|
||||
rel="noreferrer">
|
||||
<Avatar
|
||||
src={generateImage(user.node.userId)}
|
||||
alt={user.node.url}
|
||||
className={classes.medium}
|
||||
/>
|
||||
</a>
|
||||
</Grid>
|
||||
<Grid item lg="6" md="6" sm="6">
|
||||
<Typography variant="h6">{user.node.url}</Typography>
|
||||
</Grid>
|
||||
<Grid lg="2" md="2" sm="2">
|
||||
<Chip
|
||||
icon={<EmojiEventsIcon className={classes.emojiEvent} />}
|
||||
label={user.node.contributions}
|
||||
color="default"
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</DialogTitle>
|
||||
|
||||
<DialogContent>
|
||||
<div className={classes.root}>
|
||||
<List component="nav" aria-label="main mailbox folders">
|
||||
{user.node.repositories.map((repo) => {
|
||||
return (
|
||||
<ListItemLink
|
||||
className={repo.archived ? classes.archived : ''}
|
||||
key={repo.name}
|
||||
href={repo.html_url}
|
||||
target="_blank"
|
||||
rel="noreferrer">
|
||||
<ListItemIcon>
|
||||
<Badge
|
||||
badgeContent={repo.contributions}
|
||||
color="green"
|
||||
max={9999}
|
||||
anchorOrigin={{
|
||||
vertical: 'top',
|
||||
horizontal: 'right',
|
||||
}}>
|
||||
<MergeTypeIcon />
|
||||
</Badge>
|
||||
</ListItemIcon>
|
||||
<Tooltip title={repo.archived ? 'archived' : ''}>
|
||||
<ListItemText
|
||||
primary={<Typography color="primary">{repo.name}</Typography>}
|
||||
secondary={
|
||||
<Typography color="secondary" variant="body2">
|
||||
{repo.description}
|
||||
</Typography>
|
||||
}
|
||||
/>
|
||||
</Tooltip>
|
||||
<ListItemSecondaryAction
|
||||
className={repo.archived ? classes.archived : ''}>
|
||||
<a
|
||||
href={'https://github.com/' + repo.full_name + '/stargazers'}
|
||||
target="_blank"
|
||||
rel="noreferrer">
|
||||
<IconButton edges="end" aria-label="delete">
|
||||
<StyledBadge badgeContent={repo.staergezers} max={999}>
|
||||
<StarIcon className={classes.starColor} />
|
||||
</StyledBadge>
|
||||
</IconButton>
|
||||
</a>
|
||||
</ListItemSecondaryAction>
|
||||
</ListItemLink>
|
||||
);
|
||||
})}
|
||||
</List>
|
||||
</div>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
)}
|
||||
</ThemeProvider>
|
||||
</Layout>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Contributors;
|
@ -1,15 +0,0 @@
|
||||
.wrapper {
|
||||
margin: 1rem auto;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.w-100 {
|
||||
width: 100%;
|
||||
}
|
||||
.mt-2 {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.h-screen {
|
||||
height: 100vh;
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
import Translate, { translate } from '@docusaurus/Translate';
|
||||
import Layout from '@theme/Layout';
|
||||
import React from 'react';
|
||||
|
||||
import styles from './contributors.module.scss';
|
||||
|
||||
const Contributors = (): React.ReactElement => (
|
||||
<Layout
|
||||
title="Contributors"
|
||||
description="Verdaccio Contributors, thanks to the community Verdaccio keeps running">
|
||||
<div className={styles.wrapper}>
|
||||
<header>
|
||||
<h1>
|
||||
<Translate>Contributors</Translate>
|
||||
</h1>
|
||||
<p>
|
||||
<Translate>
|
||||
Thanks to everyone involved in maintaining and improving Verdaccio, this page is to
|
||||
thank you every minute spent here.
|
||||
</Translate>{' '}
|
||||
<b>
|
||||
<Translate>Thanks</Translate>
|
||||
</b>
|
||||
</p>
|
||||
</header>
|
||||
<main>
|
||||
<div className={styles['mt-2']}>
|
||||
<iframe
|
||||
src="https://verdacciocontributors.gtsb.io/"
|
||||
frameBorder="0"
|
||||
scrolling="yes"
|
||||
title={translate({ message: 'Contributors of Verdaccio' })}
|
||||
width="100%"
|
||||
className={styles['h-screen']}
|
||||
/>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</Layout>
|
||||
);
|
||||
export default Contributors;
|
Loading…
Reference in New Issue
Block a user