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

build: configure prettier as formatter for json, yaml and markdown (#1930)

* build: configure pretter as formatter for most files

* chore: reformat code (#1931)

* chore: re-format all files

* chore: force run quality anaylsis test

Co-authored-by: Juan Picado @jotadeveloper <juanpicado19@gmail.com>

Co-authored-by: Juan Picado @jotadeveloper <juanpicado19@gmail.com>
This commit is contained in:
Abraham Schilling 2020-09-03 21:15:29 +02:00 committed by Juan Picado
parent 8efc6feab2
commit ddb42431d1
147 changed files with 101666 additions and 101848 deletions

View file

@ -7,4 +7,4 @@
"baseBranch": "master", "baseBranch": "master",
"updateInternalDependencies": "patch", "updateInternalDependencies": "patch",
"ignore": [] "ignore": []
} }

View file

@ -1,30 +1,30 @@
--- ---
"@verdaccio/api": patch '@verdaccio/api': patch
"@verdaccio/auth": patch '@verdaccio/auth': patch
"@verdaccio/cli": patch '@verdaccio/cli': patch
"@verdaccio/dev-commons": patch '@verdaccio/dev-commons': patch
"@verdaccio/config": patch '@verdaccio/config': patch
"@verdaccio/commons-api": patch '@verdaccio/commons-api': patch
"@verdaccio/file-locking": patch '@verdaccio/file-locking': patch
"@verdaccio/htpasswd": patch '@verdaccio/htpasswd': patch
"@verdaccio/local-storage": patch '@verdaccio/local-storage': patch
"@verdaccio/readme": patch '@verdaccio/readme': patch
"@verdaccio/streams": patch '@verdaccio/streams': patch
"@verdaccio/types": patch '@verdaccio/types': patch
"@verdaccio/hooks": patch '@verdaccio/hooks': patch
"@verdaccio/loaders": patch '@verdaccio/loaders': patch
"@verdaccio/logger": patch '@verdaccio/logger': patch
"@verdaccio/logger-prettify": patch '@verdaccio/logger-prettify': patch
"@verdaccio/middleware": patch '@verdaccio/middleware': patch
"@verdaccio/mock": patch '@verdaccio/mock': patch
"@verdaccio/node-api": patch '@verdaccio/node-api': patch
"@verdaccio/proxy": patch '@verdaccio/proxy': patch
"@verdaccio/server": patch '@verdaccio/server': patch
"@verdaccio/store": patch '@verdaccio/store': patch
"@verdaccio/dev-types": patch '@verdaccio/dev-types': patch
"@verdaccio/utils": patch '@verdaccio/utils': patch
"verdaccio": patch 'verdaccio': patch
"@verdaccio/web": patch '@verdaccio/web': patch
--- ---
Enable prerelease mode with **changesets** Enable prerelease mode with **changesets**

View file

@ -1,5 +1,5 @@
--- ---
"@verdaccio/api": patch '@verdaccio/api': patch
--- ---
testing changesets testing changesets

View file

@ -1,24 +1,11 @@
node_modules
coverage/
wiki/
static/
flow-typed/
website/
build/
*.md
*.lock
*.yaml
Dockerfile
*.rpi
*.html
*.scss
*.png
*.json
*.name
*.tgz
*.jpg
*.sh
**/partials/**
**/fixtures/** **/fixtures/**
types/custom.d.ts
**/mock/store/** **/mock/store/**
**/partials/**
**/types/custom.d.ts
build/
coverage/
flow-typed/
node_modules/
static/
website/
wiki/

View file

