* feat: support for npm token
This is an effor of:
This commit intent to provide npm token support.
https: //github.com/verdaccio/verdaccio/issues/541
https: //github.com/verdaccio/verdaccio/pull/1271
https: //github.com/verdaccio/local-storage/pull/168
Co-Authored-By: Manuel Spigolon <behemoth89@gmail.com>
Co-Authored-By: Juan Gabriel Jiménez <juangabreil@gmail.com>
* chore: update secrets baselines
Co-Authored-By: Liran Tal <liran.tal@gmail.com>
* chore: update lock file
* chore: add logger mock methods
* chore: update @verdaccio/types
* refactor: unit test was flacky
adapt the pkg access to the new configuration setup
* refactor: add plugin methods validation
* test: add test for aesEncrypt
* chore: update local-storage dependency
* chore: add support for experimetns
token will be part of the experiment lists
* chore: increase timeout
* chore: increase timeout threshold
* chore: update nock
* chore: update dependencies
* chore: update eslint config
* chore: update dependencies
* test: add unit test for npm token
* chore: update readme
* fix: unpublish and add or remove star colision
The issue was the npm star use a similar payload, but we did not check properly the shape of the payload, this fix and allow unpublish correctly.
Improve unit testing for publishing and unpublishing
Add new code documentation for future changes.
* chore: update secrets baseline
* chore: add missing type
this will requires update types in the future
Add a plugin that can filter all package metadata before being returned.
This enables blocking of packages from verdaccio.
IPluginStorageFilter are loaded like other plugins from the config.
Verdaccio will look for plugins in config.filters and pass this to
storage.init. This is the same design as other plugins and will be
dynamically found with the same rules. These plugins must impliment
a filter_metadata method, which is called serially (in the order
loaded from the config) for every metadata request. It gets a current
copy of a package metadata and may choose to modify it as required.
For example, this may be used to block a bad version of a package or
add a time delay from when new packages can be used from your
registry. Errors in a filter will cause a 404, similar to upLinkErrors
as it is not safe to recover gracefully from them. Note: When version
is removed, be careful about updating tags.
Fixes: #818
* feat: add support for profile cli command #392
- it allows to update password npm profile set password
- display current profile npm profile get
https://docs.npmjs.com/cli/profile
* chore: update @verdaccio/types@4.0.0
* feat: add min password length
on npm by defaul is min 7 characters, this might be configurable in the future.
* chore: update verdaccio-htpasswd@1.0.1
* refactor: update unit test
* refactor: provide friendly error for tfa request
* test: api profile unit test
* chore: fix eslint comment
* test: update profile test
* chore: set mim as 3 characters
* test(utils): add test for validate names
* test(utils): add unit test for dist-tags normalize utility
* refactor(notifications): unit test for notifications
* test(cli): add unit test for address validation
* chore: add new constants
* chore: ignore debug from coverage
* test(bootstrap): test https is fails on start
* refactor: update code for rebase
* feat: add support for jwt on api
* test: add unit test for sign token with jwt
add multiple scenarios with configuration file
* chore: add JWT verification on middleware
* chore: restore headless
* chore: restore middleware header validation
* refactor: fix login whether user exists
* refactor: JWT is signed asynchronously
* refactor: better structure and new naming convention
* test: add unit test for token signature
* test: add unit test for creating user with JWT enabled
#168
* docs: add security section jwt
* refactor: renable web auth middleware
* test(auth): add legacy disabled scenario
* chore: update gitignore
* chore: add some es6 sugar
* feat: enable JWT token signature for new installations
* chore: add yaml files to git
I forgot add this before 😷
* chore: trace log on auth
in case we want more output