@ -2,18 +2,15 @@
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"google", "google",
"plugin:prettier/recommended",
"plugin:react/recommended", "plugin:react/recommended",
"plugin:jest/recommended", "plugin:jest/recommended",
"plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
"plugin:import/typescript", "plugin:import/typescript",
"plugin:jsx-a11y/recommended", "plugin:jsx-a11y/recommended",
"prettier", "prettier"
"prettier/react",
"prettier/@typescript-eslint"
], ],
"plugins": ["import", "jest", "jsx-a11y", "react-hooks", "prettier"], "plugins": ["import", "jest", "jsx-a11y", "react-hooks"],
"env": { "env": {
"es6": true, "es6": true,
"node": true, "node": true,
@ -32,9 +29,6 @@
} }
}, },
"settings": { "settings": {
"react": {
"version": "detect"
},
"import/resolver": { "import/resolver": {
"node": { "node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"] "extensions": [".js", ".jsx", ".ts", ".tsx"]
@ -44,22 +38,6 @@
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"rules": { "rules": {
"curly": ["error", "all"], "curly": ["error", "all"],
"prettier/prettier": [
2,
{
"useTabs": false,
"printWidth": 160,
"tabWidth": 2,
"singleQuote": true,
"bracketSpacing": true,
"jsxBracketSameLine": true,
"trailingComma": "es5",
"semi": true,
"parser": "typescript",
"importOrder": ["^@verdaccio/(.*)$", "^[./]"],
"importOrderSeparation": true
}
],
"react/prop-types": 0, "react/prop-types": 0,
"jest/no-export": 0, "jest/no-export": 0,
"jest/no-test-callback": 0, "jest/no-test-callback": 0,

View file

@ -7,9 +7,11 @@ assignees: ''
--- ---
**Describe the bug** **Describe the bug**
<!-- A clear and concise description of what the bug is. --> <!-- A clear and concise description of what the bug is. -->
**To Reproduce** **To Reproduce**
<!-- IMPORTANT: <!-- IMPORTANT:
- How to reproduce the issue - How to reproduce the issue
- Steps to reproduce the issue - Steps to reproduce the issue
@ -18,9 +20,11 @@ Be aware, the lack of reproducible steps the issue might cause your ticket to be
--> -->
**Expected behavior** **Expected behavior**
<!-- A clear and concise description of what you expected to happen. --> <!-- A clear and concise description of what you expected to happen. -->
**Screenshots** **Screenshots**
<!-- If applicable, add screenshots to help explain your problem. --> <!-- If applicable, add screenshots to help explain your problem. -->
**Configuration File (cat ~/.config/verdaccio/config.yaml)** **Configuration File (cat ~/.config/verdaccio/config.yaml)**
@ -28,16 +32,17 @@ Be aware, the lack of reproducible steps the issue might cause your ticket to be
<!-- Please be careful do not leak any sensitive information, remove tokens --> <!-- Please be careful do not leak any sensitive information, remove tokens -->
**Environment information** **Environment information**
<!-- Please paste the results of running `verdaccio --info` --> <!-- Please paste the results of running `verdaccio --info` -->
**Debugging output** **Debugging output**
- `$ NODE_DEBUG=request verdaccio` display request calls (verdaccio <--> uplinks)
- `$ DEBUG=express:* verdaccio` enable extreme verdaccio debug mode (verdaccio api) - `$ NODE_DEBUG=request verdaccio` display request calls (verdaccio <--> uplinks)
- `$ npm -ddd` prints: - `$ DEBUG=express:* verdaccio` enable extreme verdaccio debug mode (verdaccio api)
- `$ npm config get registry` prints: - `$ npm -ddd` prints:
- `$ npm config get registry` prints:
<!-- <!--
IMPORTANT: please do not attach external files, all content should be visible from any device. IMPORTANT: please do not attach external files, all content should be visible from any device.
--> -->

View file

@ -1,10 +1,9 @@
--- ---
name: "Feature Request \U0001F52E" name: 'Feature Request 🔮'
about: You want a feature request. about: You want a feature request.
title: '' title: ''
labels: 'topic: feature request' labels: 'topic: feature request'
assignees: '' assignees: ''
--- ---
<!-- <!--

View file

@ -5,23 +5,21 @@
version: 2 version: 2
updates: updates:
# Maintain dependencies for GitHub Actions # Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions" - package-ecosystem: 'github-actions'
directory: "/" directory: '/'
schedule: schedule:
interval: "weekly" interval: 'weekly'
# Maintain dependencies for npm # Maintain dependencies for npm
- package-ecosystem: "npm" - package-ecosystem: 'npm'
directory: "/" directory: '/'
schedule: schedule:
interval: "daily" interval: 'daily'
allow: allow:
- dependency-name: "@verdaccio/*" - dependency-name: '@verdaccio/*'
- dependency-name: "verdaccio-*" - dependency-name: 'verdaccio-*'
assignees: assignees:
- "verdacciobot" - 'verdacciobot'
labels: labels:
- "bot: dependencies" - 'bot: dependencies'

14
.github/lock.yml vendored
View file

@ -13,10 +13,10 @@ lockLabel: false
lockComment: > lockComment: >
🤖This thread has been automatically locked 🔒 since there has not been 🤖This thread has been automatically locked 🔒 since there has not been
any recent activity after it was closed. any recent activity after it was closed.
We lock tickets after 90 days with the idea to encourage you to open a ticket with new fresh data We lock tickets after 90 days with the idea to encourage you to open a ticket with new fresh data
and to provide you better feedback 🤝and better visibility 👀. and to provide you better feedback 🤝and better visibility 👀.
If you consider, you can attach this ticket 📨 to the new one as a reference for better context. If you consider, you can attach this ticket 📨 to the new one as a reference for better context.
Thanks for being a part of the Verdaccio community! 💘 Thanks for being a part of the Verdaccio community! 💘
@ -26,10 +26,10 @@ lockComment: >
# Optionally, specify configuration settings just for `issues` or `pulls` # Optionally, specify configuration settings just for `issues` or `pulls`
issues: issues:
exemptLabels: exemptLabels:
- help-wanted - help-wanted
lockLabel: outdated lockLabel: outdated
pulls: pulls:
daysUntilLock: 90 daysUntilLock: 90
lockLabel: outdated lockLabel: outdated

14
.github/stale.yml vendored
View file

@ -10,17 +10,17 @@ exemptLabels:
- issue: bug - issue: bug
- dev: discuss - dev: discuss
# Label to use when marking an issue as stale # Label to use when marking an issue as stale
staleLabel: issue: wontfix staleLabel: 'issue: wontfix'
# Comment to post when marking an issue as stale. Set to `false` to disable # Comment to post when marking an issue as stale. Set to `false` to disable
markComment: > markComment: >
Hi pal 👋🏼! Hi pal 👋🏼!
This issue has gone quiet 😶. This issue has gone quiet 😶.
We get a lot of issues, so we currently close issues after 25 days of inactivity. Its been at least 15 days since the last update here. We get a lot of issues, so we currently close issues after 25 days of inactivity. Its been at least 15 days since the last update here.
If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open! If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing! As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the Verdaccio community! 💘 Thanks for being a part of the Verdaccio community! 💘
# Comment to post when closing a stale issue. Set to `false` to disable # Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false closeComment: false

View file

@ -34,6 +34,8 @@ jobs:
run: npm i -g pnpm run: npm i -g pnpm
- name: Install - name: Install
run: pnpm recursive install run: pnpm recursive install
- name: Format
run: pnpm format:check
- name: Lint - name: Lint
run: pnpm lint run: pnpm lint
- name: Clean - name: Clean

View file

@ -19,7 +19,6 @@ jobs:
run: npm run docker run: npm run docker
env: env:
VERDACCIO_BUILD_REGISTRY: https://registry.verdaccio.org VERDACCIO_BUILD_REGISTRY: https://registry.verdaccio.org
# testVerdaccio: # testVerdaccio:
# name: Test Verdaccio Publish # name: Test Verdaccio Publish
# runs-on: ubuntu-latest # runs-on: ubuntu-latest

3
.gitignore vendored
View file

@ -2,6 +2,7 @@
verdaccio-*.tgz verdaccio-*.tgz
.DS_Store .DS_Store
build/ build/
.eslintcache
### Test ### Test
@ -33,4 +34,4 @@ website/public
website/.cache website/.cache
# CI Pnpm cache # CI Pnpm cache
.pnpm-store/ .pnpm-store/

View file

@ -13,20 +13,3 @@
CHANGELOG.md CHANGELOG.md
CONTRIBUTORS.md CONTRIBUTORS.md
node_modules/ node_modules/
**/coverage/**
**/build/*.js
test/unit/partials/*
build/*
.github/
.vscode/
wiki/
.yarnrc.yml
yarn-error.log
.yarn/
test/functional/store/*
storage_default_storage/*
docker-examples/
.prettierignore
.npmignore
.gitignore
*.ico

View file

@ -1,7 +1,7 @@
{ {
"endOfLine": "lf", "endOfLine": "lf",
"useTabs": false, "useTabs": false,
"printWidth": 180, "printWidth": 160,
"tabWidth": 2, "tabWidth": 2,
"singleQuote": true, "singleQuote": true,
"bracketSpacing": true, "bracketSpacing": true,

149
.vscode/launch.json vendored
View file

@ -1,79 +1,74 @@
{ {
// Use IntelliSense to learn about possible Node.js debug attributes. // Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes. // Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{
{ "type": "node",
"type": "node", "request": "launch",
"request": "launch", "name": "CLI Babel Registry",
"name": "CLI Babel Registry", "stopOnEntry": false,
"stopOnEntry": false, "program": "${workspaceFolder}/debug/bootstrap.js",
"program": "${workspaceFolder}/debug/bootstrap.js", "args": ["-l", "0.0.0.0:4873"],
"args": ["-l", "0.0.0.0:4873"], "env": {
"env": { "BABEL_ENV": "registry"
"BABEL_ENV": "registry" },
}, "preLaunchTask": "npm: build:webui",
"preLaunchTask": "npm: build:webui", "console": "integratedTerminal"
"console": "integratedTerminal" },
}, {
{ "name": "Unit Tests",
"name": "Unit Tests", "type": "node",
"type": "node", "request": "launch",
"request": "launch", "program": "${workspaceRoot}/node_modules/bin/jest",
"program": "${workspaceRoot}/node_modules/bin/jest", "stopOnEntry": false,
"stopOnEntry": false, "args": ["--debug=true"],
"args": [ "cwd": "${workspaceRoot}",
"--debug=true" ], "runtimeExecutable": null,
"cwd": "${workspaceRoot}", "runtimeArgs": ["--nolazy"],
"runtimeExecutable": null, "env": {
"runtimeArgs": [ "NODE_ENV": "test",
"--nolazy" "TZ": "UTC"
], },
"env": { "console": "integratedTerminal"
"NODE_ENV": "test", },
"TZ": "UTC" {
}, "name": "Functional Tests",
"console": "integratedTerminal" "type": "node",
}, "request": "launch",
{ "program": "${workspaceRoot}/node_modules/.bin/jest",
"name": "Functional Tests", "stopOnEntry": false,
"type": "node", "args": [
"request": "launch", "--config",
"program": "${workspaceRoot}/node_modules/.bin/jest", "./test/jest.config.functional.js",
"stopOnEntry": false, "--testPathPattern",
"args": [ "./test/functional/index*",
"--config", "--debug=false",
"./test/jest.config.functional.js", "--verbose",
"--testPathPattern", "--useStderr",
"./test/functional/index*", "--detectOpenHandles"
"--debug=false", ],
"--verbose", "cwd": "${workspaceRoot}",
"--useStderr", "env": {
"--detectOpenHandles"], "BABEL_ENV": "testOldEnv",
"cwd": "${workspaceRoot}", "VERDACCIO_DEBUG": "true",
"env": { "VERDACCIO_DEBUG_INJECT": "true",
"BABEL_ENV": "testOldEnv", "NODE_DEBUG": "TO_DEBUG_REQUEST_REMOVE_THIS_request"
"VERDACCIO_DEBUG": "true", },
"VERDACCIO_DEBUG_INJECT": "true", "preLaunchTask": "pre-test",
"NODE_DEBUG": "TO_DEBUG_REQUEST_REMOVE_THIS_request" "console": "integratedTerminal",
}, "runtimeExecutable": null,
"preLaunchTask": "pre-test", "runtimeArgs": ["--nolazy"]
"console": "integratedTerminal", },
"runtimeExecutable": null, {
"runtimeArgs": [ "type": "node",
"--nolazy" "request": "launch",
], "name": "Verdaccio Compiled",
}, "preLaunchTask": "npm: code:build",
{ "program": "${workspaceRoot}/bin/verdaccio",
"type": "node", "args": ["-l", "0.0.0.0:4873"],
"request": "launch", "console": "integratedTerminal"
"name": "Verdaccio Compiled", }
"preLaunchTask": "npm: code:build", ]
"program": "${workspaceRoot}/bin/verdaccio",
"args": ["-l", "0.0.0.0:4873"],
"console": "integratedTerminal"
}
]
} }

18
.vscode/settings.json vendored
View file

@ -1,12 +1,12 @@
// Place your settings in this file to overwrite default and user settings. // Place your settings in this file to overwrite default and user settings.
{ {
"files.exclude": { "files.exclude": {
"**/.nyc_output": true, "**/.nyc_output": true,
"**/build": false, "**/build": false,
"**/coverage": true, "**/coverage": true,
".idea": true, ".idea": true,
"storage_default_storage": true, "storage_default_storage": true,
".yarn": true ".yarn": true
}, },
"typescript.tsdk": "node_modules/typescript/lib" "typescript.tsdk": "node_modules/typescript/lib"
} }

43
.vscode/tasks.json vendored
View file

@ -1,24 +1,21 @@
{ {
// See https://go.microsoft.com/fwlink/?LinkId=733558 // See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format // for the documentation about the tasks.json format
"version": "2.0.0", "version": "2.0.0",
"tasks": [ "tasks": [
{ {
"type": "npm", "type": "npm",
"script": "build:webui", "script": "build:webui",
"problemMatcher": [] "problemMatcher": []
}, },
{ {
"type": "npm", "type": "npm",
"script": "code:build", "script": "code:build",
"problemMatcher": [] "problemMatcher": []
}, },
{ {
"label": "pre-test", "label": "pre-test",
"dependsOn": [ "dependsOn": ["npm: code:build", "npm: test:clean"]
"npm: code:build", }
"npm: test:clean" ]
] }
}
]
}

View file

@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo
Examples of behavior that contributes to creating a positive environment include: Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language - Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences - Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism - Gracefully accepting constructive criticism
* Focusing on what is best for the community - Focusing on what is best for the community
* Showing empathy towards other community members - Showing empathy towards other community members
Examples of unacceptable behavior by participants include: Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances - The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks - Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment - Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission - Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting - Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities ## Our Responsibilities

View file

@ -14,13 +14,13 @@ Additional information is available on the
- [How Do I Contribute?](#how-do-i-contribute) - [How Do I Contribute?](#how-do-i-contribute)
- [Development](#development) - [Development](#development)
- [Reporting Bugs](#reporting-bugs) - [Reporting Bugs](#reporting-bugs)
- [Issue Search](#issue-search) - [Issue Search](#issue-search)
- [Check Website For Solution](#check-website-for-solution) - [Check Website For Solution](#check-website-for-solution)
- [Chat](#chat) - [Chat](#chat)
- [Check If It's Been Fixed](#check-if-its-been-fixed) - [Check If It's Been Fixed](#check-if-its-been-fixed)
- [Request Features](#request-features) - [Request Features](#request-features)
- [Submitting a Pull Request](#submitting-a-pull-request) - [Submitting a Pull Request](#submitting-a-pull-request)
- [Make Changes and Commit](#make-changes-and-commit) - [Make Changes and Commit](#make-changes-and-commit)
- [Update Tests](#update-tests) - [Update Tests](#update-tests)
- [Develop Plugins](#develop-plugins) - [Develop Plugins](#develop-plugins)
@ -29,10 +29,10 @@ Additional information is available on the
There are different ways to contribute, each with a different level There are different ways to contribute, each with a different level
of involvement and technical knowledge required, such as: of involvement and technical knowledge required, such as:
* [Reporting Bugs](#reporting-bugs) - [Reporting Bugs](#reporting-bugs)
* [Request Features](#request-features) - [Request Features](#request-features)
* [Develop Plugins](#develop-plugins) - [Develop Plugins](#develop-plugins)
* [Improve Documentation](http://www.verdaccio.org/docs/en/installation.html) - [Improve Documentation](http://www.verdaccio.org/docs/en/installation.html)
**Please read this document carefully. It will help maintainers and readers **Please read this document carefully. It will help maintainers and readers
in solving your issue(s), evaluating your feature request, etc.** in solving your issue(s), evaluating your feature request, etc.**
@ -41,8 +41,8 @@ in solving your issue(s), evaluating your feature request, etc.**
Development guides can be found on the [wiki](https://github.com/verdaccio/verdaccio/wiki): Development guides can be found on the [wiki](https://github.com/verdaccio/verdaccio/wiki):
* [Building the project](https://github.com/verdaccio/verdaccio/wiki/Build-Source-Code) - [Building the project](https://github.com/verdaccio/verdaccio/wiki/Build-Source-Code)
* [Running, debugging, and testing](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests) - [Running, debugging, and testing](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests)
## Reporting Bugs ## Reporting Bugs
@ -51,7 +51,7 @@ We welcome clear, detailed bug reports.
**Bugs are considered features that are not working as described in **Bugs are considered features that are not working as described in
documentation.** documentation.**
If you've found a bug in Verdaccio **that isn't a security risk**, please file If you've found a bug in Verdaccio **that isn't a security risk**, please file
a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues). a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues).
**NOTE: Verdaccio still does not support all npm commands. Some were not **NOTE: Verdaccio still does not support all npm commands. Some were not
@ -66,7 +66,7 @@ Additionally, we have labelled questions for easy follow-up as [questions](https
If so, up-vote it (using GitHub reactions) or add additional helpful details to If so, up-vote it (using GitHub reactions) or add additional helpful details to
the existing issue to show that it's affecting multiple people. the existing issue to show that it's affecting multiple people.
### Check Website For Solution ### Check Website For Solution
Some of the most popular topics can be found in our website(http://www.verdaccio.org/docs/en/installation.html) Some of the most popular topics can be found in our website(http://www.verdaccio.org/docs/en/installation.html)
@ -89,10 +89,10 @@ the project. Then, detail your request, ensuring context and use case is provide
**Please provide:** **Please provide:**
* A detailed description the advantages of your request - A detailed description the advantages of your request
* Whether or not it's compatible with `npm` and `yarn` - Whether or not it's compatible with `npm` and `yarn`
* A potential implementation or design - A potential implementation or design
* Whatever else you have in your mind 🤓 - Whatever else you have in your mind 🤓
### Submitting a Pull Request ### Submitting a Pull Request
@ -137,8 +137,8 @@ semantic versioning.
For example: For example:
* `feat: A new feature` - `feat: A new feature`
* `fix: A bug fix` - `fix: A bug fix`
A commit of the type feat introduces a new feature to the codebase A commit of the type feat introduces a new feature to the codebase
(this correlates with MINOR in semantic versioning). (this correlates with MINOR in semantic versioning).
@ -154,7 +154,7 @@ A commit of the type fix patches a bug in your codebase (this correlates with PA
e.g.: e.g.:
``` ```
fix: xxxxxxxxxx fix: xxxxxxxxxxx
``` ```
Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:` Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:`
@ -174,12 +174,13 @@ If you need help with how testing works, please [refer to the following guide](h
features without tests will not be merged.** features without tests will not be merged.**
Things excluded from tests: Things excluded from tests:
* Documentation
* Website - Documentation
* Build - Website
* Deployment - Build
* Assets - Deployment
* Flow types - Assets
- Flow types
## Develop Plugins ## Develop Plugins
@ -188,7 +189,7 @@ Plugins are add-ons that extend the functionality of the application.
If you want to develop your own plugin: If you want to develop your own plugin:
1. Check whether there is a legacy Sinopia plugin for the feature that you need 1. Check whether there is a legacy Sinopia plugin for the feature that you need
via [npmjs](https://www.npmjs.com/search?q=sinopia) via [npmjs](https://www.npmjs.com/search?q=sinopia)
2. Keep in mind the [life-cycle to load a plugin](https://verdaccio.org/docs/en/dev-plugins) 2. Keep in mind the [life-cycle to load a plugin](https://verdaccio.org/docs/en/dev-plugins)
3. You are free to host your plugin in your repository or ours (just ask) 3. You are free to host your plugin in your repository or ours (just ask)
4. Provide a detailed description of your plugin to help users understand it 4. Provide a detailed description of your plugin to help users understand it

View file

@ -1,5 +1,4 @@
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable --> <!-- markdownlint-disable -->
<table> <table>
<tr> <tr>
@ -37,5 +36,4 @@
</table> </table>
<!-- markdownlint-enable --> <!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END --> <!-- ALL-CONTRIBUTORS-LIST:END -->

View file

@ -10,7 +10,6 @@ For those looking to extend their storage capabilities, Verdaccio
**supports various community-made plugins to hook into services such as Amazon's s3, **supports various community-made plugins to hook into services such as Amazon's s3,
Google Cloud Storage** or create your own plugin. Google Cloud Storage** or create your own plugin.
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio) [![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio) [![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE) [![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
@ -20,7 +19,6 @@ Google Cloud Storage** or create your own plugin.
[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm) [![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers) [![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
## Install 5.x ## Install 5.x
> ⚠️ Not available on npmjs yet > ⚠️ Not available on npmjs yet
@ -35,8 +33,8 @@ docker pull verdaccio/verdaccio:5.x-next
The `5.x` still under development, key points: The `5.x` still under development, key points:
* We use **pnpm** as monorepo management. `npm i -g pnpm@latest`. - We use **pnpm** as monorepo management. `npm i -g pnpm@latest`.
* Please check [the roadmap](https://github.com/verdaccio/verdaccio/issues/1690) if you want to contribute - Please check [the roadmap](https://github.com/verdaccio/verdaccio/issues/1690) if you want to contribute
``` ```
pnpm install pnpm install
@ -51,19 +49,16 @@ pnpm test
We are still experimenting with few things, be patience, Verdaccio v4 will run for still long period until this is getting done. We are still experimenting with few things, be patience, Verdaccio v4 will run for still long period until this is getting done.
## Donations ## Donations
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider making a donation - **your logo might end up in this readme.** 😉 Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider making a donation - **your logo might end up in this readme.** 😉
**[Donate](https://opencollective.com/verdaccio)** 💵👍🏻 starting from *$1/month* or just one single contribution. **[Donate](https://opencollective.com/verdaccio)** 💵👍🏻 starting from _\$1/month_ or just one single contribution.
## Report a vulnerability ## Report a vulnerability
If you want to report a security vulnerability, please follow the steps which we have defined for you in our [security policy](https://github.com/verdaccio/verdaccio/security/policy). If you want to report a security vulnerability, please follow the steps which we have defined for you in our [security policy](https://github.com/verdaccio/verdaccio/security/policy).
## Open Collective Sponsors ## Open Collective Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)] Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)]
@ -103,19 +98,18 @@ This project exists thanks to all the people who contribute. [[Contribute](CONTR
If you have any issue you can try the following options, do no desist to ask or check our issues database, perhaps someone has asked already what you are looking for. If you have any issue you can try the following options, do no desist to ask or check our issues database, perhaps someone has asked already what you are looking for.
* [Blog](https://verdaccio.org/blog/) - [Blog](https://verdaccio.org/blog/)
* [Donations](https://opencollective.com/verdaccio) - [Donations](https://opencollective.com/verdaccio)
* [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug) - [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)
* [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss) - [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)
* [Chat](http://chat.verdaccio.org/) - [Chat](http://chat.verdaccio.org/)
* [Logos](https://verdaccio.org/docs/en/logo) - [Logos](https://verdaccio.org/docs/en/logo)
* [Docker Examples](https://github.com/verdaccio/docker-examples) - [Docker Examples](https://github.com/verdaccio/docker-examples)
* [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20) - [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)
### License ### License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE) Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
[Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs). [Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).

View file

@ -6,11 +6,9 @@ The following table describes the versions of this project that are currently su
| Version | Supported | | Version | Supported |
| ------- | ------------------ | | ------- | ------------------ |
| 2.x | :x: | | 2.x | :x: |
| 3.x | :x: | | 3.x | :x: |
| 4.x | :white_check_mark: (until 1st July 2021) | | 4.x | :white_check_mark: |
| 5.x | :white_check_mark: |
## Responsible disclosure security policy ## Responsible disclosure security policy
@ -28,11 +26,11 @@ At Verdaccio, we consider the security of our systems a top priority. But no mat
If you discover a security vulnerability, please use one of the following means of communications to report it to us: If you discover a security vulnerability, please use one of the following means of communications to report it to us:
* Report the security issue to the Node.js Security WG through the [HackerOne program](https://hackerone.com/nodejs-ecosystem) for ecosystem modules on npm, or to [Snyk Security Team](https://snyk.io/vulnerability-disclosure). They will help triage the security issue and work with all involved parties to remediate and release a fix. - Report the security issue to the Node.js Security WG through the [HackerOne program](https://hackerone.com/nodejs-ecosystem) for ecosystem modules on npm, or to [Snyk Security Team](https://snyk.io/vulnerability-disclosure). They will help triage the security issue and work with all involved parties to remediate and release a fix.
Note that time-frame and processes are subject to each programs own policy. Note that time-frame and processes are subject to each programs own policy.
* Report the security issue to the project maintainers directly at verdaccio@pm.me. If the report contains highly sensitive information, please be advised to encrypt your findings using our [PGP key](https://verdaccio.nyc3.digitaloceanspaces.com/gpg/publickey.verdaccio@pm.me.asc) which is also available in this document. - Report the security issue to the project maintainers directly at verdaccio@pm.me. If the report contains highly sensitive information, please be advised to encrypt your findings using our [PGP key](https://verdaccio.nyc3.digitaloceanspaces.com/gpg/publickey.verdaccio@pm.me.asc) which is also available in this document.
Your efforts to responsibly disclose your findings are sincerely appreciated and will be taken into account to acknowledge your contributions. Your efforts to responsibly disclose your findings are sincerely appreciated and will be taken into account to acknowledge your contributions.

View file

@ -4,7 +4,7 @@ codecov:
coverage: coverage:
precision: 2 precision: 2
round: down round: down
range: "80...85" range: '80...85'
status: status:
project: project:
@ -24,6 +24,6 @@ parsers:
macro: no macro: no
comment: comment:
layout: "diff,flags,tree" layout: 'diff,flags,tree'
behavior: default behavior: default
require_changes: no require_changes: no

View file

@ -1,10 +1,7 @@
# Debuging Documentation # Debuging Documentation
## Debugging tests ## Debugging tests
### Running a single test ### Running a single test
```bash ```bash
@ -17,7 +14,7 @@ Using `--runInBand` allows you to see the `console.log` prints, without that `je
You can take advance of `debug` module used by many dependencies, eg: You can take advance of `debug` module used by many dependencies, eg:
* `supertest`: `DEBUG=superagent yarn test test/integration/package.spec.ts --runInBand` - `supertest`: `DEBUG=superagent yarn test test/integration/package.spec.ts --runInBand`
* `express`: `DEBUG=express:* yarn test test/integration/package.spec.ts --runInBand` - `express`: `DEBUG=express:* yarn test test/integration/package.spec.ts --runInBand`
* `nock`: `DEBUG=nock yarn test test/integration/package.spec.ts --runInBand` - `nock`: `DEBUG=nock yarn test test/integration/package.spec.ts --runInBand`
* All of if: `DEBUG=* yarn test test/integration/package.spec.ts --runInBand` - All of if: `DEBUG=* yarn test test/integration/package.spec.ts --runInBand`

View file

@ -38,8 +38,8 @@
"@babel/preset-typescript": "7.10.4", "@babel/preset-typescript": "7.10.4",
"@babel/register": "7.10.5", "@babel/register": "7.10.5",
"@babel/runtime": "7.10.5", "@babel/runtime": "7.10.5",
"@changesets/changelog-github": "^0.1.1", "@changesets/changelog-github": "0.1.1",
"@changesets/cli": "^2.10.1", "@changesets/cli": "2.10.1",
"@commitlint/cli": "8.3.5", "@commitlint/cli": "8.3.5",
"@commitlint/config-conventional": "8.2.0", "@commitlint/config-conventional": "8.2.0",
"@octokit/rest": "17.0.0", "@octokit/rest": "17.0.0",
@ -54,8 +54,8 @@
"@types/request": "2.48.3", "@types/request": "2.48.3",
"@types/semver": "7.2.0", "@types/semver": "7.2.0",
"@types/supertest": "2.0.9", "@types/supertest": "2.0.9",
"@typescript-eslint/eslint-plugin": "^3.10.1", "@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "^3.10.1", "@typescript-eslint/parser": "3.10.1",
"@verdaccio/types": "workspace:*", "@verdaccio/types": "workspace:*",
"@verdaccio/ui-theme": "latest", "@verdaccio/ui-theme": "latest",
"babel-core": "7.0.0-bridge.0", "babel-core": "7.0.0-bridge.0",
@ -72,10 +72,9 @@
"eslint-plugin-babel": "5.3.0", "eslint-plugin-babel": "5.3.0",
"eslint-plugin-import": "2.22.0", "eslint-plugin-import": "2.22.0",
"eslint-plugin-jest": "23.8.0", "eslint-plugin-jest": "23.8.0",
"eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-jsx-a11y": "6.3.1",
"eslint-plugin-prettier": "3.1.2", "eslint-plugin-react": "7.20.6",
"eslint-plugin-react": "^7.20.6", "eslint-plugin-react-hooks": "4.1.0",
"eslint-plugin-react-hooks": "^4.1.0",
"eslint-plugin-simple-import-sort": "5.0.2", "eslint-plugin-simple-import-sort": "5.0.2",
"eslint-plugin-verdaccio": "8.4.2", "eslint-plugin-verdaccio": "8.4.2",
"fs-extra": "8.1.0", "fs-extra": "8.1.0",
@ -88,13 +87,13 @@
"kleur": "3.0.3", "kleur": "3.0.3",
"lint-staged": "8.2.1", "lint-staged": "8.2.1",
"nock": "12.0.3", "nock": "12.0.3",
"npm-run-all": "^4.1.5", "npm-run-all": "4.1.5",
"prettier": "2.0.5", "prettier": "2.0.5",
"rimraf": "3.0.2", "rimraf": "3.0.2",
"selfsigned": "1.10.7", "selfsigned": "1.10.7",
"standard-version": "8.0.0", "standard-version": "8.0.0",
"supertest": "4.0.2", "supertest": "4.0.2",
"typescript": "4.0.2", "typescript": ">=3.3.1 <3.10.0",
"verdaccio": "latest", "verdaccio": "latest",
"verdaccio-audit": "latest", "verdaccio-audit": "latest",
"verdaccio-auth-memory": "latest", "verdaccio-auth-memory": "latest",
@ -107,7 +106,9 @@
"clean": "pnpm recursive run clean", "clean": "pnpm recursive run clean",
"build": "pnpm recursive run build", "build": "pnpm recursive run build",
"docker": "docker build -t verdaccio/verdaccio:local . --no-cache", "docker": "docker build -t verdaccio/verdaccio:local . --no-cache",
"lint": "eslint . --ext .js,.ts,.tsx,.jsx", "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"",
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"",
"lint": "eslint \"**/*.{js,jsx,ts,tsx}\"",
"test": "pnpm recursive test", "test": "pnpm recursive test",
"test:e2e:cli": "cross-env NODE_ENV=test jest --config ./test/e2e-cli/jest.config.e2e.cli.js --passWithNoTests", "test:e2e:cli": "cross-env NODE_ENV=test jest --config ./test/e2e-cli/jest.config.e2e.cli.js --passWithNoTests",
"website:lint": "cd website && yarn lint", "website:lint": "cd website && yarn lint",
@ -124,5 +125,14 @@
"extends": [ "extends": [
"@commitlint/config-conventional" "@commitlint/config-conventional"
] ]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,jsx,ts,tsx,json,yml,yaml,md}": "prettier --write",
"*.{js,jsx,ts,tsx}": "eslint --cache --fix"
} }
} }

View file

@ -214,7 +214,7 @@ class Auth implements IAuth {
debug('bypass unpublish for %o, publish will handle the access', packageName); debug('bypass unpublish for %o, publish will handle the access', packageName);
// @ts-ignore // @ts-ignore
// eslint-disable-next-line // eslint-disable-next-line
return this.allow_publish(...arguments); return this.allow_publish(...arguments);
} }
if (ok) { if (ok) {

View file

@ -1 +1 @@
? security security:

View file

@ -1,11 +1,11 @@
import { getInternalError } from '@verdaccio/commons-api'; import { getInternalError } from '@verdaccio/commons-api';
module.exports = function ( ) { module.exports = function () {
return { return {
authenticate( user, pass, callback ) { authenticate(user, pass, callback) {
// we return an 500 error, the second argument must be false. // we return an 500 error, the second argument must be false.
// https://verdaccio.org/docs/en/dev-plugins#onerror // https://verdaccio.org/docs/en/dev-plugins#onerror
callback(getInternalError(), false); callback(getInternalError(), false);
} },
}; };
}; };

View file

@ -1,10 +1,9 @@
module.exports = function () {
module.exports = function ( ) {
return { return {
authenticate( user, pass, callback ) { authenticate(user, pass, callback) {
/* user and pass are used here to forward errors /* user and pass are used here to forward errors
and success types respectively for testing purposes */ and success types respectively for testing purposes */
callback(user, pass); callback(user, pass);
} },
}; };
}; };

View file

@ -1,10 +1,9 @@
module.exports = function () {
module.exports = function ( ) {
return { return {
authenticate( user, pass, callback ) { authenticate(user, pass, callback) {
// https://verdaccio.org/docs/en/dev-plugins#onsuccess // https://verdaccio.org/docs/en/dev-plugins#onsuccess
// this is a successful login and return a simple group // this is a successful login and return a simple group
callback(null, ['test']); callback(null, ['test']);
} },
}; };
}; };

View file

@ -2,8 +2,8 @@
This directory host the default configuration file, but you can find more here: This directory host the default configuration file, but you can find more here:
* [https://verdaccio.org/docs/en/installation](https://verdaccio.org/docs/en/installation) - [https://verdaccio.org/docs/en/installation](https://verdaccio.org/docs/en/installation)
* [Chat with us](http://chat.verdaccio.org) <- You need a Discord account - [Chat with us](http://chat.verdaccio.org) <- You need a Discord account
* [Follow us on Twitter](https://twitter.com/verdaccio_npm) - [Follow us on Twitter](https://twitter.com/verdaccio_npm)
Enjoy Verdaccio ! Enjoy Verdaccio !

View file

@ -87,7 +87,6 @@ logs:
# { type: file, path: verdaccio.log, level: http} # { type: file, path: verdaccio.log, level: http}
# FIXME: this should be documented # FIXME: this should be documented
# More info about log rotation https://github.com/pinojs/pino/blob/master/docs/help.md#log-rotation # More info about log rotation https://github.com/pinojs/pino/blob/master/docs/help.md#log-rotation
#experiments: #experiments:
# # support for npm token command # # support for npm token command
# token: false # token: false

View file

@ -11,6 +11,5 @@ commons api utilities for verdaccio
![MIT](https://img.shields.io/github/license/mashape/apistatus.svg) ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm) [![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers) [![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)

View file

@ -6,7 +6,7 @@
# File Locking # File Locking
This an utility to lock and unlock files This an utility to lock and unlock files
[![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/file-locking/latest.svg)](https://www.npmjs.com/package/verdaccio) [![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/file-locking/latest.svg)](https://www.npmjs.com/package/verdaccio)
[![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html) [![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html)
@ -17,6 +17,5 @@ This an utility to lock and unlock files
![MIT](https://img.shields.io/github/license/mashape/apistatus.svg) ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm) [![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers) [![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)

View file

@ -1,4 +1,3 @@
[![verdaccio (latest)](https://img.shields.io/npm/v/verdaccio-htpasswd/latest.svg)](https://www.npmjs.com/package/verdaccio-htpasswd) [![verdaccio (latest)](https://img.shields.io/npm/v/verdaccio-htpasswd/latest.svg)](https://www.npmjs.com/package/verdaccio-htpasswd)
[![Known Vulnerabilities](https://snyk.io/test/github/verdaccio/verdaccio-htpasswd/badge.svg?targetFile=package.json)](https://snyk.io/test/github/verdaccio/verdaccio-htpasswd?targetFile=package.json) [![Known Vulnerabilities](https://snyk.io/test/github/verdaccio/verdaccio-htpasswd/badge.svg?targetFile=package.json)](https://snyk.io/test/github/verdaccio/verdaccio-htpasswd?targetFile=package.json)
[![CircleCI](https://circleci.com/gh/verdaccio/verdaccio-htpasswd.svg?style=svg)](https://circleci.com/gh/ayusharma/verdaccio-htpasswd) [![codecov](https://codecov.io/gh/ayusharma/verdaccio-htpasswd/branch/master/graph/badge.svg)](https://codecov.io/gh/ayusharma/verdaccio-htpasswd) [![CircleCI](https://circleci.com/gh/verdaccio/verdaccio-htpasswd.svg?style=svg)](https://circleci.com/gh/ayusharma/verdaccio-htpasswd) [![codecov](https://codecov.io/gh/ayusharma/verdaccio-htpasswd/branch/master/graph/badge.svg)](https://codecov.io/gh/ayusharma/verdaccio-htpasswd)
@ -8,7 +7,6 @@
![MIT](https://img.shields.io/github/license/mashape/apistatus.svg) ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)
[![node](https://img.shields.io/node/v/verdaccio-htpasswd/latest.svg)](https://www.npmjs.com/package/verdaccio-htpasswd) [![node](https://img.shields.io/node/v/verdaccio-htpasswd/latest.svg)](https://www.npmjs.com/package/verdaccio-htpasswd)
# Verdaccio Module For User Auth Via Htpasswd # Verdaccio Module For User Auth Via Htpasswd
`verdaccio-htpasswd` is a default authentication plugin for the [Verdaccio](https://github.com/verdaccio/verdaccio). `verdaccio-htpasswd` is a default authentication plugin for the [Verdaccio](https://github.com/verdaccio/verdaccio).
@ -40,8 +38,8 @@ To log in using NPM, run:
## Generate htpasswd username/password combination ## Generate htpasswd username/password combination
If you wish to handle access control using htpasswd file, you can generate If you wish to handle access control using htpasswd file, you can generate
username/password combination form username/password combination form
[here](http://www.htaccesstools.com/htpasswd-generator/) and add it to htpasswd [here](http://www.htaccesstools.com/htpasswd-generator/) and add it to htpasswd
file. file.
@ -54,12 +52,14 @@ crypt method and may use MD5 or SHA1.
## Plugin Development in Verdaccio ## Plugin Development in Verdaccio
There are many ways to extend [Verdaccio](https://github.com/verdaccio/verdaccio), There are many ways to extend [Verdaccio](https://github.com/verdaccio/verdaccio),
currently it support authentication plugins, middleware plugins (since v2.7.0) currently it support authentication plugins, middleware plugins (since v2.7.0)
and storage plugins since (v3.x). and storage plugins since (v3.x).
#### Useful Links #### Useful Links
- [Plugin Development](http://www.verdaccio.org/docs/en/dev-plugins.html) - [Plugin Development](http://www.verdaccio.org/docs/en/dev-plugins.html)
- [List of Plugins](http://www.verdaccio.org/docs/en/plugins.html) - [List of Plugins](http://www.verdaccio.org/docs/en/plugins.html)
## License ## License
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fverdaccio%2Fverdaccio-htpasswd.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fverdaccio%2Fverdaccio-htpasswd?ref=badge_large) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fverdaccio%2Fverdaccio-htpasswd.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fverdaccio%2Fverdaccio-htpasswd?ref=badge_large)

View file

@ -35,5 +35,5 @@ packages:
# log settings # log settings
logs: logs:
- {type: stdout, format: pretty, level: http} - { type: stdout, format: pretty, level: http }
#- {type: file, path: verdaccio.log, level: info} #- {type: file, path: verdaccio.log, level: info}

View file

@ -1,6 +1,6 @@
# @verdaccio/local-storage # @verdaccio/local-storage
📦 File system storage plugin for verdaccio 📦 File system storage plugin for verdaccio
[![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/local-storage/latest.svg)](https://www.npmjs.com/package/@verdaccio/local-storage) [![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/local-storage/latest.svg)](https://www.npmjs.com/package/@verdaccio/local-storage)
[![CircleCI](https://circleci.com/gh/verdaccio/local-storage/tree/master.svg?style=svg)](https://circleci.com/gh/verdaccio/local-storage/tree/master) [![CircleCI](https://circleci.com/gh/verdaccio/local-storage/tree/master.svg?style=svg)](https://circleci.com/gh/verdaccio/local-storage/tree/master)
@ -29,8 +29,8 @@ The main object that handle a JSON database the private packages.
new LocalDatabase(config, logger); new LocalDatabase(config, logger);
``` ```
* **config**: A verdaccio configuration instance. - **config**: A verdaccio configuration instance.
* **logger**: A logger instance - **logger**: A logger instance
### LocalFS ### LocalFS
@ -40,10 +40,8 @@ A class that handle an package instance in the File System
new LocalFS(packageStoragePath, logger); new LocalFS(packageStoragePath, logger);
``` ```
## License ## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/local-storage/blob/master/LICENSE). Verdaccio is [MIT licensed](https://github.com/verdaccio/local-storage/blob/master/LICENSE).
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fverdaccio%2Flocal-storage.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fverdaccio%2Flocal-storage?ref=badge_large) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fverdaccio%2Flocal-storage.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fverdaccio%2Flocal-storage?ref=badge_large)

View file

@ -1,56 +1,56 @@
{ {
"name": "readme-test", "name": "readme-test",
"versions": { "versions": {
"0.0.0": { "0.0.0": {
"name": "test-readme", "name": "test-readme",
"version": "0.0.0", "version": "0.0.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "" "url": ""
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"_id": "test-readme@0.0.0", "_id": "test-readme@0.0.0",
"dist": { "dist": {
"shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863",
"tarball": "http://localhost:1234/test-readme/-/test-readme-0.0.0.tgz" "tarball": "http://localhost:1234/test-readme/-/test-readme-0.0.0.tgz"
}, },
"_from": ".", "_from": ".",
"_npmVersion": "1.3.1", "_npmVersion": "1.3.1",
"_npmUser": { "_npmUser": {
"name": "alex", "name": "alex",
"email": "alex@kocharin.ru" "email": "alex@kocharin.ru"
}, },
"maintainers": [ "maintainers": [
{ {
"name": "juan", "name": "juan",
"email": "juanpicado19@gmail.com" "email": "juanpicado19@gmail.com"
} }
] ]
} }
}, },
"dist-tags": { "dist-tags": {
"foo": "0.0.0", "foo": "0.0.0",
"latest": "0.0.0" "latest": "0.0.0"
}, },
"time": { "time": {
"modified": "2017-10-06T20:30:38.721Z", "modified": "2017-10-06T20:30:38.721Z",
"created": "2017-10-06T20:30:38.721Z", "created": "2017-10-06T20:30:38.721Z",
"0.0.0": "2017-10-06T20:30:38.721Z" "0.0.0": "2017-10-06T20:30:38.721Z"
}, },
"_distfiles": {}, "_distfiles": {},
"_attachments": { "_attachments": {
"test-readme-0.0.0.tgz": { "test-readme-0.0.0.tgz": {
"shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863",
"version": "0.0.0" "version": "0.0.0"
} }
}, },
"_uplinks": {}, "_uplinks": {},
"_rev": "5-d647003b88ff08a0", "_rev": "5-d647003b88ff08a0",
"readme": "this is a readme" "readme": "this is a readme"
} }

View file

@ -18,4 +18,5 @@ npm install @verdaccio/readme
``` ```
## License ## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/readme/blob/master/LICENSE). Verdaccio is [MIT licensed](https://github.com/verdaccio/readme/blob/master/LICENSE).

View file

@ -1,5 +1,5 @@
# mix html and XSS markdown # mix html and XSS markdown
[Basic](javascript:alert('Basic')) [Basic](<javascript:alert('Basic')>)
<a href="https://github.com/webpack/webpack"><img width="200" height="200" src="https://webpack.js.org/assets/icon-square-big.svg"></a> <a href="https://github.com/webpack/webpack"><img width="200" height="200" src="https://webpack.js.org/assets/icon-square-big.svg"></a>

View file

@ -193,8 +193,8 @@ describe('readme', () => {
test('should parse marked', async () => { test('should parse marked', async () => {
const readme: string = await readReadme('mixed-html-mk'); const readme: string = await readReadme('mixed-html-mk');
expect(clean(parseReadme(readme) as string)).toEqual( expect(clean(parseReadme(readme) as string)).toMatchInlineSnapshot(
`<h1 id=\"mix-html-and-xss-markdown\">mix html and XSS markdown</h1><p><a>Basic</a></p><p> <a href=\"https://github.com/webpack/webpack\"><img src=\"https://webpack.js.org/assets/icon-square-big.svg\" height=\"200\" width=\"200\"></a></p>` `"<h1 id=\\"mix-html-and-xss-markdown\\">mix html and XSS markdown</h1><p><a>Basic</a></p><p><a href=\\"https://github.com/webpack/webpack\\"><img src=\\"https://webpack.js.org/assets/icon-square-big.svg\\" height=\\"200\\" width=\\"200\\"></a></p>"`
); );
}); });
}); });

View file

@ -8,7 +8,6 @@
![MIT](https://img.shields.io/github/license/mashape/apistatus.svg) ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)
[![node](https://img.shields.io/node/v/@verdaccio/streams/latest.svg)](https://www.npmjs.com/package/@verdaccio/streams) [![node](https://img.shields.io/node/v/@verdaccio/streams/latest.svg)](https://www.npmjs.com/package/@verdaccio/streams)
This project provides an extension of `PassThrough` stream. This project provides an extension of `PassThrough` stream.
## Detail ## Detail

View file

@ -1,10 +1,10 @@
{ {
"rules": { "rules": {
"spaced-comment": 0, "spaced-comment": 0,
"@typescript-eslint/adjacent-overload-signatures": "off", "@typescript-eslint/adjacent-overload-signatures": "off",
"@typescript-eslint/explicit-member-accessibility": "off", "@typescript-eslint/explicit-member-accessibility": "off",
"@typescript-eslint/interface-name-prefix": "off", "@typescript-eslint/interface-name-prefix": "off",
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": "off" "@typescript-eslint/no-unused-vars": "off"
} }
} }

View file

@ -3,6 +3,7 @@
Typescript definitions for verdaccio plugins and internal code Typescript definitions for verdaccio plugins and internal code
# Typescript # Typescript
For usage with the library, the `tsconfig.json` should looks like this. For usage with the library, the `tsconfig.json` should looks like this.
``` ```
@ -44,5 +45,3 @@ import type {ILocalData, LocalStorage, Logger, Config} from '@verdaccio/types';
... ...
} }
``` ```

View file

@ -11,10 +11,6 @@ notify:
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
'example-stride': 'example-stride':
method: POST method: POST
headers: headers: [{ 'Content-Type': 'application/json' }, { 'authorization': 'Bearer secretToken' }]
[
{ 'Content-Type': 'application/json' },
{ 'authorization': 'Bearer secretToken' },
]
endpoint: https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/message endpoint: https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/message
content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}' content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}'

View file

@ -1,11 +1,11 @@
import { getInternalError } from '@verdaccio/commons-api'; import { getInternalError } from '@verdaccio/commons-api';
module.exports = function ( ) { module.exports = function () {
return { return {
authenticate( user, pass, callback ) { authenticate(user, pass, callback) {
// we return an 500 error, the second argument must be false. // we return an 500 error, the second argument must be false.
// https://verdaccio.org/docs/en/dev-plugins#onerror // https://verdaccio.org/docs/en/dev-plugins#onerror
callback(getInternalError(), false); callback(getInternalError(), false);
} },
}; };
}; };

View file

@ -1,10 +1,9 @@
module.exports = function () {
module.exports = function ( ) {
return { return {
authenticate( user, pass, callback ) { authenticate(user, pass, callback) {
/* user and pass are used here to forward errors /* user and pass are used here to forward errors
and success types respectively for testing purposes */ and success types respectively for testing purposes */
callback(user, pass); callback(user, pass);
} },
}; };
}; };

View file

@ -1,10 +1,9 @@
module.exports = function () {
module.exports = function ( ) {
return { return {
authenticate( user, pass, callback ) { authenticate(user, pass, callback) {
// https://verdaccio.org/docs/en/dev-plugins#onsuccess // https://verdaccio.org/docs/en/dev-plugins#onsuccess
// this is a successful login and return a simple group // this is a successful login and return a simple group
callback(null, ['test']); callback(null, ['test']);
} },
}; };
}; };

View file

@ -2,8 +2,8 @@ function ValidVerdaccioPlugin() {
return { return {
// not valid method // not valid method
// eslint-disable-next-line @typescript-eslint/no-empty-function // eslint-disable-next-line @typescript-eslint/no-empty-function
authenticate__: function(){} authenticate__: function () {},
} };
} }
module.exports = ValidVerdaccioPlugin; module.exports = ValidVerdaccioPlugin;

View file

@ -1,16 +1,35 @@
// this is how a Babel.js transpiled plugin looks like // this is how a Babel.js transpiled plugin looks like
"use strict"; 'use strict';
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, '__esModule', {
value: true value: true,
}); });
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) {descriptor.writable = true;} Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) {defineProperties(Constructor.prototype, protoProps);} if (staticProps) {defineProperties(Constructor, staticProps);} return Constructor; }; }(); var _createClass = (function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ('value' in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
})();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError('Cannot call a class as a function');
}
}
var Dummy = function () { var Dummy = (function () {
function Dummy(config, logger) { function Dummy(config, logger) {
_classCallCheck(this, Dummy); _classCallCheck(this, Dummy);
@ -19,12 +38,14 @@ var Dummy = function () {
this.data = []; this.data = [];
} }
_createClass(Dummy, [{ _createClass(Dummy, [
key: "getPackageStorage", {
value: function getPackageStorage() {} key: 'getPackageStorage',
}]); value: function getPackageStorage() {},
},
]);
return Dummy; return Dummy;
}(); })();
exports.default = Dummy; exports.default = Dummy;

View file

@ -1,8 +1,8 @@
'use strict'; 'use strict';
/* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable @typescript-eslint/no-var-requires */
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, '__esModule', {
value: true value: true,
}); });
exports.Dummy = undefined; exports.Dummy = undefined;
@ -10,7 +10,9 @@ var _dummy = require('./dummy');
var _dummy2 = _interopRequireDefault(_dummy); var _dummy2 = _interopRequireDefault(_dummy);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
exports.Dummy = _dummy2.default; exports.Dummy = _dummy2.default;
exports.default = _dummy2.default; exports.default = _dummy2.default;

View file

@ -1,7 +1,7 @@
function ValidVerdaccioPlugin() { function ValidVerdaccioPlugin() {
return { return {
authenticate: function(){} authenticate: function () {},
} };
} }
module.exports = ValidVerdaccioPlugin; module.exports = ValidVerdaccioPlugin;

File diff suppressed because it is too large Load diff

View file

@ -1,14 +1,20 @@
import {DOMAIN_SERVERS, PORT_SERVER_1, TARBALL} from '../constants'; import { DOMAIN_SERVERS, PORT_SERVER_1, TARBALL } from '../constants';
export default function(name, version = '0.0.0', port = PORT_SERVER_1, domain= `http://${DOMAIN_SERVERS}:${port}`, export default function (
fileName = TARBALL, readme = 'this is a readme'): any { name,
return { version = '0.0.0',
name, port = PORT_SERVER_1,
version, domain = `http://${DOMAIN_SERVERS}:${port}`,
readme, fileName = TARBALL,
dist: { readme = 'this is a readme'
shasum: 'fake', ): any {
tarball: `${domain}/${encodeURIComponent(name)}/-/${fileName}`, return {
} name,
version,
readme,
dist: {
shasum: 'fake',
tarball: `${domain}/${encodeURIComponent(name)}/-/${fileName}`,
},
}; };
} }

View file

@ -3,11 +3,10 @@
The test are structured by feature following this shape: The test are structured by feature following this shape:
```bash ```bash
test test
--- feat --- feat
--- config.yaml --- config.yaml
--- spec.test.ts --- spec.test.ts
--- mock (storage folder) optional --- mock (storage folder) optional
--- partials (optional) --- partials (optional)
``` ```

View file

@ -1,76 +1,76 @@
{ {
"name": "@jquery/jquery", "name": "@jquery/jquery",
"versions": { "versions": {
"1.5.1": { "1.5.1": {
"name": "@jquery/jquery", "name": "@jquery/jquery",
"description": "jQuery: The Write Less, Do More, JavaScript Library", "description": "jQuery: The Write Less, Do More, JavaScript Library",
"url": "jquery.com", "url": "jquery.com",
"keywords": [ "keywords": [
"util", "util",
"dom", "dom",
"jquery" "jquery"
], ],
"author": { "author": {
"name": "John Resig", "name": "John Resig",
"email": "jeresig@gmail.com" "email": "jeresig@gmail.com"
}, },
"contributors": [], "contributors": [],
"dependencies": { "dependencies": {
"jsdom": "=0.1.20", "jsdom": "=0.1.20",
"htmlparser": ">= 1.7.3" "htmlparser": ">= 1.7.3"
}, },
"lib": "lib", "lib": "lib",
"main": "./dist/node-jquery.js", "main": "./dist/node-jquery.js",
"version": "1.5.1", "version": "1.5.1",
"_id": "@jquery/jquery@1.5.1", "_id": "@jquery/jquery@1.5.1",
"engines": { "engines": {
"node": "*" "node": "*"
}, },
"_engineSupported": true, "_engineSupported": true,
"_npmVersion": "0.3.15", "_npmVersion": "0.3.15",
"_nodeVersion": "v0.4.2", "_nodeVersion": "v0.4.2",
"directories": { "directories": {
"lib": "./lib" "lib": "./lib"
}, },
"files": [ "files": [
"" ""
], ],
"_defaultsLoaded": true, "_defaultsLoaded": true,
"dist": { "dist": {
"shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5",
"tarball": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz" "tarball": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz"
}, },
"deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."
} }
}, },
"time": { "time": {
"modified": "2018-05-21T21:39:54.702Z", "modified": "2018-05-21T21:39:54.702Z",
"created": "2011-03-19T07:19:56.392Z", "created": "2011-03-19T07:19:56.392Z",
"1.5.1": "2011-03-19T07:19:56.956Z" "1.5.1": "2011-03-19T07:19:56.956Z"
}, },
"dist-tags": { "dist-tags": {
"beta": "3.0.0", "beta": "3.0.0",
"latest": "3.3.1", "latest": "3.3.1",
"jota": "1.6.3" "jota": "1.6.3"
}, },
"_uplinks": { "_uplinks": {
"npmjs": { "npmjs": {
"etag": "W/\"252f0a131cedd3ea82dfefd6fa049558\"", "etag": "W/\"252f0a131cedd3ea82dfefd6fa049558\"",
"fetched": 1529779934081 "fetched": 1529779934081
} }
}, },
"_distfiles": { "_distfiles": {
"jquery-1.5.1.tgz": { "jquery-1.5.1.tgz": {
"url": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz", "url": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz",
"sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5",
"registry": "npmjs" "registry": "npmjs"
} }
}, },
"_attachments": { "_attachments": {
"jquery-1.5.1.tgz": { "jquery-1.5.1.tgz": {
"shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5" "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5"
} }
}, },
"_rev": "60-fed4915c27b9c1e6", "_rev": "60-fed4915c27b9c1e6",
"readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```"
} }

File diff suppressed because it is too large Load diff

View file

@ -14,28 +14,22 @@
"dependencies": { "dependencies": {
"test": "^1.4.0" "test": "^1.4.0"
}, },
"devDependencies": { "devDependencies": {},
},
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": [ "keywords": [],
],
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_id": "npm_test@1.0.0", "_id": "npm_test@1.0.0",
"_npmVersion": "5.5.1", "_npmVersion": "5.5.1",
"_nodeVersion": "9.3.0", "_nodeVersion": "9.3.0",
"_npmUser": { "_npmUser": {},
},
"dist": { "dist": {
"integrity": "sha512-tfzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", "integrity": "sha512-tfzM1OFjWwg2d2Wke/DV6icjeTZUVOZYLkbf8wmONRSAgMovL/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==",
"shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673", "shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673",
"tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-1.0.0.tgz" "tarball": "http://localhost:4873/npm_test/-/npm_test-1.0.0.tgz"
} }
}, },
"2.0.0": { "2.0.0": {
@ -46,41 +40,35 @@
"dependencies": { "dependencies": {
"test": "^2.4.0" "test": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {},
},
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": [ "keywords": [],
],
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_id": "npm_test@2.0.0", "_id": "npm_test@2.0.0",
"_npmVersion": "5.5.1", "_npmVersion": "5.5.1",
"_nodeVersion": "9.3.0", "_nodeVersion": "9.3.0",
"_npmUser": { "_npmUser": {},
},
"dist": { "dist": {
"integrity": "sha512-tzzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", "integrity": "sha512-tzzM1OFjWwg2d2Wke/DV6icjeTZUVOZYLkbf8wmONRSAgMovL/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==",
"shasum": "3a4e6bd5097b295e520b947c9be3259a9509a673", "shasum": "3a4e6bd5097b295e520b947c9be3259a9509a673",
"tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-2.0.0.tgz" "tarball": "http://localhost:4873/npm_test/-/npm_test-2.0.0.tgz"
} }
} }
}, },
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_attachments": { "_attachments": {
"npm_test-1.0.0.tgz": { "npm_test-1.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR/l6bvtW+mf6xUK/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ/SxVZ+m5PPAsfxn/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd//QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=",
"length": 281 "length": 281
}, },
"npm_test-2.0.0.tgz": { "npm_test-2.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR/l6bvtW+mf6xUK/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ/SxVZ+m5PPAsfxn/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd//QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=",
"length": 281 "length": 281
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1,76 +1,76 @@
{ {
"name": "@jquery/jquery", "name": "@jquery/jquery",
"versions": { "versions": {
"1.5.1": { "1.5.1": {
"name": "@jquery/jquery", "name": "@jquery/jquery",
"description": "jQuery: The Write Less, Do More, JavaScript Library", "description": "jQuery: The Write Less, Do More, JavaScript Library",
"url": "jquery.com", "url": "jquery.com",
"keywords": [ "keywords": [
"util", "util",
"dom", "dom",
"jquery" "jquery"
], ],
"author": { "author": {
"name": "John Resig", "name": "John Resig",
"email": "jeresig@gmail.com" "email": "jeresig@gmail.com"
}, },
"contributors": [], "contributors": [],
"dependencies": { "dependencies": {
"jsdom": "=0.1.20", "jsdom": "=0.1.20",
"htmlparser": ">= 1.7.3" "htmlparser": ">= 1.7.3"
}, },
"lib": "lib", "lib": "lib",
"main": "./dist/node-jquery.js", "main": "./dist/node-jquery.js",
"version": "1.5.1", "version": "1.5.1",
"_id": "@jquery/jquery@1.5.1", "_id": "@jquery/jquery@1.5.1",
"engines": { "engines": {
"node": "*" "node": "*"
}, },
"_engineSupported": true, "_engineSupported": true,
"_npmVersion": "0.3.15", "_npmVersion": "0.3.15",
"_nodeVersion": "v0.4.2", "_nodeVersion": "v0.4.2",
"directories": { "directories": {
"lib": "./lib" "lib": "./lib"
}, },
"files": [ "files": [
"" ""
], ],
"_defaultsLoaded": true, "_defaultsLoaded": true,
"dist": { "dist": {
"shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5",
"tarball": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz" "tarball": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz"
}, },
"deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0."
} }
}, },
"time": { "time": {
"modified": "2018-05-21T21:39:54.702Z", "modified": "2018-05-21T21:39:54.702Z",
"created": "2011-03-19T07:19:56.392Z", "created": "2011-03-19T07:19:56.392Z",
"1.5.1": "2011-03-19T07:19:56.956Z" "1.5.1": "2011-03-19T07:19:56.956Z"
}, },
"dist-tags": { "dist-tags": {
"beta": "3.0.0", "beta": "3.0.0",
"latest": "3.3.1", "latest": "3.3.1",
"jota": "1.6.3" "jota": "1.6.3"
}, },
"_uplinks": { "_uplinks": {
"npmjs": { "npmjs": {
"etag": "W/\"252f0a131cedd3ea82dfefd6fa049558\"", "etag": "W/\"252f0a131cedd3ea82dfefd6fa049558\"",
"fetched": 1529779934081 "fetched": 1529779934081
} }
}, },
"_distfiles": { "_distfiles": {
"jquery-1.5.1.tgz": { "jquery-1.5.1.tgz": {
"url": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz", "url": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz",
"sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5",
"registry": "npmjs" "registry": "npmjs"
} }
}, },
"_attachments": { "_attachments": {
"jquery-1.5.1.tgz": { "jquery-1.5.1.tgz": {
"shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5" "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5"
} }
}, },
"_rev": "60-fed4915c27b9c1e6", "_rev": "60-fed4915c27b9c1e6",
"readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```"
} }

File diff suppressed because it is too large Load diff

View file

@ -14,28 +14,22 @@
"dependencies": { "dependencies": {
"test": "^1.4.0" "test": "^1.4.0"
}, },
"devDependencies": { "devDependencies": {},
},
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": [ "keywords": [],
],
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_id": "npm_test@1.0.0", "_id": "npm_test@1.0.0",
"_npmVersion": "5.5.1", "_npmVersion": "5.5.1",
"_nodeVersion": "9.3.0", "_nodeVersion": "9.3.0",
"_npmUser": { "_npmUser": {},
},
"dist": { "dist": {
"integrity": "sha512-tfzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", "integrity": "sha512-tfzM1OFjWwg2d2Wke/DV6icjeTZUVOZYLkbf8wmONRSAgMovL/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==",
"shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673", "shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673",
"tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-1.0.0.tgz" "tarball": "http://localhost:4873/npm_test/-/npm_test-1.0.0.tgz"
} }
}, },
"2.0.0": { "2.0.0": {
@ -46,41 +40,35 @@
"dependencies": { "dependencies": {
"test": "^2.4.0" "test": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {},
},
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": [ "keywords": [],
],
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_id": "npm_test@2.0.0", "_id": "npm_test@2.0.0",
"_npmVersion": "5.5.1", "_npmVersion": "5.5.1",
"_nodeVersion": "9.3.0", "_nodeVersion": "9.3.0",
"_npmUser": { "_npmUser": {},
},
"dist": { "dist": {
"integrity": "sha512-tzzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", "integrity": "sha512-tzzM1OFjWwg2d2Wke/DV6icjeTZUVOZYLkbf8wmONRSAgMovL/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==",
"shasum": "3a4e6bd5097b295e520b947c9be3259a9509a673", "shasum": "3a4e6bd5097b295e520b947c9be3259a9509a673",
"tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-2.0.0.tgz" "tarball": "http://localhost:4873/npm_test/-/npm_test-2.0.0.tgz"
} }
} }
}, },
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_attachments": { "_attachments": {
"npm_test-1.0.0.tgz": { "npm_test-1.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR/l6bvtW+mf6xUK/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ/SxVZ+m5PPAsfxn/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd//QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=",
"length": 281 "length": 281
}, },
"npm_test-2.0.0.tgz": { "npm_test-2.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR/l6bvtW+mf6xUK/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ/SxVZ+m5PPAsfxn/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd//QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=",
"length": 281 "length": 281
} }
} }

View file

@ -1,53 +1,50 @@
const json = { const json = {
"_id": "forbidden-place", _id: 'forbidden-place',
"name": "forbidden-place", name: 'forbidden-place',
"description": "", description: '',
"dist-tags": { 'dist-tags': {
"latest": "1.0.6" latest: '1.0.6',
}, },
"versions": { versions: {
"1.0.6": { '1.0.6': {
"name": "forbidden-place", name: 'forbidden-place',
"version": "1.0.6", version: '1.0.6',
"description": "", description: '',
"main": "index.js", main: 'index.js',
"scripts": { scripts: {
"test": "echo \"Error: no test specified\" && exit 1" test: 'echo "Error: no test specified" && exit 1',
}, },
"keywords": [ keywords: [],
author: {
], name: 'User NPM',
"author": { email: 'user@domain.com',
"name": "User NPM",
"email": "user@domain.com"
}, },
"license": "ISC", license: 'ISC',
"dependencies": { dependencies: {
"verdaccio": "^2.7.2" verdaccio: '^2.7.2',
}, },
"readme": "# test", readme: '# test',
"readmeFilename": "README.md", readmeFilename: 'README.md',
"_id": "forbidden-place@1.0.6", _id: 'forbidden-place@1.0.6',
"_npmVersion": "5.5.1", _npmVersion: '5.5.1',
"_nodeVersion": "8.7.0", _nodeVersion: '8.7.0',
"_npmUser": { _npmUser: {},
dist: {
integrity: 'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==',
shasum: '2c03764f651a9f016ca0b7620421457b619151b9',
tarball: 'http://localhost:5555/forbidden-place/-/forbidden-place-1.0.6.tgz',
}, },
"dist": { },
"integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==",
"shasum": "2c03764f651a9f016ca0b7620421457b619151b9",
"tarball": "http:\/\/localhost:5555\/forbidden-place\/-\/forbidden-place-1.0.6.tgz"
}
}
}, },
"readme": "# test", readme: '# test',
"_attachments": { _attachments: {
"forbidden-place-1.0.6.tgz": { 'forbidden-place-1.0.6.tgz': {
"content_type": "application\/octet-stream", content_type: 'application/octet-stream',
"data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", data:
"length": 512 'H4sIAAAAAAAAE+2W32vbMBDH85y/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo//79KPeQsnIw5KUDX/9IOvurLuz/DHSjK/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS/pLQe+D+FIv/agIWI6GX66kFuIhT+1gDjrp/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi/IHpU9fz3/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6/f88f/Pu47zomiPk2Lv/dOv8h+P/34/D/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=',
} length: 512,
} },
} },
};
module.exports = json; module.exports = json;

View file

@ -1,54 +1,50 @@
const json = { const json = {
"_id": "@scope\/pk1-test", _id: '@scope/pk1-test',
"name": "@scope\/pk1-test", name: '@scope/pk1-test',
"description": "", description: '',
"dist-tags": { 'dist-tags': {
"latest": "1.0.6" latest: '1.0.6',
}, },
"versions": { versions: {
"1.0.6": { '1.0.6': {
"name": "@scope\/pk1-test", name: '@scope/pk1-test',
"version": "1.0.6", version: '1.0.6',
"description": "", description: '',
"main": "index.js", main: 'index.js',
"scripts": { scripts: {
"test": "echo \"Error: no test specified\" && exit 1" test: 'echo "Error: no test specified" && exit 1',
}, },
"keywords": [ keywords: [],
author: {
], name: 'User NPM',
"author": { email: 'user@domain.com',
"name": "User NPM",
"email": "user@domain.com"
}, },
"license": "ISC", license: 'ISC',
"dependencies": { dependencies: {
"verdaccio": "^2.7.2" verdaccio: '^2.7.2',
}, },
"readme": "# test", readme: '# test',
"readmeFilename": "README.md", readmeFilename: 'README.md',
"_id": "@scope\/pk1-test@1.0.6", _id: '@scope/pk1-test@1.0.6',
"_npmVersion": "5.5.1", _npmVersion: '5.5.1',
"_nodeVersion": "8.7.0", _nodeVersion: '8.7.0',
"_npmUser": { _npmUser: {},
dist: {
integrity: 'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==',
shasum: '2c03764f651a9f016ca0b7620421457b619151b9',
tarball: 'http://localhost:5555/@scope/pk1-test/-/@scope/pk1-test-1.0.6.tgz',
}, },
"dist": { },
"integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==",
"shasum": "2c03764f651a9f016ca0b7620421457b619151b9",
"tarball": "http:\/\/localhost:5555\/@scope\/pk1-test\/-\/@scope\/pk1-test-1.0.6.tgz"
}
}
}, },
"readme": "# test", readme: '# test',
"_attachments": { _attachments: {
"@scope\/pk1-test-1.0.6.tgz": { '@scope/pk1-test-1.0.6.tgz': {
"content_type": "application\/octet-stream", content_type: 'application/octet-stream',
// eslint-disable-next-line max-len data:
"data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", 'H4sIAAAAAAAAE+2W32vbMBDH85y/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo//79KPeQsnIw5KUDX/9IOvurLuz/DHSjK/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS/pLQe+D+FIv/agIWI6GX66kFuIhT+1gDjrp/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi/IHpU9fz3/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6/f88f/Pu47zomiPk2Lv/dOv8h+P/34/D/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=',
"length": 512 length: 512,
} },
} },
} };
module.exports = json; module.exports = json;

View file

@ -5,4 +5,4 @@ function readFile(filePath) {
return fs.readFileSync(path.join(__dirname, `/${filePath}`)); return fs.readFileSync(path.join(__dirname, `/${filePath}`));
} }
export { readFile } export { readFile };

View file

@ -32,7 +32,7 @@ exports[`Utilities parseReadme should parse makrdown text to html template 1`] =
<li>Used to generate RSS Feeds</li> <li>Used to generate RSS Feeds</li>
</ul> </ul>
<h2 id=\\"contributing\\">Contributing</h2> <h2 id=\\"contributing\\">Contributing</h2>
<p>Please read <a href=\\"CONTRIBUTING.md\\">CONTRIBUTING.md</a> for details on our code of conduct, and the process for submitting pull requests to us.</p> <p>Please read <a href=\\"CONTRIBUTING.md\\">CONTRIBUTING.md</a> for details on our code of conduct, and the process for submitting pull requests to us.</p>
<h2 id=\\"versioning\\">Versioning</h2> <h2 id=\\"versioning\\">Versioning</h2>
<p>We use <a href=\\"http://semver.org/\\">SemVer</a> for versioning. For the versions available, see the <a href=\\"https://github.com/your/project/tags\\">tags on this repository</a>.</p> <p>We use <a href=\\"http://semver.org/\\">SemVer</a> for versioning. For the versions available, see the <a href=\\"https://github.com/your/project/tags\\">tags on this repository</a>.</p>
<h2 id=\\"license\\">License</h2> <h2 id=\\"license\\">License</h2>

View file

@ -1,15 +1,15 @@
module.exports = { storage: './storage_default_storage', module.exports = {
storage: './storage_default_storage',
uplinks: { npmjs: { url: 'http://localhost:4873/' } }, uplinks: { npmjs: { url: 'http://localhost:4873/' } },
packages: packages: {
{ '@*/*': { access: '$all', publish: '$all', proxy: 'npmjs' }, '@*/*': { access: '$all', publish: '$all', proxy: 'npmjs' },
'forbidden-place': { access: 'nobody', publish: '$all' }, 'forbidden-place': { access: 'nobody', publish: '$all' },
react: { access: '$all', publish: '$all', proxy: 'npmjs' }, react: { access: '$all', publish: '$all', proxy: 'npmjs' },
'corrupted-package': { access: '$all', publish: '$all', proxy: 'npmjs' }, 'corrupted-package': { access: '$all', publish: '$all', proxy: 'npmjs' },
jquery: { access: '$all', publish: '$all', proxy: 'npmjs' }, jquery: { access: '$all', publish: '$all', proxy: 'npmjs' },
'auth-package': { access: '$authenticated', publish: '$authenticated' }, 'auth-package': { access: '$authenticated', publish: '$authenticated' },
vue: vue: { access: '$authenticated', publish: '$authenticated', proxy: 'npmjs' },
{ access: '$authenticated', '*': { access: '$all', publish: '$all', proxy: 'npmjs' },
publish: '$authenticated', },
proxy: 'npmjs' }, logs: [{ type: 'stdout', format: 'pretty', level: 'warn' }],
'*': { access: '$all', publish: '$all', proxy: 'npmjs' } }, };
logs: [ { type: 'stdout', format: 'pretty', level: 'warn' } ] };

View file

@ -1,6 +1,6 @@
# JSON Configurations # JSON Configurations
This folder host all sort of JSON configurations for testing. **It should not include many scenarios, since we use `yaml` for testing. JSON files on this folder aims to verify a verdaccio JSON config file works properly. This folder host all sort of JSON configurations for testing. \*\*It should not include many scenarios, since we use `yaml` for testing. JSON files on this folder aims to verify a verdaccio JSON config file works properly.
## Contribute ## Contribute

View file

@ -58,13 +58,13 @@ Add additional notes about how to deploy this on a live system
## Built With ## Built With
* The web framework used - The web framework used
* Dependency Management - Dependency Management
* Used to generate RSS Feeds - Used to generate RSS Feeds
## Contributing ## Contributing
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
## Versioning ## Versioning
@ -76,6 +76,6 @@ This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md
## Acknowledgments ## Acknowledgments
* Hat tip to anyone whose code was used - Hat tip to anyone whose code was used
* Inspiration - Inspiration
* etc - etc

View file

@ -1,5 +1,5 @@
# Verdaccio Core # Verdaccio Core
```bash ```bash
npm install --global verdaccio npm install --global verdaccio
``` ```

View file

@ -8,15 +8,15 @@ First of all, we should explain the testing frameworks being used. We use `jest`
We go along with the following rules in order to be consistent with all tests which will make your code review smooth and fast: We go along with the following rules in order to be consistent with all tests which will make your code review smooth and fast:
* We **type** all our tests. eg `const foo: number = 3;` - We **type** all our tests. eg `const foo: number = 3;`
* **Each test should be as small as possible**: You should use the `test()` block to test only one thing and do not depend on other tests. If the test requires different steps, group them with a `describe()` block. - **Each test should be as small as possible**: You should use the `test()` block to test only one thing and do not depend on other tests. If the test requires different steps, group them with a `describe()` block.
* All `test()` **headers titles** should begin with `test('should test ...')`: For consistency with reporting tools, this makes it easier to match the test with the feature needed to be tested. - All `test()` **headers titles** should begin with `test('should test ...')`: For consistency with reporting tools, this makes it easier to match the test with the feature needed to be tested.
* **Any mock data** should be located in the `partials` folder in each section. - **Any mock data** should be located in the `partials` folder in each section.
* Use `yaml` for **configuration files examples** instead of JSON. - Use `yaml` for **configuration files examples** instead of JSON.
* If you use a **file based mock storage**, it should be located in the `store` folder in each section. - If you use a **file based mock storage**, it should be located in the `store` folder in each section.
* All tests **MUST NOT** rely on external sources and must be able to run them **offline**. - All tests **MUST NOT** rely on external sources and must be able to run them **offline**.
* Tests **must run on the following Operating Systems**: Unix (Mac, Linux) and Windows (7 -> latest). - Tests **must run on the following Operating Systems**: Unix (Mac, Linux) and Windows (7 -> latest).
* If you are creating mock data file which use the state and need a clean state, use `rimraf` to remove folders. - If you are creating mock data file which use the state and need a clean state, use `rimraf` to remove folders.
## Testing sections ## Testing sections
@ -24,11 +24,11 @@ Verdaccio testing is split in 3 sections, each of them has different setup and s
If you are adding new tests, comply with the following: If you are adding new tests, comply with the following:
* If you add a new API endpoint, unit and functional tests are mandatory. - If you add a new API endpoint, unit and functional tests are mandatory.
* If you add a utility, unit test is mandatory. - If you add a utility, unit test is mandatory.
* If you are adding a new web API endpoint, the unit test, functional test and if such endpoint has new changes in the UI, E2E test is also mandatory. - If you are adding a new web API endpoint, the unit test, functional test and if such endpoint has new changes in the UI, E2E test is also mandatory.
* If you add or refactor a core class, unit test is mandatory. - If you add or refactor a core class, unit test is mandatory.
* If you fix a bug, you **must** add a new `test()` block to prove that the patch fixes the bug. - If you fix a bug, you **must** add a new `test()` block to prove that the patch fixes the bug.
## Unit test ## Unit test
@ -40,14 +40,14 @@ Unit tests aim to test the CLI API and the Web API. The configuration file is lo
We have prepared a template at `test/unit/api/api.__test.template.spec.ts` that you can follow to create your own unit test. Only the tests are appended with `.spec.ts` which will be found and used by `jest`. We have prepared a template at `test/unit/api/api.__test.template.spec.ts` that you can follow to create your own unit test. Only the tests are appended with `.spec.ts` which will be found and used by `jest`.
> Feel free to suggest improvements to the template, there is still a lot of room for improvement. > Feel free to suggest improvements to the template, there is still a lot of room for improvement.
We recommend the following approach when you create a unit test: We recommend the following approach when you create a unit test:
* For new utilities, we recommend creating a new spec. - For new utilities, we recommend creating a new spec.
* For existing utilities, if the method is already being tested, just add a new `test()` block. - For existing utilities, if the method is already being tested, just add a new `test()` block.
* Notice that all API spec files are appended with `api.[feature].spec.js`, we recommend to follow the same approach. eg: `api.[deprecate].spec.js`. - Notice that all API spec files are appended with `api.[feature].spec.js`, we recommend to follow the same approach. eg: `api.[deprecate].spec.js`.
* Don't mix utilities with API tests. - Don't mix utilities with API tests.
### How the mockServer works? ### How the mockServer works?
@ -56,59 +56,60 @@ Each `[xxx].spec.ts` file usually triggers a `mockServer` on in the`beforeAll` p
Let's analyze the following example: Let's analyze the following example:
```js ```js
const configForTest = configDefault({ const configForTest = configDefault(
{
auth: { auth: {
htpasswd: { htpasswd: {
file: './test-storage-api-spec/.htpasswd' file: './test-storage-api-spec/.htpasswd',
} },
}, },
filters: { filters: {
'../../modules/api/partials/plugin/filter': { '../../modules/api/partials/plugin/filter': {
pkg: 'npm_test', pkg: 'npm_test',
version: '2.0.0' version: '2.0.0',
} },
}, },
storage: store, storage: store,
self_path: store, self_path: store,
uplinks: { uplinks: {
npmjs: { npmjs: {
url: `http://${DOMAIN_SERVERS}:${mockServerPort}` url: `http://${DOMAIN_SERVERS}:${mockServerPort}`,
} },
}, },
logs: [ logs: [{ type: 'stdout', format: 'pretty', level: 'trace' }],
{ type: 'stdout', format: 'pretty', level: 'trace' } },
] 'api.spec.yaml'
}, 'api.spec.yaml'); );
app = await endPointAPI(configForTest); app = await endPointAPI(configForTest);
mockRegistry = await mockServer(mockServerPort).init(); mockRegistry = await mockServer(mockServerPort).init();
``` ```
The `configDefault({}, 'myConfig.yaml)` function is a method that returns a configuration file that will be the config used for your test. The `configDefault({}, 'myConfig.yaml)` function is a method that returns a configuration file that will be the config used for your test.
* The *first argument* allows you to override/extend the default configuration located `/test/unit/partials/config/yaml/default.yaml`. - The _first argument_ allows you to override/extend the default configuration located `/test/unit/partials/config/yaml/default.yaml`.
* The *second argument*s is being used to override the base configuration file, you only need to set the name `api.spec.yaml` you are willing to use, the relative location will be `test/unit/partials/config/yaml/` and will be prefixed on runtime. - The *second argument*s is being used to override the base configuration file, you only need to set the name `api.spec.yaml` you are willing to use, the relative location will be `test/unit/partials/config/yaml/` and will be prefixed on runtime.
> **The generated object will be used for run your test, not for mock the mock server.** > **The generated object will be used for run your test, not for mock the mock server.**
The `app = await endPointAPI(configForTest);` is the server that you are about to run your test against. The `app` object is used to call the endoints, for instance: The `app = await endPointAPI(configForTest);` is the server that you are about to run your test against. The `app` object is used to call the endoints, for instance:
```js ```js
test('should fetch jquery package from remote uplink', (done) => { test('should fetch jquery package from remote uplink', (done) => {
request(app) request(app)
.get('/jquery') .get('/jquery')
.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.OK) .expect(HTTP_STATUS.OK)
.end(function(err, res) { .end(function (err, res) {
if (err) { if (err) {
return done(err); return done(err);
} }
expect(res.body).toBeDefined(); expect(res.body).toBeDefined();
expect(res.body.name).toMatch(/jquery/); expect(res.body.name).toMatch(/jquery/);
done(); done();
}); });
}); });
``` ```
@ -118,7 +119,7 @@ In the previous example, we are fetching `jquery` metadata from our server, we c
The `mockRegistry = await mockServer(mockServerPort).init();` mock registry will be used as `uplink` for the `app` object described above, **this is optional**, but, the most of the tests are using this approach for increase the number of tested scenarios. The `mockRegistry = await mockServer(mockServerPort).init();` mock registry will be used as `uplink` for the `app` object described above, **this is optional**, but, the most of the tests are using this approach for increase the number of tested scenarios.
The *mock server* has a static storage which is located `test/unit/partials/mock-store`, if you need add new packages, those must be commited in such folder. **Any modification in the mock server might affect other test, since is a shared context**. The _mock server_ has a static storage which is located `test/unit/partials/mock-store`, if you need add new packages, those must be commited in such folder. **Any modification in the mock server might affect other test, since is a shared context**.
> It is not possible yet to override the mocks configuration server. > It is not possible yet to override the mocks configuration server.
@ -127,7 +128,6 @@ The *mock server* has a static storage which is located `test/unit/partials/mock
> The `const mockServerPort = 55549;` mock server must be added manually, be careful and try to define a port that is not being used by another test, there is not automation here yet. > The `const mockServerPort = 55549;` mock server must be added manually, be careful and try to define a port that is not being used by another test, there is not automation here yet.
> To increase debugging you might override the `logs` property using `{ type: 'stdout', format: 'pretty', level: 'trace' }` level **trace**, thus the test will display the server request in your terminal, try to keep it in **warn** by default to avoid noise on run all your test. > To increase debugging you might override the `logs` property using `{ type: 'stdout', format: 'pretty', level: 'trace' }` level **trace**, thus the test will display the server request in your terminal, try to keep it in **warn** by default to avoid noise on run all your test.
>
#### Running a single Unit Test #### Running a single Unit Test
@ -137,7 +137,7 @@ To run a single test, use the following command:
yarn jest test/unit/modules/api/api.spec.ts --coverage=false yarn jest test/unit/modules/api/api.spec.ts --coverage=false
``` ```
You might use the *jest* feature `.only` to limit the test suites you want to run, for instance. You might use the _jest_ feature `.only` to limit the test suites you want to run, for instance.
```js ```js
describe.only('should test package api', () => { describe.only('should test package api', () => {
@ -199,62 +199,59 @@ Ran all test suites matching /test\/unit\/modules\/api\/api.spec.ts/i.
debug-=- updating package jquery info debug-=- updating package jquery info
http <-- 200, user: null(::ffff:127.0.0.1), req: 'GET /jquery', bytes: 0/10300 http <-- 200, user: null(::ffff:127.0.0.1), req: 'GET /jquery', bytes: 0/10300
``` ```
The debug display request headers and other handy information about what is happening between your test and the mock server. The debug display request headers and other handy information about what is happening between your test and the mock server.
## Functional tests ## Functional tests
The functional tests aim to run only **cli endpoint** and **web point** using real request to an existing and compiled running Verdaccio server. The functional tests aim to run only **cli endpoint** and **web point** using real request to an existing and compiled running Verdaccio server.
> Be aware if you change something in the `{root}/src` source code, you must run `yarn code:build` before to be able to see your changes because functional tests use the transpiled code. > Be aware if you change something in the `{root}/src` source code, you must run `yarn code:build` before to be able to see your changes because functional tests use the transpiled code.
All tests must be included in the `test/functional/index.spec.ts` file, which bootstraps the whole process. There is only one spec file and **must be only one**. All tests must be included in the `test/functional/index.spec.ts` file, which bootstraps the whole process. There is only one spec file and **must be only one**.
The jest configuration file is defined in `test/jest.config.functional.js`. The configuration will create a custom environment launching 3 Verdaccio servers with different configurations. The jest configuration file is defined in `test/jest.config.functional.js`. The configuration will create a custom environment launching 3 Verdaccio servers with different configurations.
The servers are linked as follows: The servers are linked as follows:
* Server 1 - Server 1
* -> Server 2 - -> Server 2
* -> Server 3 - -> Server 3
* Server 2 - Server 2
* -> Server 1 - -> Server 1
* Server 3 - Server 3
* -> Server 2 - -> Server 2
* -> Server 1 - -> Server 1
* Express app: (if you need to emulate any external endpoint, use the express app) - Express app: (if you need to emulate any external endpoint, use the express app)
Server 1 runs on port `55551`, Server 2 on port `55552` and Server 3 on port `55553`. Server 1 runs on port `55551`, Server 2 on port `55552` and Server 3 on port `55553`.
> If you have the need to increase the number of servers running, it is possible, but please discuss with the team before you go in that path. > If you have the need to increase the number of servers running, it is possible, but please discuss with the team before you go in that path.
#### Adding a new block #### Adding a new block
To add a new feature you need to export the feature as a function that take as an argument any of the servers you want to interact. To add a new feature you need to export the feature as a function that take as an argument any of the servers you want to interact.
```js ```js
// newFeature.ts // newFeature.ts
export default function(server) { export default function (server) {
describe('package access control', () => { describe('package access control', () => {
test('should ...', (done) => { test('should ...', (done) => {
done(); done();
}); });
}); });
} }
``` ```
Then import the feature and run the function within the main `describe` block. Then import the feature and run the function within the main `describe` block.
```js ```js
// index.spec.ts // index.spec.ts
import newFeature from './newFeature'; import newFeature from './newFeature';
describe('functional test verdaccio', function() { describe('functional test verdaccio', function () {
// test are fast, but do not change this time out, 10 seconds should be more than enough // test are fast, but do not change this time out, 10 seconds should be more than enough
jest.setTimeout(10000); jest.setTimeout(10000);
// servers are accessed via a global jest state. // servers are accessed via a global jest state.
@ -272,39 +269,33 @@ Functional tests run over one single file, thus, it is not possible at this stag
## E2E Test ## E2E Test
Verdaccio includes a Web User Interface that must be tested. We use End-to-End testing to run some mock tests against the web API using the UI Theme Verdaccio includes a Web User Interface that must be tested. We use End-to-End testing to run some mock tests against the web API using the UI Theme
include by default. include by default.
```bash ```bash
yarn lint && yarn test:all yarn lint && yarn test:all
``` ```
The test does not have aim to test the integrity of the page, mostly, ensure the basic functionality still works. If you add or modify The test does not have aim to test the integrity of the page, mostly, ensure the basic functionality still works. If you add or modify
a UI feature, the tests must be updated. a UI feature, the tests must be updated.
> The tests rely on CSS classes naming convention, so, it is required some sort of coordination with the **verdaccio/ui** project. > The tests rely on CSS classes naming convention, so, it is required some sort of coordination with the **verdaccio/ui** project.
We uses `puppeteer`, you can find more information about how to use it in their website. We uses `puppeteer`, you can find more information about how to use it in their website.
## Before commit ## Before commit
We recommend run your tests and linters before commit. We recommend run your tests and linters before commit.
```bash ```bash
yarn lint && yarn test:all yarn lint && yarn test:all
``` ```
You can find more in our [guide about run and debugging test](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests#running-the-test). You can find more in our [guide about run and debugging test](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests#running-the-test).
## Continuous Integration ## Continuous Integration
Verdaccio uses [CircleCI](https://circleci.com/gh/verdaccio) as its primary Continuous Integration tool. We run the tests against the most common Node.js versions available. Among them is LTS and the latest release. Before the PR is being merged, all checks must be green. Verdaccio uses [CircleCI](https://circleci.com/gh/verdaccio) as its primary Continuous Integration tool. We run the tests against the most common Node.js versions available. Among them is LTS and the latest release. Before the PR is being merged, all checks must be green.
Node.js versions available, LTS and the latest release. Before the PR is being merged, all check must be green. Node.js versions available, LTS and the latest release. Before the PR is being merged, all check must be green.
> You need a CircleCI account to be able see the test running
> You need a CircleCI account to be able see the test running

View file

@ -7,12 +7,11 @@ function Plugin(config, pluginOptions) {
} }
Plugin.prototype.register_middlewares = function (app) { Plugin.prototype.register_middlewares = function (app) {
const { message } = this._config;
const {message} = this._config;
app.get('/test/route', function (req, res, next) { app.get('/test/route', function (req, res, next) {
res.status(200); res.status(200);
return next({ ok: message }) return next({ ok: message });
}); });
}; };

View file

@ -29,28 +29,24 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, '__esModule', {
value: true value: true,
}); });
class PluginES6 { class PluginES6 {
constructor(config, stuff) { constructor(config, stuff) {
this._config = config; this._config = config;
this._logger = stuff.logger; this._logger = stuff.logger;
} }
register_middlewares(app, /* auth, storage */) { register_middlewares(app /* auth, storage */) {
const message = this._config.message; const message = this._config.message;
app.get('/test/route/es6', function (req, res, next) { app.get('/test/route/es6', function (req, res, next) {
res.status(200); res.status(200);
return next({ ok: message }); return next({ ok: message });
}); });
} }
} }
exports.default = PluginES6; exports.default = PluginES6;

View file

@ -8,7 +8,6 @@ function Plugin(config) {
} }
Plugin.prototype.register_middlewares = function (app) { Plugin.prototype.register_middlewares = function (app) {
app.get('/test-uplink-timeout-*', function (req, res, next) { app.get('/test-uplink-timeout-*', function (req, res, next) {
// https://github.com/nock/nock#readme // https://github.com/nock/nock#readme
nock('http://localhost:55552') nock('http://localhost:55552')
@ -21,7 +20,6 @@ Plugin.prototype.register_middlewares = function (app) {
next(); next();
}); });
}; };
module.exports = Plugin; module.exports = Plugin;

View file

@ -1,48 +1,48 @@
{ {
"name": "__NAME__", "name": "__NAME__",
"versions": { "versions": {
"0.1.0": { "0.1.0": {
"name": "__NAME__", "name": "__NAME__",
"version": "0.1.0", "version": "0.1.0",
"dist": { "dist": {
"shasum": "fake", "shasum": "fake",
"tarball": "http://localhost:55551/__NAME__/-/blahblah" "tarball": "http://localhost:55551/__NAME__/-/blahblah"
} }
}, },
"0.1.1alpha": { "0.1.1alpha": {
"name": "__NAME__", "name": "__NAME__",
"version": "0.1.1alpha", "version": "0.1.1alpha",
"dist": { "dist": {
"shasum": "fake", "shasum": "fake",
"tarball": "http://localhost:55551/__NAME__/-/blahblah" "tarball": "http://localhost:55551/__NAME__/-/blahblah"
} }
}, },
"0.1.2": { "0.1.2": {
"name": "__NAME__", "name": "__NAME__",
"version": "0.1.2", "version": "0.1.2",
"dist": { "dist": {
"shasum": "fake", "shasum": "fake",
"tarball": "http://localhost:55551/__NAME__/-/blahblah" "tarball": "http://localhost:55551/__NAME__/-/blahblah"
} }
}, },
"0.1.3alpha": { "0.1.3alpha": {
"name": "__NAME__", "name": "__NAME__",
"version": "0.1.3alpha", "version": "0.1.3alpha",
"dist": { "dist": {
"shasum": "fake", "shasum": "fake",
"tarball": "http://localhost:55551/__NAME__/-/blahblah" "tarball": "http://localhost:55551/__NAME__/-/blahblah"
} }
}, },
"1.1.0": { "1.1.0": {
"name": "__NAME__", "name": "__NAME__",
"version": "1.1.0", "version": "1.1.0",
"dist": { "dist": {
"shasum": "fake", "shasum": "fake",
"tarball": "http://localhost:55551/__NAME__/-/blahblah" "tarball": "http://localhost:55551/__NAME__/-/blahblah"
} }
} }
}, },
"dist-tags": { "dist-tags": {
"latest": "1.1.0" "latest": "1.1.0"
} }
} }

View file

@ -1,13 +1,13 @@
{ {
"_id": "@test\/scoped", "_id": "@test/scoped",
"name": "@test\/scoped", "name": "@test/scoped",
"description": "test... test... test...", "description": "test... test... test...",
"dist-tags": { "dist-tags": {
"latest": "1.0.0" "latest": "1.0.0"
}, },
"versions": { "versions": {
"1.0.0": { "1.0.0": {
"name": "@test\/scoped", "name": "@test/scoped",
"version": "1.0.0", "version": "1.0.0",
"description": "test... test... test...", "description": "test... test... test...",
"main": "index.js", "main": "index.js",
@ -17,25 +17,23 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_id": "@test\/scoped@1.0.0", "_id": "@test/scoped@1.0.0",
"_shasum": "6e67b14e2c0e450b942e2bc8086b49e90f594790", "_shasum": "6e67b14e2c0e450b942e2bc8086b49e90f594790",
"_from": ".", "_from": ".",
"_npmVersion": "2.0.1", "_npmVersion": "2.0.1",
"_nodeVersion": "0.10.25", "_nodeVersion": "0.10.25",
"_npmUser": { "_npmUser": {},
},
"dist": { "dist": {
"shasum": "6e67b14e2c0e450b942e2bc8086b49e90f594790", "shasum": "6e67b14e2c0e450b942e2bc8086b49e90f594790",
"tarball": "http:\/\/localhost:4873\/@test\/scoped\/-\/@test\/scoped-1.0.0.tgz" "tarball": "http://localhost:4873/@test/scoped/-/@test/scoped-1.0.0.tgz"
} }
} }
}, },
"readme": "ERROR: No README data found!", "readme": "ERROR: No README data found!",
"_attachments": { "_attachments": {
"@test\/scoped-1.0.0.tgz": { "@test/scoped-1.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAAytITM5OTE\/VL4DQelnF+XkMVAYGBgZmZiYKQNrQ3NQAmQYDYwMg29DIxMTY2Mzc1NSYwcDQ2MDIDChPbYdgA6XFJYlFQKdQag7ELwpweoiAaqW8xNxUJSslh5LU4hL94uT8gtQUJR2lstSi4sz8PKCEoZ6BngFQJCW1OLkos6AEIgpSraenp4BGA9XlJmaCFGTmpaRWAJMTUASir1jJqhqsDSiZmpyRrxCj5FpUlF9kpZCXD9auUFyQmpyZlpmaEqOkoKamkFqRWaJgqFSro5RYWpKRXwTUBzQsJzM5Na8Y5GLPYGel2oEOv6EOCtDyf2Vibg617SCQ\/41MzZHyv+Fo\/qcnAOV+KwXU3M8FzfxWCuC8z4WU863QMzyM5gJleysFWK7nguZ5Ky4FsAqgFaTkeS5IjgfqUuKCZngrBWB+5xro4Bp2AJb\/QZGhC4l\/XXCs65WkV1HJDgL539QAOf8bmwHzv4khWD2V7McLRnj+l+\/mgDCY307enXXYQKTN+LUmn5QRq\/u+5mVOLy\/szBZTXN1764bRpKAgp3t7j08XuS7itTLT4+P+P49iligvXC\/2ydVmZendyg9vfLbOiOjZqOPNYHsm2OxLmOHhUglVT5n0Sql0brFjOqcM7b8qxGe+37PB4lT+95fvmOTrVK0ueU3pKqp6PPVztrrvWq5di9afssrV8mlh5JZw43q65OrW94t8SwVYDIrWaLfmcZWErmCuU+8pqe37lHy7zVN1O5vZl3NRyZYhy3LZw7VXym\/VMhOZ5h3A\/lZxyXJR0er9pmK\/CzbPnbaq6OyR7\/zbv5S8\/L677Kryv\/suO2f\/6sn\/0X+p5kC9RPmfdOP\/9Qvb6vjmv1S3\/SMT9e1kQ40d2783Sw7OOzyz6pLxec4tohVH\/Geoy3684erJb8P+ZG7Mr51pZ2eZvr7\/QpbVdU4yA8\/ARuEoGAWjYBSQBQDM0BedABAAAA==", "data": "H4sIAAAAAAAAAytITM5OTE/VL4DQelnF+XkMVAYGBgZmZiYKQNrQ3NQAmQYDYwMg29DIxMTY2Mzc1NSYwcDQ2MDIDChPbYdgA6XFJYlFQKdQag7ELwpweoiAaqW8xNxUJSslh5LU4hL94uT8gtQUJR2lstSi4sz8PKCEoZ6BngFQJCW1OLkos6AEIgpSraenp4BGA9XlJmaCFGTmpaRWAJMTUASir1jJqhqsDSiZmpyRrxCj5FpUlF9kpZCXD9auUFyQmpyZlpmaEqOkoKamkFqRWaJgqFSro5RYWpKRXwTUBzQsJzM5Na8Y5GLPYGel2oEOv6EOCtDyf2Vibg617SCQ/41MzZHyv+Fo/qcnAOV+KwXU3M8FzfxWCuC8z4WU863QMzyM5gJleysFWK7nguZ5Ky4FsAqgFaTkeS5IjgfqUuKCZngrBWB+5xro4Bp2AJb/QZGhC4l/XXCs65WkV1HJDgL539QAOf8bmwHzv4khWD2V7McLRnj+l+/mgDCY307enXXYQKTN+LUmn5QRq/u+5mVOLy/szBZTXN1764bRpKAgp3t7j08XuS7itTLT4+P+P49iligvXC/2ydVmZendyg9vfLbOiOjZqOPNYHsm2OxLmOHhUglVT5n0Sql0brFjOqcM7b8qxGe+37PB4lT+95fvmOTrVK0ueU3pKqp6PPVztrrvWq5di9afssrV8mlh5JZw43q65OrW94t8SwVYDIrWaLfmcZWErmCuU+8pqe37lHy7zVN1O5vZl3NRyZYhy3LZw7VXym/VMhOZ5h3A/lZxyXJR0er9pmK/CzbPnbaq6OyR7/zbv5S8/L677Kryv/suO2f/6sn/0X+p5kC9RPmfdOP/9Qvb6vjmv1S3/SMT9e1kQ40d2783Sw7OOzyz6pLxec4tohVH/Geoy3684erJb8P+ZG7Mr51pZ2eZvr7/QpbVdU4yA8/ARuEoGAWjYBSQBQDM0BedABAAAA==",
"length": 736 "length": 736
} }
} }

View file

@ -24,7 +24,7 @@
"_id": "test-readme@0.0.0", "_id": "test-readme@0.0.0",
"dist": { "dist": {
"shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863",
"tarball": "http:\/\/localhost:1234\/test-readme\/-\/test-readme-0.0.0.tgz" "tarball": "http://localhost:1234/test-readme/-/test-readme-0.0.0.tgz"
}, },
"_from": ".", "_from": ".",
"_npmVersion": "1.3.1", "_npmVersion": "1.3.1",
@ -48,8 +48,8 @@
], ],
"_attachments": { "_attachments": {
"test-readme-0.0.0.tgz": { "test-readme-0.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", "data": "H4sIAAAAAAAAA+2TsW7CMBCGM/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu/fs0Ba1SFVVVISUP8Odzqf/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj/LAyl752yoauioVWqJgpPZcb/Hmw0jV4ynfJEw9lvTAwo/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i/9pFcl+4X/rWhX557xA/9FVZ3gv+j5/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==",
"length": 352 "length": 352
} }
} }

View file

@ -25,7 +25,7 @@
"_id": "test-readme@0.0.0", "_id": "test-readme@0.0.0",
"dist": { "dist": {
"shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863",
"tarball": "http:\/\/localhost:1234\/test-readme\/-\/test-readme-0.0.0.tgz" "tarball": "http://localhost:1234/test-readme/-/test-readme-0.0.0.tgz"
}, },
"_from": ".", "_from": ".",
"_npmVersion": "1.3.1", "_npmVersion": "1.3.1",
@ -50,8 +50,8 @@
], ],
"_attachments": { "_attachments": {
"test-readme-0.0.0.tgz": { "test-readme-0.0.0.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", "data": "H4sIAAAAAAAAA+2TsW7CMBCGM/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu/fs0Ba1SFVVVISUP8Odzqf/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj/LAyl752yoauioVWqJgpPZcb/Hmw0jV4ynfJEw9lvTAwo/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i/9pFcl+4X/rWhX557xA/9FVZ3gv+j5/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==",
"length": 352 "length": 352
} }
} }

View file

@ -24,7 +24,7 @@
"_id": "testpkg-search@0.0.1", "_id": "testpkg-search@0.0.1",
"dist": { "dist": {
"shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863",
"tarball": "http:\/\/localhost:1234\/testpkg-search\/-\/testpkg-search-0.0.1.tgz" "tarball": "http://localhost:1234/testpkg-search/-/testpkg-search-0.0.1.tgz"
}, },
"_from": ".", "_from": ".",
"_npmVersion": "1.3.1", "_npmVersion": "1.3.1",
@ -49,8 +49,8 @@
], ],
"_attachments": { "_attachments": {
"testpkg-search-0.0.1.tgz": { "testpkg-search-0.0.1.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", "data": "H4sIAAAAAAAAA+2TsW7CMBCGM/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu/fs0Ba1SFVVVISUP8Odzqf/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj/LAyl752yoauioVWqJgpPZcb/Hmw0jV4ynfJEw9lvTAwo/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i/9pFcl+4X/rWhX557xA/9FVZ3gv+j5/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==",
"length": 352 "length": 352
} }
} }

View file

@ -32,8 +32,7 @@ auth:
name: authtest name: authtest
password: blahblah-password password: blahblah-password
logs: { type: stdout, format: pretty, level: trace logs: { type: stdout, format: pretty, level: trace }
}
packages: packages:
'@test/*': '@test/*':
access: $all access: $all

View file

@ -24,7 +24,7 @@
"_id": "testpkg-preserve@0.0.1", "_id": "testpkg-preserve@0.0.1",
"dist": { "dist": {
"shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863",
"tarball": "http:\/\/localhost:1234\/testpkg-preserve\/-\/testpkg-preserve-0.0.1.tgz" "tarball": "http://localhost:1234/testpkg-preserve/-/testpkg-preserve-0.0.1.tgz"
}, },
"_from": ".", "_from": ".",
"_npmVersion": "1.3.1", "_npmVersion": "1.3.1",
@ -49,8 +49,8 @@
], ],
"_attachments": { "_attachments": {
"testpkg-preserve-0.0.1.tgz": { "testpkg-preserve-0.0.1.tgz": {
"content_type": "application\/octet-stream", "content_type": "application/octet-stream",
"data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", "data": "H4sIAAAAAAAAA+2TsW7CMBCGM/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu/fs0Ba1SFVVVISUP8Odzqf/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj/LAyl752yoauioVWqJgpPZcb/Hmw0jV4ynfJEw9lvTAwo/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i/9pFcl+4X/rWhX557xA/9FVZ3gv+j5/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==",
"length": 352 "length": 352
} }
} }

View file

@ -4,4 +4,4 @@ This folder is intended to check whether any type update might break plugin impl
## Contribute ## Contribute
- Add more scenarios, middleware, plugins, filters etc. - Add more scenarios, middleware, plugins, filters etc.

View file

@ -8,7 +8,7 @@ The files on this folder should be small as possible, **there is a custom config
- Each topic ideally should have his **own folder** if many scenarios might be part of the test. **eg: profile, security** - Each topic ideally should have his **own folder** if many scenarios might be part of the test. **eg: profile, security**
- Include different scenarios inside of the folder with enough context to indenty the use case. - Include different scenarios inside of the folder with enough context to indenty the use case.
- Foder or file, should be **named** as the test that used them. *eg: `api.spec.yaml` -> `api.spec.ts`* - Foder or file, should be **named** as the test that used them. _eg: `api.spec.yaml` -> `api.spec.ts`_
- **Don't use the same config file in multiple test**, it increase maintenance complexity. - **Don't use the same config file in multiple test**, it increase maintenance complexity.
- Try to **include only the props are require for the test**: - Try to **include only the props are require for the test**:
- Comment the config files, don't be shy, add as much context you think is need it for future contributors. - Comment the config files, don't be shy, add as much context you think is need it for future contributors.

View file

@ -1,54 +1,50 @@
const json = { const json = {
"_id": "forbidden-place", _id: 'forbidden-place',
"name": "forbidden-place", name: 'forbidden-place',
"description": "", description: '',
"dist-tags": { 'dist-tags': {
"latest": "1.0.6" latest: '1.0.6',
}, },
"versions": { versions: {
"1.0.6": { '1.0.6': {
"name": "forbidden-place", name: 'forbidden-place',
"version": "1.0.6", version: '1.0.6',
"description": "", description: '',
"main": "index.js", main: 'index.js',
"scripts": { scripts: {
"test": "echo \"Error: no test specified\" && exit 1" test: 'echo "Error: no test specified" && exit 1',
}, },
"keywords": [ keywords: [],
author: {
], name: 'User NPM',
"author": { email: 'user@domain.com',
"name": "User NPM",
"email": "user@domain.com"
}, },
"license": "ISC", license: 'ISC',
"dependencies": { dependencies: {
"verdaccio": "^2.7.2" verdaccio: '^2.7.2',
}, },
"readme": "# test", readme: '# test',
"readmeFilename": "README.md", readmeFilename: 'README.md',
"_id": "forbidden-place@1.0.6", _id: 'forbidden-place@1.0.6',
"_npmVersion": "5.5.1", _npmVersion: '5.5.1',
"_nodeVersion": "8.7.0", _nodeVersion: '8.7.0',
"_npmUser": { _npmUser: {},
dist: {
integrity: 'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==',
shasum: '2c03764f651a9f016ca0b7620421457b619151b9',
tarball: 'http://localhost:5555/forbidden-place/-/forbidden-place-1.0.6.tgz',
}, },
"dist": { },
"integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==",
"shasum": "2c03764f651a9f016ca0b7620421457b619151b9",
"tarball": "http:\/\/localhost:5555\/forbidden-place\/-\/forbidden-place-1.0.6.tgz"
}
}
}, },
"readme": "# test", readme: '# test',
"_attachments": { _attachments: {
"forbidden-place-1.0.6.tgz": { 'forbidden-place-1.0.6.tgz': {
"content_type": "application\/octet-stream", content_type: 'application/octet-stream',
// eslint-disable-next-line max-len data:
"data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", 'H4sIAAAAAAAAE+2W32vbMBDH85y/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo//79KPeQsnIw5KUDX/9IOvurLuz/DHSjK/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS/pLQe+D+FIv/agIWI6GX66kFuIhT+1gDjrp/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi/IHpU9fz3/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6/f88f/Pu47zomiPk2Lv/dOv8h+P/34/D/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=',
"length": 512 length: 512,
} },
} },
} };
module.exports = json; module.exports = json;

View file

@ -1 +1 @@
{"list":["@verdaccio/test"],"secret":"48cd053de97d4ef34aea4f1efb902334442bea1e735df5fdc9424c986a281b3d"} { "list": ["@verdaccio/test"], "secret": "48cd053de97d4ef34aea4f1efb902334442bea1e735df5fdc9424c986a281b3d" }

View file

@ -41,8 +41,8 @@ importers:
'@types/request': 2.48.3 '@types/request': 2.48.3
'@types/semver': 7.2.0 '@types/semver': 7.2.0
'@types/supertest': 2.0.9 '@types/supertest': 2.0.9
'@typescript-eslint/eslint-plugin': 3.10.1_7cafb685ae559438a248caf09aa37585 '@typescript-eslint/eslint-plugin': 3.10.1_a05db04594704d0c3392f43fee866a02
'@typescript-eslint/parser': 3.10.1_eslint@7.5.0+typescript@4.0.2 '@typescript-eslint/parser': 3.10.1_eslint@7.5.0+typescript@3.9.7
'@verdaccio/types': 'link:packages/core/types' '@verdaccio/types': 'link:packages/core/types'
'@verdaccio/ui-theme': 1.12.1 '@verdaccio/ui-theme': 1.12.1
babel-core: 7.0.0-bridge.0_@babel+core@7.10.5 babel-core: 7.0.0-bridge.0_@babel+core@7.10.5
@ -58,9 +58,8 @@ importers:
eslint-config-prettier: 6.10.0_eslint@7.5.0 eslint-config-prettier: 6.10.0_eslint@7.5.0
eslint-plugin-babel: 5.3.0_eslint@7.5.0 eslint-plugin-babel: 5.3.0_eslint@7.5.0
eslint-plugin-import: 2.22.0_eslint@7.5.0 eslint-plugin-import: 2.22.0_eslint@7.5.0
eslint-plugin-jest: 23.8.0_eslint@7.5.0+typescript@4.0.2 eslint-plugin-jest: 23.8.0_eslint@7.5.0+typescript@3.9.7
eslint-plugin-jsx-a11y: 6.3.1_eslint@7.5.0 eslint-plugin-jsx-a11y: 6.3.1_eslint@7.5.0
eslint-plugin-prettier: 3.1.2_eslint@7.5.0+prettier@2.0.5
eslint-plugin-react: 7.20.6_eslint@7.5.0 eslint-plugin-react: 7.20.6_eslint@7.5.0
eslint-plugin-react-hooks: 4.1.0_eslint@7.5.0 eslint-plugin-react-hooks: 4.1.0_eslint@7.5.0
eslint-plugin-simple-import-sort: 5.0.2_eslint@7.5.0 eslint-plugin-simple-import-sort: 5.0.2_eslint@7.5.0
@ -81,7 +80,7 @@ importers:
selfsigned: 1.10.7 selfsigned: 1.10.7
standard-version: 8.0.0 standard-version: 8.0.0
supertest: 4.0.2 supertest: 4.0.2
typescript: 4.0.2 typescript: 3.9.7
verdaccio: 4.8.1 verdaccio: 4.8.1
verdaccio-audit: 9.7.3 verdaccio-audit: 9.7.3
verdaccio-auth-memory: 9.7.2 verdaccio-auth-memory: 9.7.2
@ -112,8 +111,8 @@ importers:
'@babel/preset-typescript': 7.10.4 '@babel/preset-typescript': 7.10.4
'@babel/register': 7.10.5 '@babel/register': 7.10.5
'@babel/runtime': 7.10.5 '@babel/runtime': 7.10.5
'@changesets/changelog-github': ^0.1.1 '@changesets/changelog-github': 0.1.1
'@changesets/cli': ^2.10.1 '@changesets/cli': 2.10.1
'@commitlint/cli': 8.3.5 '@commitlint/cli': 8.3.5
'@commitlint/config-conventional': 8.2.0 '@commitlint/config-conventional': 8.2.0
'@octokit/rest': 17.0.0 '@octokit/rest': 17.0.0
@ -128,8 +127,8 @@ importers:
'@types/request': 2.48.3 '@types/request': 2.48.3
'@types/semver': 7.2.0 '@types/semver': 7.2.0
'@types/supertest': 2.0.9 '@types/supertest': 2.0.9
'@typescript-eslint/eslint-plugin': ^3.10.1 '@typescript-eslint/eslint-plugin': 3.10.1
'@typescript-eslint/parser': ^3.10.1 '@typescript-eslint/parser': 3.10.1
'@verdaccio/types': 'workspace:*' '@verdaccio/types': 'workspace:*'
'@verdaccio/ui-theme': latest '@verdaccio/ui-theme': latest
babel-core: 7.0.0-bridge.0 babel-core: 7.0.0-bridge.0
@ -146,10 +145,9 @@ importers:
eslint-plugin-babel: 5.3.0 eslint-plugin-babel: 5.3.0
eslint-plugin-import: 2.22.0 eslint-plugin-import: 2.22.0
eslint-plugin-jest: 23.8.0 eslint-plugin-jest: 23.8.0
eslint-plugin-jsx-a11y: ^6.3.1 eslint-plugin-jsx-a11y: 6.3.1
eslint-plugin-prettier: 3.1.2 eslint-plugin-react: 7.20.6
eslint-plugin-react: ^7.20.6 eslint-plugin-react-hooks: 4.1.0
eslint-plugin-react-hooks: ^4.1.0
eslint-plugin-simple-import-sort: 5.0.2 eslint-plugin-simple-import-sort: 5.0.2
eslint-plugin-verdaccio: 8.4.2 eslint-plugin-verdaccio: 8.4.2
fs-extra: 8.1.0 fs-extra: 8.1.0
@ -162,13 +160,13 @@ importers:
kleur: 3.0.3 kleur: 3.0.3
lint-staged: 8.2.1 lint-staged: 8.2.1
nock: 12.0.3 nock: 12.0.3
npm-run-all: ^4.1.5 npm-run-all: 4.1.5
prettier: 2.0.5 prettier: 2.0.5
rimraf: 3.0.2 rimraf: 3.0.2
selfsigned: 1.10.7 selfsigned: 1.10.7
standard-version: 8.0.0 standard-version: 8.0.0
supertest: 4.0.2 supertest: 4.0.2
typescript: 4.0.2 typescript: '>=3.3.1 <3.10.0'
verdaccio: latest verdaccio: latest
verdaccio-audit: latest verdaccio-audit: latest
verdaccio-auth-memory: latest verdaccio-auth-memory: latest
@ -3525,7 +3523,7 @@ packages:
integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
/@changesets/apply-release-plan/4.0.0: /@changesets/apply-release-plan/4.0.0:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/config': 1.3.0 '@changesets/config': 1.3.0
'@changesets/get-version-range-type': 0.3.2 '@changesets/get-version-range-type': 0.3.2
'@changesets/git': 1.0.6 '@changesets/git': 1.0.6
@ -3542,7 +3540,7 @@ packages:
integrity: sha512-MrcUd8wIlQ4S/PznzqJVsmnEpUGfPEkCGF54iqt8G05GEqi/zuxpoTfebcScpj5zeiDyxFIcA9RbeZ3pvJJxoA== integrity: sha512-MrcUd8wIlQ4S/PznzqJVsmnEpUGfPEkCGF54iqt8G05GEqi/zuxpoTfebcScpj5zeiDyxFIcA9RbeZ3pvJJxoA==
/@changesets/assemble-release-plan/3.0.0: /@changesets/assemble-release-plan/3.0.0:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/errors': 0.1.4 '@changesets/errors': 0.1.4
'@changesets/get-dependents-graph': 1.1.3 '@changesets/get-dependents-graph': 1.1.3
'@changesets/types': 3.1.1 '@changesets/types': 3.1.1
@ -3561,7 +3559,7 @@ packages:
integrity: sha512-xwwyc7nSVVEUmVCiqT1dyju1rxe2awk5XOWLEwpsez3j9gXKwixlK43daG5jP1caGuXFc9f1BOSod2oJTUbtew== integrity: sha512-xwwyc7nSVVEUmVCiqT1dyju1rxe2awk5XOWLEwpsez3j9gXKwixlK43daG5jP1caGuXFc9f1BOSod2oJTUbtew==
/@changesets/cli/2.10.1: /@changesets/cli/2.10.1:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/apply-release-plan': 4.0.0 '@changesets/apply-release-plan': 4.0.0
'@changesets/assemble-release-plan': 3.0.0 '@changesets/assemble-release-plan': 3.0.0
'@changesets/config': 1.3.0 '@changesets/config': 1.3.0
@ -3631,7 +3629,7 @@ packages:
integrity: sha512-PTFJk1hiMUZ1YGzULmRNo6a6w6LTV6iCY1muCBTby+k4WWGbGgAaqKfUVhpZBosd1fvFIlXl3wqxdA93PLkRaQ== integrity: sha512-PTFJk1hiMUZ1YGzULmRNo6a6w6LTV6iCY1muCBTby+k4WWGbGgAaqKfUVhpZBosd1fvFIlXl3wqxdA93PLkRaQ==
/@changesets/get-release-plan/2.0.0: /@changesets/get-release-plan/2.0.0:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/assemble-release-plan': 3.0.0 '@changesets/assemble-release-plan': 3.0.0
'@changesets/config': 1.3.0 '@changesets/config': 1.3.0
'@changesets/pre': 1.0.5 '@changesets/pre': 1.0.5
@ -3647,7 +3645,7 @@ packages:
integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==
/@changesets/git/1.0.6: /@changesets/git/1.0.6:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/errors': 0.1.4 '@changesets/errors': 0.1.4
'@changesets/types': 3.1.1 '@changesets/types': 3.1.1
'@manypkg/get-packages': 1.1.1 '@manypkg/get-packages': 1.1.1
@ -3671,7 +3669,7 @@ packages:
integrity: sha512-0XPd/es9CfogI7XIqDr7I2mWzm++xX2s9GZsij3GajPYd7ouEsgJyNatPooxNtqj6ZepkiD6uqlqbeBUyj/A0Q== integrity: sha512-0XPd/es9CfogI7XIqDr7I2mWzm++xX2s9GZsij3GajPYd7ouEsgJyNatPooxNtqj6ZepkiD6uqlqbeBUyj/A0Q==
/@changesets/pre/1.0.5: /@changesets/pre/1.0.5:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/errors': 0.1.4 '@changesets/errors': 0.1.4
'@changesets/types': 3.1.1 '@changesets/types': 3.1.1
'@manypkg/get-packages': 1.1.1 '@manypkg/get-packages': 1.1.1
@ -3681,7 +3679,7 @@ packages:
integrity: sha512-p43aAQY3aijhDnBLCriPao5YArlRjD4mSHRJq9PsBhljVLWqQQXcn6seSd77d+bD1tATLhB8tQ2eYoxMtMydXQ== integrity: sha512-p43aAQY3aijhDnBLCriPao5YArlRjD4mSHRJq9PsBhljVLWqQQXcn6seSd77d+bD1tATLhB8tQ2eYoxMtMydXQ==
/@changesets/read/0.4.6: /@changesets/read/0.4.6:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/git': 1.0.6 '@changesets/git': 1.0.6
'@changesets/logger': 0.0.5 '@changesets/logger': 0.0.5
'@changesets/parse': 0.3.6 '@changesets/parse': 0.3.6
@ -3702,7 +3700,7 @@ packages:
integrity: sha512-XWGEGWXhM92zvBWiQt2sOwhjTt8eCQbrsRbqkv4WYwW3Zsl4qPpvhHsNt845S42dJXrxgjWvId+jxFQocCayNQ== integrity: sha512-XWGEGWXhM92zvBWiQt2sOwhjTt8eCQbrsRbqkv4WYwW3Zsl4qPpvhHsNt845S42dJXrxgjWvId+jxFQocCayNQ==
/@changesets/write/0.1.3: /@changesets/write/0.1.3:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@changesets/types': 3.1.1 '@changesets/types': 3.1.1
fs-extra: 7.0.1 fs-extra: 7.0.1
human-id: 1.0.2 human-id: 1.0.2
@ -4624,7 +4622,7 @@ packages:
integrity: sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A== integrity: sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A==
/@manypkg/find-root/1.1.0: /@manypkg/find-root/1.1.0:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@types/node': 12.12.54 '@types/node': 12.12.54
find-up: 4.1.0 find-up: 4.1.0
fs-extra: 8.1.0 fs-extra: 8.1.0
@ -4633,7 +4631,7 @@ packages:
integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==
/@manypkg/get-packages/1.1.1: /@manypkg/get-packages/1.1.1:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@manypkg/find-root': 1.1.0 '@manypkg/find-root': 1.1.0
fs-extra: 8.1.0 fs-extra: 8.1.0
globby: 11.0.1 globby: 11.0.1
@ -5742,17 +5740,17 @@ packages:
optional: true optional: true
resolution: resolution:
integrity: sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ== integrity: sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==
/@typescript-eslint/eslint-plugin/3.10.1_7cafb685ae559438a248caf09aa37585: /@typescript-eslint/eslint-plugin/3.10.1_a05db04594704d0c3392f43fee866a02:
dependencies: dependencies:
'@typescript-eslint/experimental-utils': 3.10.1_eslint@7.5.0+typescript@4.0.2 '@typescript-eslint/experimental-utils': 3.10.1_eslint@7.5.0+typescript@3.9.7
'@typescript-eslint/parser': 3.10.1_eslint@7.5.0+typescript@4.0.2 '@typescript-eslint/parser': 3.10.1_eslint@7.5.0+typescript@3.9.7
debug: 4.1.1 debug: 4.1.1
eslint: 7.5.0 eslint: 7.5.0
functional-red-black-tree: 1.0.1 functional-red-black-tree: 1.0.1
regexpp: 3.1.0 regexpp: 3.1.0
semver: 7.3.2 semver: 7.3.2
tsutils: 3.17.1_typescript@4.0.2 tsutils: 3.17.1_typescript@3.9.7
typescript: 4.0.2 typescript: 3.9.7
dev: true dev: true
engines: engines:
node: ^10.12.0 || >=12.0.0 node: ^10.12.0 || >=12.0.0
@ -5780,10 +5778,10 @@ packages:
typescript: '*' typescript: '*'
resolution: resolution:
integrity: sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== integrity: sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==
/@typescript-eslint/experimental-utils/2.34.0_eslint@7.5.0+typescript@4.0.2: /@typescript-eslint/experimental-utils/2.34.0_eslint@7.5.0+typescript@3.9.7:
dependencies: dependencies:
'@types/json-schema': 7.0.5 '@types/json-schema': 7.0.5
'@typescript-eslint/typescript-estree': 2.34.0_typescript@4.0.2 '@typescript-eslint/typescript-estree': 2.34.0_typescript@3.9.7
eslint: 7.5.0 eslint: 7.5.0
eslint-scope: 5.1.0 eslint-scope: 5.1.0
eslint-utils: 2.1.0 eslint-utils: 2.1.0
@ -5795,11 +5793,11 @@ packages:
typescript: '*' typescript: '*'
resolution: resolution:
integrity: sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== integrity: sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==
/@typescript-eslint/experimental-utils/3.10.1_eslint@7.5.0+typescript@4.0.2: /@typescript-eslint/experimental-utils/3.10.1_eslint@7.5.0+typescript@3.9.7:
dependencies: dependencies:
'@types/json-schema': 7.0.5 '@types/json-schema': 7.0.5
'@typescript-eslint/types': 3.10.1 '@typescript-eslint/types': 3.10.1
'@typescript-eslint/typescript-estree': 3.10.1_typescript@4.0.2 '@typescript-eslint/typescript-estree': 3.10.1_typescript@3.9.7
eslint: 7.5.0 eslint: 7.5.0
eslint-scope: 5.1.0 eslint-scope: 5.1.0
eslint-utils: 2.1.0 eslint-utils: 2.1.0
@ -5829,15 +5827,15 @@ packages:
optional: true optional: true
resolution: resolution:
integrity: sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA== integrity: sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==
/@typescript-eslint/parser/3.10.1_eslint@7.5.0+typescript@4.0.2: /@typescript-eslint/parser/3.10.1_eslint@7.5.0+typescript@3.9.7:
dependencies: dependencies:
'@types/eslint-visitor-keys': 1.0.0 '@types/eslint-visitor-keys': 1.0.0
'@typescript-eslint/experimental-utils': 3.10.1_eslint@7.5.0+typescript@4.0.2 '@typescript-eslint/experimental-utils': 3.10.1_eslint@7.5.0+typescript@3.9.7
'@typescript-eslint/types': 3.10.1 '@typescript-eslint/types': 3.10.1
'@typescript-eslint/typescript-estree': 3.10.1_typescript@4.0.2 '@typescript-eslint/typescript-estree': 3.10.1_typescript@3.9.7
eslint: 7.5.0 eslint: 7.5.0
eslint-visitor-keys: 1.3.0 eslint-visitor-keys: 1.3.0
typescript: 4.0.2 typescript: 3.9.7
dev: true dev: true
engines: engines:
node: ^10.12.0 || >=12.0.0 node: ^10.12.0 || >=12.0.0
@ -5874,7 +5872,7 @@ packages:
optional: true optional: true
resolution: resolution:
integrity: sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== integrity: sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==
/@typescript-eslint/typescript-estree/2.34.0_typescript@4.0.2: /@typescript-eslint/typescript-estree/2.34.0_typescript@3.9.7:
dependencies: dependencies:
debug: 4.1.1 debug: 4.1.1
eslint-visitor-keys: 1.3.0 eslint-visitor-keys: 1.3.0
@ -5882,8 +5880,8 @@ packages:
is-glob: 4.0.1 is-glob: 4.0.1
lodash: 4.17.20 lodash: 4.17.20
semver: 7.3.2 semver: 7.3.2
tsutils: 3.17.1_typescript@4.0.2 tsutils: 3.17.1_typescript@3.9.7
typescript: 4.0.2 typescript: 3.9.7
dev: true dev: true
engines: engines:
node: ^8.10.0 || ^10.13.0 || >=11.10.1 node: ^8.10.0 || ^10.13.0 || >=11.10.1
@ -5894,7 +5892,7 @@ packages:
optional: true optional: true
resolution: resolution:
integrity: sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== integrity: sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==
/@typescript-eslint/typescript-estree/3.10.1_typescript@4.0.2: /@typescript-eslint/typescript-estree/3.10.1_typescript@3.9.7:
dependencies: dependencies:
'@typescript-eslint/types': 3.10.1 '@typescript-eslint/types': 3.10.1
'@typescript-eslint/visitor-keys': 3.10.1 '@typescript-eslint/visitor-keys': 3.10.1
@ -5903,8 +5901,8 @@ packages:
is-glob: 4.0.1 is-glob: 4.0.1
lodash: 4.17.20 lodash: 4.17.20
semver: 7.3.2 semver: 7.3.2
tsutils: 3.17.1_typescript@4.0.2 tsutils: 3.17.1_typescript@3.9.7
typescript: 4.0.2 typescript: 3.9.7
dev: true dev: true
engines: engines:
node: ^10.12.0 || >=12.0.0 node: ^10.12.0 || >=12.0.0
@ -6505,7 +6503,7 @@ packages:
integrity: sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= integrity: sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=
/aria-query/4.2.2: /aria-query/4.2.2:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
'@babel/runtime-corejs3': 7.11.2 '@babel/runtime-corejs3': 7.11.2
engines: engines:
node: '>=6.0' node: '>=6.0'
@ -10232,9 +10230,9 @@ packages:
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0
resolution: resolution:
integrity: sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== integrity: sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==
/eslint-plugin-jest/23.8.0_eslint@7.5.0+typescript@4.0.2: /eslint-plugin-jest/23.8.0_eslint@7.5.0+typescript@3.9.7:
dependencies: dependencies:
'@typescript-eslint/experimental-utils': 2.34.0_eslint@7.5.0+typescript@4.0.2 '@typescript-eslint/experimental-utils': 2.34.0_eslint@7.5.0+typescript@3.9.7
eslint: 7.5.0 eslint: 7.5.0
dev: true dev: true
engines: engines:
@ -10246,7 +10244,7 @@ packages:
integrity: sha512-DKXmLxguZ1Lru4u5YM12ko3WLq6gqo7dhV2b63K731+/PNyZ/Ff6NGONQsGUtPLG9zU3kdz/N+2LTbweNZifeg== integrity: sha512-DKXmLxguZ1Lru4u5YM12ko3WLq6gqo7dhV2b63K731+/PNyZ/Ff6NGONQsGUtPLG9zU3kdz/N+2LTbweNZifeg==
/eslint-plugin-jsx-a11y/6.3.1_eslint@6.8.0: /eslint-plugin-jsx-a11y/6.3.1_eslint@6.8.0:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
aria-query: 4.2.2 aria-query: 4.2.2
array-includes: 3.1.1 array-includes: 3.1.1
ast-types-flow: 0.0.7 ast-types-flow: 0.0.7
@ -10267,7 +10265,7 @@ packages:
integrity: sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g== integrity: sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==
/eslint-plugin-jsx-a11y/6.3.1_eslint@7.5.0: /eslint-plugin-jsx-a11y/6.3.1_eslint@7.5.0:
dependencies: dependencies:
'@babel/runtime': 7.10.5 '@babel/runtime': 7.11.2
aria-query: 4.2.2 aria-query: 4.2.2
array-includes: 3.1.1 array-includes: 3.1.1
ast-types-flow: 0.0.7 ast-types-flow: 0.0.7
@ -10286,19 +10284,6 @@ packages:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 eslint: ^3 || ^4 || ^5 || ^6 || ^7
resolution: resolution:
integrity: sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g== integrity: sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==
/eslint-plugin-prettier/3.1.2_eslint@7.5.0+prettier@2.0.5:
dependencies:
eslint: 7.5.0
prettier: 2.0.5
prettier-linter-helpers: 1.0.0
dev: true
engines:
node: '>=6.0.0'
peerDependencies:
eslint: '>= 5.0.0'
prettier: '>= 1.13.0'
resolution:
integrity: sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
/eslint-plugin-react-hooks/1.7.0_eslint@6.8.0: /eslint-plugin-react-hooks/1.7.0_eslint@6.8.0:
dependencies: dependencies:
eslint: 6.8.0 eslint: 6.8.0
@ -10876,10 +10861,6 @@ packages:
/fast-deep-equal/3.1.3: /fast-deep-equal/3.1.3:
resolution: resolution:
integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
/fast-diff/1.2.0:
dev: true
resolution:
integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
/fast-glob/2.2.7: /fast-glob/2.2.7:
dependencies: dependencies:
'@mrmlnc/readdir-enhanced': 2.2.1 '@mrmlnc/readdir-enhanced': 2.2.1
@ -18214,14 +18195,6 @@ packages:
dev: false dev: false
resolution: resolution:
integrity: sha1-kysxwj792zb8ZqgtzvNirzEimC8= integrity: sha1-kysxwj792zb8ZqgtzvNirzEimC8=
/prettier-linter-helpers/1.0.0:
dependencies:
fast-diff: 1.2.0
dev: true
engines:
node: '>=6.0.0'
resolution:
integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
/prettier/1.19.1: /prettier/1.19.1:
dev: true dev: true
engines: engines:
@ -21408,10 +21381,10 @@ packages:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
resolution: resolution:
integrity: sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== integrity: sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
/tsutils/3.17.1_typescript@4.0.2: /tsutils/3.17.1_typescript@3.9.7:
dependencies: dependencies:
tslib: 1.13.0 tslib: 1.13.0
typescript: 4.0.2 typescript: 3.9.7
dev: true dev: true
engines: engines:
node: '>= 6' node: '>= 6'
@ -21520,13 +21493,13 @@ packages:
/typedarray/0.0.6: /typedarray/0.0.6:
resolution: resolution:
integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
/typescript/4.0.2: /typescript/3.9.7:
dev: true dev: true
engines: engines:
node: '>=4.2.0' node: '>=4.2.0'
hasBin: true hasBin: true
resolution: resolution:
integrity: sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== integrity: sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==
/uglify-js/3.10.2: /uglify-js/3.10.2:
engines: engines:
node: '>=0.8.0' node: '>=0.8.0'

View file

@ -2,4 +2,4 @@ packages:
- packages/* - packages/*
- packages/core/* - packages/core/*
- website - website
- "!**/test/**" - '!**/test/**'

View file

@ -6,7 +6,11 @@
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": ["verdaccio", "sample", "scoped"], "keywords": [
"verdaccio",
"sample",
"scoped"
],
"dependencies": { "dependencies": {
"verdaccio": "latest" "verdaccio": "latest"
}, },

View file

@ -10,16 +10,7 @@
"strictNullChecks": true, "strictNullChecks": true,
"resolveJsonModule": true, "resolveJsonModule": true,
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"esModuleInterop": true, "esModuleInterop": true
}, },
"exclude": [ "exclude": ["**/build", "node_modules", "**/node_modules", "**/coverage", "**/*.spec.ts", "**/test", "**/__tests__", "**/*.test.ts"]
"**/build",
"node_modules",
"**/node_modules",
"**/coverage",
"**/*.spec.ts",
"**/test",
"**/__tests__",
"**/*.test.ts"
]
} }

View file

@ -2,6 +2,11 @@
"env": { "env": {
"browser": true "browser": true
}, },
"settings": {
"react": {
"version": "detect"
}
},
"rules": { "rules": {
"react/prop-types": 0 "react/prop-types": 0
} }

View file

@ -1,8 +0,0 @@
# Builded files
/.cache/
/public/
/crowdin/
/src/dictionaries/
# Node.js modules
/node_modules/

View file

@ -16,7 +16,7 @@ yarn develop
``` ```
Run [http://localhost:8000/](http://localhost:8000/) Run [http://localhost:8000/](http://localhost:8000/)
GraphQL [http://localhost:8000/___graphql](http://localhost:8000/___graphql) GraphQL [http://localhost:8000/\_\_\_graphql](http://localhost:8000/___graphql)
or build locally or build locally
@ -26,4 +26,4 @@ yarn clean && yarn build && yarn serve
#### Deployment #### Deployment
Website is deployed on push on master at [https://alpha.verdaccio.dev/](https://alpha.verdaccio.dev/) Website is deployed on push on master at [https://alpha.verdaccio.dev/](https://alpha.verdaccio.dev/)

View file

@ -5,12 +5,12 @@ services:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
ports: ports:
- "8000:8000" - '8000:8000'
- "9929:9929" - '9929:9929'
- "9230:9230" - '9230:9230'
volumes: volumes:
- /app/node_modules - /app/node_modules
- .:/app - .:/app
environment: environment:
- NODE_ENV=development - NODE_ENV=development
- GATSBY_WEBPACK_PUBLICPATH=/ - GATSBY_WEBPACK_PUBLICPATH=/

View file

@ -1,6 +1,6 @@
--- ---
id: amazon id: amazon
title: "Amazon Web Services" title: 'Amazon Web Services'
--- ---
This document describes several approaches for deploying Verdaccio in the AWS cloud. This document describes several approaches for deploying Verdaccio in the AWS cloud.
@ -31,19 +31,21 @@ Elastic File System
``` ```
Architecture notes: Architecture notes:
* Deploy this stack into the region closest to your users for maximum performance.
* We use an auto scaling group primarily for self-healing. The system requirements of Verdaccio are pretty low, so it's unlikely you'll need multiple instances to handle traffic load. - Deploy this stack into the region closest to your users for maximum performance.
* Because Amazon Linux 2 doesn't include Node, we run Verdaccio as a Docker image rather than natively on the instance. This is faster and more secure than relying on third party package sources for Node. - We use an auto scaling group primarily for self-healing. The system requirements of Verdaccio are pretty low, so it's unlikely you'll need multiple instances to handle traffic load.
* Elastic File System is cheap and stateful, and works across AZs. An alternative would be the [third-party S3 storage plugin](https://github.com/remitly/verdaccio-s3-storage). - Because Amazon Linux 2 doesn't include Node, we run Verdaccio as a Docker image rather than natively on the instance. This is faster and more secure than relying on third party package sources for Node.
* For backup, use AWS Backup - Elastic File System is cheap and stateful, and works across AZs. An alternative would be the [third-party S3 storage plugin](https://github.com/remitly/verdaccio-s3-storage).
- For backup, use AWS Backup
Estimated monthly cost for a small installation (in us-east-1): Estimated monthly cost for a small installation (in us-east-1):
* ALB (1 LCU average): $22.265/mo
* EC2 (t3.nano): $3.796/mo - ALB (1 LCU average): \$22.265/mo
* EBS (8gb): $0.80/mo - EC2 (t3.nano): \$3.796/mo
* EFS (5gb): $1.5/mo - EBS (8gb): \$0.80/mo
* Data transfer: (10gb): $0.9/mo - EFS (5gb): \$1.5/mo
* **TOTAL:** Under $30/mo - Data transfer: (10gb): \$0.9/mo
- **TOTAL:** Under \$30/mo
## ECS ## ECS

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