Previously, the password validation logic for the `/reset_password`
route was reversed: An error was returned when the password was valid
and the operation would succeed when the password was invalid.
This commit fixes the logic to return an error when the validation fails
and proceed with resetting the password when the password is valid.
* Add correct link to s3 plugin
* Update plugin-storage.md
* Update plugin-storage.md
Changed link to AWS S3 plugin to monorepo.
---------
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
Update config.yaml to use log property instead of the depreciated logs
When using logs the following error occurs
```
Error: Error: the property config "logs" property is longer supported, rename to "log" and use object instead
```
* Changed the deprecated installation method
Altered the `npm` global installation command i.e. `npm i -g` and `npm install --global` to `npm i --location=global` and `npm install --location=global` respectively. Also added methods for installing using `yarn` and `pnpm`
* Changed the deprecated installation method for `npm`
Changed the installation flag from `--global` and `-g` to `--location=global` for `npm` i.e. to `npm --location=global`
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
OWASP is explicitly mentioning Verdaccio in one of their recommendations for npm security best practices.
It's high praise so should be mentioned in a central place. If not here, you might find another page to add it.
Altered the `npm` global installation command i.e. `npm i -g` and `npm install --global` to `npm i --location=global` and `npm install --location=global` respectively. Also added methods for installing using `yarn` and `pnpm`
* Chore: Update Uplinks/K8s doc to reference `secretEnvVars`
* Update Uplinks Documentation to refer to the Helm Chart's new
`secretEnvVars` value
* Update Kubernetes Documentation with the new `secretEnvVars` helm
value
* k8s doc wording
* feat: rework header, dialogs and new raw mode
* chore: add test for raw button and hide download tarball
* chore: add test hide footer
* chore: add docs to config files
* chore: add changeset
* chore: enable raw by default
* fix(ui-theme): show default logo in footer
The link of the footer logo is verdaccio website, so the logo should be verdaccio's
* fixup! fix(ui-theme): show default logo in footer
* fixup! fixup! fix(ui-theme): show default logo in footer
* Working node JS Code
Maybe add where do the `addrs` comes from ?
Added host and port display cause otherwise user doesn't know which default address and port are.
* Removing comments
because I'm unsure about these / they are incorrect
Please complete it if you know how to make it work with a configFilePath as third parameter
* chore: fix website config
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
feat: add a new configuration value named 'slow_verify_ms' to the htpasswd plugin that when exceeded during password verification will log a warning message
chore: update README.md for htpasswd plugin to add additional information about the 'rounds' configuration value and also include the new 'slow_verify_ms' configuration value
* feat: improve language switch ui and package manager info
* feat: improve registry info dialog and language switch
* add description
* update text
* update npmignore
* chore: update test expect
* chore(deps): update all non-major core dependencies
* restore esbuild and fix dep
* update snapshots
* add more deps to renovate
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* feat: add body schema validation to login endpoint
#2623
When a request is made, the following error is displayed on log
error--- Promise may not be fulfilled with 'undefined' when statusCode is not 204
https://github.com/fastify/fastify/pull/2702
* feat: add body schema validation to resetPassword endpoint
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
Partially implemented (wip)
- requires follow up for proper token validation
- no test included (still experimental)
- types refactoring required, still need alignment with other modules
* refactor: Remove the @ts-ignore in middleware-utils
* refactor: Remove __mocks__ imports in local-storage package
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* build(cli): remove unused commander dep
* build(e2e-ui): tweak lodash devDep to exact version
* build: tweak exact versions; @verdaccio:commons-api, get-port, semver
* style: private true prop first in package.jsons (monorepo convention)
* build: update all dep packages with webpack in name except webpack-dev-server
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* build(ui-theme): update ora depDep major from v4.0.4 to v6.0.0
* build(ui-theme): update @testing-library/dom depDep major from v7.31.2 to v8.2.0
* build(ui-theme): update css-loader depDep major from v5.2.1 to v6.2.0
* build(ui-theme): update history depDep major from v4.10.1 to v5.0.1
* build(ui-theme): remove unused devDep resolve-url-loader
* build(ui-theme): remove unused devDep source-map-loader
* build(ui-theme): update style-loader depDep major from v1.2.1 to v3.2.1
* build(ui-theme): update mini-css-extract-plugin depDep major from v1.6.0 to v2.2.2
* build(ui-theme): update i18next depDep major from v19.9.2 to v20.6.0
* build(ui-theme): update stylelint-config-recommended depDep major from v3.0.0 to v5.0.0
* revert(ui-theme): downgrade history depDep major back to v4.10.1 from v5.0.1
* build(ui-theme): remove lint-staged devDep (it's in the root package)
* revert(ui-theme): downgrade ora depDep major from v6 to v5.4.1 (esm problem)
* build: rebase against master & recreate pnpm lockfile
* fixes an ssl error by correcting the host header
* fixes an `413 - entity too large` / `400 -Invalid compressed payload` error by
explicitly setting the content-encoding header
* sends json body to remote registry
* adds new `/advisories/bulk` endpoint
* respects `strict_ssl` setting
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* docs: improve pnpm development setup info in CONTRIBUTING.md
* build: make dependency versions consistent in packages/*
Updated to latest minor/patch versions; left major version unchanged for now
Did not change react dependencies in ui-theme package
Added .project file for Eclipse IDE users
* revert: rollback @changesets dep versions & maintain kleur v3.0.3
* Try and make the formatting and English a little more consistent
* Wrap specifically at 80 rather than a more random approach
* Little English language fixups, including making it more
* fix: format
Co-authored-by: Peter Sergeant <pete@clueball.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* docs(website): new translation for puppet.md in Filipino
* docs(website): new translation for puppet.md in Serbian (Latin)
* docs(website): new translation for puppet.md in Tajik
* docs(website): new translation for puppet.md in Yoruba
* docs(website): new translation for repositories.md in Romanian
* docs(website): new translation for repositories.md in Spanish
* docs(website): new translation for repositories.md in Chinese Traditional
* docs(website): new translation for repositories.md in Arabic
* docs(website): new translation for repositories.md in Czech
* docs(website): new translation for repositories.md in German
* docs(website): new translation for repositories.md in Italian
* docs(website): new translation for repositories.md in Japanese
* docs(website): new translation for repositories.md in Korean
* docs(website): new translation for repositories.md in Polish
* docs(website): new translation for repositories.md in Portuguese
* docs(website): new translation for repositories.md in Russian
* docs(website): new translation for repositories.md in Serbian (Cyrillic)
* docs(website): new translation for repositories.md in Chinese Simplified
* docs(website): new translation for reverse-proxy.md in Hindi
* docs(website): new translation for reverse-proxy.md in Serbian (Latin)
* docs(website): new translation for puppet.md in Russian
* docs(website): new translation for server.md in Chinese Traditional
* docs(website): new translation for server.md in Czech
* docs(website): new translation for server.md in German
* docs(website): new translation for server.md in Italian
* docs(website): new translation for server.md in Japanese
* docs(website): new translation for server.md in Korean
* docs(website): new translation for server.md in Polish
* docs(website): new translation for server.md in Portuguese
* docs(website): new translation for server.md in Russian
* docs(website): new translation for server.md in Serbian (Cyrillic)
* docs(website): new translation for server.md in Chinese Simplified
* docs(website): new translation for server.md in Vietnamese
* docs(website): new translation for server.md in Spanish
* docs(website): new translation for server.md in Galician
* docs(website): new translation for server.md in Portuguese, Brazilian
* docs(website): new translation for server.md in Hindi
* docs(website): new translation for server.md in Filipino
* docs(website): new translation for server.md in Serbian (Latin)
* docs(website): new translation for server.md in Tajik
* docs(website): new translation for server.md in Yoruba
* docs(website): new translation for ssl.md in Romanian
* docs(website): new translation for ssl.md in French
* docs(website): new translation for ssl.md in Spanish
* docs(website): new translation for ssl.md in Arabic
* docs(website): new translation for server.md in Arabic
* docs(website): new translation for server.md in French
* docs(website): new translation for reverse-proxy.md in Tajik
* docs(website): new translation for reverse-proxy.md in Yoruba
* docs(website): new translation for server.md in Romanian
* docs(website): new translation for puppet.md in Serbian (Cyrillic)
* docs(website): new translation for puppet.md in Portuguese
* docs(website): new translation for plugins.md in French
* docs(website): new translation for plugins.md in Romanian
* docs(website): new translation for plugins.md in Spanish
* docs(website): new translation for puppet.md in Polish
* docs(website): new translation for protect-your-dependencies.md in Filipino
* docs(website): new translation for protect-your-dependencies.md in Polish
* docs(website): new translation for protect-your-dependencies.md in Portuguese
* docs(website): new translation for protect-your-dependencies.md in Russian
* docs(website): new translation for protect-your-dependencies.md in Serbian (Cyrillic)
* docs(website): new translation for protect-your-dependencies.md in Chinese Simplified
* docs(website): new translation for protect-your-dependencies.md in Chinese Traditional
* docs(website): new translation for protect-your-dependencies.md in Vietnamese
* docs(website): new translation for protect-your-dependencies.md in Galician
* docs(website): new translation for protect-your-dependencies.md in Portuguese, Brazilian
* docs(website): new translation for protect-your-dependencies.md in Hindi
* docs(website): new translation for protect-your-dependencies.md in Serbian (Latin)
* docs(website): new translation for protect-your-dependencies.md in Japanese
* docs(website): new translation for protect-your-dependencies.md in Tajik
* docs(website): new translation for protect-your-dependencies.md in Yoruba
* docs(website): new translation for puppet.md in Romanian
* docs(website): new translation for puppet.md in French
* docs(website): new translation for puppet.md in Spanish
* docs(website): new translation for puppet.md in Arabic
* docs(website): new translation for puppet.md in Czech
* docs(website): new translation for puppet.md in German
* docs(website): new translation for puppet.md in Italian
* docs(website): new translation for puppet.md in Japanese
* docs(website): new translation for puppet.md in Korean
* docs(website): new translation for protect-your-dependencies.md in Korean
* docs(website): new translation for protect-your-dependencies.md in Italian
* docs(website): new translation for plugins.md in Arabic
* docs(website): new translation for plugins.md in Vietnamese
* docs(website): new translation for plugins.md in Czech
* docs(website): new translation for plugins.md in German
* docs(website): new translation for plugins.md in Italian
* docs(website): new translation for plugins.md in Japanese
* docs(website): new translation for plugins.md in Korean
* docs(website): new translation for plugins.md in Polish
* docs(website): new translation for plugins.md in Portuguese
* docs(website): new translation for plugins.md in Russian
* docs(website): new translation for plugins.md in Serbian (Cyrillic)
* docs(website): new translation for plugins.md in Chinese Simplified
* docs(website): new translation for plugins.md in Chinese Traditional
* docs(website): new translation for plugins.md in Galician
* docs(website): new translation for protect-your-dependencies.md in German
* docs(website): new translation for plugins.md in Portuguese, Brazilian
* docs(website): new translation for plugins.md in Hindi
* docs(website): new translation for plugins.md in Filipino
* docs(website): new translation for plugins.md in Serbian (Latin)
* docs(website): new translation for plugins.md in Tajik
* docs(website): new translation for plugins.md in Yoruba
* docs(website): new translation for protect-your-dependencies.md in Romanian
* docs(website): new translation for protect-your-dependencies.md in French
* docs(website): new translation for protect-your-dependencies.md in Spanish
* docs(website): new translation for protect-your-dependencies.md in Arabic
* docs(website): new translation for protect-your-dependencies.md in Czech
* docs(website): new translation for install.md in Czech
* docs(website): new translation for linking.md in Portuguese, Brazilian
* docs(website): new translation for install.md in Spanish
* docs(website): new translation for caching.md in Serbian (Cyrillic)
* docs(website): new translation for caching.md in Spanish
* docs(website): new translation for caching.md in Arabic
* docs(website): new translation for caching.md in Czech
* docs(website): new translation for caching.md in German
* docs(website): new translation for caching.md in Italian
* docs(website): new translation for caching.md in Japanese
* docs(website): new translation for caching.md in Korean
* docs(website): new translation for caching.md in Polish
* docs(website): new translation for caching.md in Portuguese
* docs(website): new translation for caching.md in Russian
* docs(website): new translation for caching.md in Chinese Simplified
* docs(website): new translation for caching.md in Romanian
* docs(website): new translation for caching.md in Chinese Traditional
* docs(website): new translation for caching.md in Vietnamese
* docs(website): new translation for caching.md in Galician
* docs(website): new translation for caching.md in Portuguese, Brazilian
* docs(website): new translation for caching.md in Hindi
* docs(website): new translation for caching.md in Filipino
* docs(website): new translation for caching.md in Serbian (Latin)
* docs(website): new translation for install.md in French
* docs(website): new translation for caching.md in Yoruba
* docs(website): new translation for chef.md in Romanian
* docs(website): new translation for chef.md in French
* docs(website): new translation for caching.md in French
* docs(website): new translation for best-practices.md in Yoruba
* docs(website): new translation for chef.md in Arabic
* docs(website): new translation for best-practices.md in Korean
* docs(website): new translation for best-practices.md in Romanian
* docs(website): new translation for who-is-using.md in Russian
* docs(website): new translation for windows.md in Serbian (Latin)
* docs(website): new translation for windows.md in Tajik
* docs(website): new translation for windows.md in Yoruba
* docs(website): new translation for windows.md in Hindi
* docs(website): new translation for en.json in Chinese Simplified
* docs(website): new translation for windows.md in Filipino
* docs(website): new translation for windows.md in Portuguese, Brazilian
* docs(website): new translation for who-is-using.md in Serbian (Cyrillic)
* docs(website): new translation for windows.md in Spanish
* docs(website): new translation for who-is-using.md in Chinese Simplified
* docs(website): new translation for who-is-using.md in Chinese Traditional
* docs(website): new translation for who-is-using.md in Vietnamese
* docs(website): new translation for who-is-using.md in Galician
* docs(website): new translation for who-is-using.md in Portuguese, Brazilian
* docs(website): new translation for who-is-using.md in Hindi
* docs(website): new translation for who-is-using.md in Filipino
* docs(website): new translation for who-is-using.md in Serbian (Latin)
* docs(website): new translation for who-is-using.md in Tajik
* docs(website): new translation for who-is-using.md in Yoruba
* docs(website): new translation for windows.md in Romanian
* docs(website): new translation for windows.md in French
* docs(website): new translation for windows.md in Arabic
* docs(website): new translation for windows.md in Galician
* docs(website): new translation for windows.md in Czech
* docs(website): new translation for windows.md in German
* docs(website): new translation for windows.md in Italian
* docs(website): new translation for windows.md in Japanese
* docs(website): new translation for windows.md in Korean
* docs(website): new translation for windows.md in Polish
* docs(website): new translation for windows.md in Portuguese
* docs(website): new translation for windows.md in Russian
* docs(website): new translation for windows.md in Serbian (Cyrillic)
* docs(website): new translation for windows.md in Chinese Simplified
* docs(website): new translation for windows.md in Chinese Traditional
* docs(website): new translation for windows.md in Vietnamese
* docs(website): new translation for best-practices.md in French
* docs(website): new translation for amazon.md in Spanish
* docs(website): new translation for iis-server.md in Vietnamese
* docs(website): new translation for install.md in Romanian
* docs(website): new translation for iis-server.md in Yoruba
* docs(website): new translation for iis-server.md in Tajik
* docs(website): new translation for iis-server.md in Serbian (Latin)
* docs(website): new translation for iis-server.md in Filipino
* docs(website): new translation for iis-server.md in Hindi
* docs(website): new translation for iis-server.md in Portuguese, Brazilian
* docs(website): new translation for iis-server.md in Galician
* docs(website): new translation for iis-server.md in Chinese Traditional
* docs(website): new translation for iis-server.md in Chinese Simplified
* docs(website): new translation for iis-server.md in Serbian (Cyrillic)
* docs(website): new translation for iis-server.md in Russian
* docs(website): new translation for iis-server.md in Portuguese
* docs(website): new translation for iis-server.md in Polish
* docs(website): new translation for iis-server.md in Korean
* docs(website): new translation for iis-server.md in Japanese
* docs(website): new translation for iis-server.md in Italian
* docs(website): new translation for iis-server.md in German
* docs(website): new translation for iis-server.md in Czech
* docs(website): new translation for iis-server.md in Arabic
* docs(website): new translation for iis-server.md in Spanish
* docs(website): new translation for iis-server.md in French
* docs(website): new translation for iis-server.md in Romanian
* docs(website): new translation for e2e.md in Czech
* docs(website): new translation for e2e.md in Hindi
* docs(website): new translation for e2e.md in Portuguese, Brazilian
* docs(website): new translation for e2e.md in Galician
* docs(website): new translation for e2e.md in Vietnamese
* docs(website): new translation for e2e.md in Chinese Traditional
* docs(website): new translation for e2e.md in Chinese Simplified
* docs(website): new translation for e2e.md in Serbian (Cyrillic)
* docs(website): new translation for e2e.md in Russian
* docs(website): new translation for e2e.md in Portuguese
* docs(website): new translation for e2e.md in Polish
* docs(website): new translation for e2e.md in Korean
* docs(website): new translation for e2e.md in Japanese
* docs(website): new translation for e2e.md in Italian
* docs(website): new translation for e2e.md in German
* docs(website): new translation for e2e.md in Arabic
* docs(website): new translation for e2e.md in Serbian (Latin)
* docs(website): new translation for e2e.md in Spanish
* docs(website): new translation for e2e.md in French
* docs(website): new translation for e2e.md in Romanian
* docs(website): new translation for docker.md in Yoruba
* docs(website): new translation for docker.md in Tajik
* docs(website): new translation for docker.md in Serbian (Latin)
* docs(website): new translation for docker.md in Filipino
* docs(website): new translation for docker.md in Hindi
* docs(website): new translation for docker.md in Portuguese, Brazilian
* docs(website): new translation for docker.md in Galician
* docs(website): new translation for docker.md in Vietnamese
* docs(website): new translation for docker.md in Chinese Traditional
* docs(website): new translation for docker.md in Chinese Simplified
* docs(website): new translation for docker.md in Serbian (Cyrillic)
* docs(website): new translation for e2e.md in Filipino
* docs(website): new translation for e2e.md in Tajik
* docs(website): new translation for github-actions.md in Galician
* docs(website): new translation for github-actions.md in Yoruba
* docs(website): new translation for github-actions.md in Tajik
* docs(website): new translation for github-actions.md in Serbian (Latin)
* docs(website): new translation for github-actions.md in Filipino
* docs(website): new translation for github-actions.md in Hindi
* docs(website): new translation for github-actions.md in Portuguese, Brazilian
* docs(website): new translation for github-actions.md in Vietnamese
* docs(website): new translation for e2e.md in Yoruba
* docs(website): new translation for github-actions.md in Italian
* docs(website): new translation for github-actions.md in Romanian
* docs(website): new translation for github-actions.md in French
* docs(website): new translation for github-actions.md in Spanish
* docs(website): new translation for github-actions.md in Arabic
* docs(website): new translation for github-actions.md in Czech
* docs(website): new translation for logo.md in Korean
* docs(website): new translation for logo.md in Polish
* docs(website): new translation for logo.md in Portuguese
* docs(website): new translation for logo.md in Russian
* docs(website): new translation for logo.md in Serbian (Cyrillic)
* docs(website): new translation for logo.md in Chinese Simplified
* docs(website): new translation for logo.md in Chinese Traditional
* docs(website): new translation for logo.md in Vietnamese
* docs(website): new translation for logo.md in Galician
* docs(website): new translation for logo.md in Portuguese, Brazilian
* docs(website): new translation for logo.md in Hindi
* docs(website): new translation for logger.md in Hindi
* docs(website): new translation for logger.md in Galician
* docs(website): new translation for linking.md in Chinese Simplified
* docs(website): new translation for logger.md in Spanish
* docs(website): new translation for linking.md in Chinese Traditional
* docs(website): new translation for linking.md in Vietnamese
* docs(website): new translation for linking.md in Galician
* docs(website): new translation for amazon.md in French
* docs(website): new translation for linking.md in Hindi
* docs(website): new translation for linking.md in Filipino
* docs(website): new translation for linking.md in Serbian (Latin)
* docs(website): new translation for linking.md in Tajik
* docs(website): new translation for linking.md in Yoruba
* docs(website): new translation for logger.md in Romanian
* docs(website): new translation for logger.md in French
* docs(website): new translation for logger.md in Arabic
* docs(website): new translation for logger.md in Vietnamese
* docs(website): new translation for logger.md in Czech
* docs(website): new translation for logger.md in German
* docs(website): new translation for logger.md in Italian
* docs(website): new translation for logger.md in Japanese
* docs(website): new translation for logger.md in Korean
* docs(website): new translation for logger.md in Polish
* docs(website): new translation for logger.md in Portuguese
* docs(website): new translation for logger.md in Russian
* docs(website): new translation for logger.md in Serbian (Cyrillic)
* docs(website): new translation for logger.md in Chinese Simplified
* docs(website): new translation for logger.md in Chinese Traditional
* docs(website): new translation for install.md in Arabic
* docs(website): new translation for reverse-proxy.md in German
* docs(website): new translation for repositories.md in Hindi
* docs(website): new translation for repositories.md in Filipino
* docs(website): new translation for repositories.md in Serbian (Latin)
* docs(website): new translation for repositories.md in Tajik
* docs(website): new translation for repositories.md in Yoruba
* docs(website): new translation for reverse-proxy.md in Romanian
* docs(website): new translation for reverse-proxy.md in French
* docs(website): new translation for reverse-proxy.md in Spanish
* docs(website): new translation for reverse-proxy.md in Arabic
* docs(website): new translation for reverse-proxy.md in Czech
* docs(website): new translation for reverse-proxy.md in Italian
* docs(website): new translation for repositories.md in Galician
* docs(website): new translation for reverse-proxy.md in Japanese
* docs(website): new translation for reverse-proxy.md in Korean
* docs(website): new translation for reverse-proxy.md in Polish
* docs(website): new translation for reverse-proxy.md in Portuguese
* docs(website): new translation for reverse-proxy.md in Russian
* docs(website): new translation for reverse-proxy.md in Serbian (Cyrillic)
* docs(website): new translation for reverse-proxy.md in Chinese Simplified
* docs(website): new translation for reverse-proxy.md in Chinese Traditional
* docs(website): new translation for reverse-proxy.md in Vietnamese
* docs(website): new translation for reverse-proxy.md in Galician
* docs(website): new translation for reverse-proxy.md in Portuguese, Brazilian
* docs(website): new translation for repositories.md in Portuguese, Brazilian
* docs(website): new translation for repositories.md in Vietnamese
* docs(website): new translation for reverse-proxy.md in Filipino
* docs(website): new translation for repositories.md in French
* docs(website): new translation for puppet.md in Chinese Simplified
* docs(website): new translation for puppet.md in Chinese Traditional
* docs(website): new translation for puppet.md in Vietnamese
* docs(website): new translation for puppet.md in Galician
* docs(website): new translation for puppet.md in Portuguese, Brazilian
* docs(website): new translation for puppet.md in Hindi
* docs(website): new translation for puppet.md in Filipino
* docs(website): new translation for puppet.md in Serbian (Latin)
* docs(website): new translation for puppet.md in Tajik
* docs(website): new translation for puppet.md in Yoruba
* docs(website): new translation for repositories.md in Romanian
* docs(website): new translation for repositories.md in Spanish
* docs(website): new translation for repositories.md in Chinese Traditional
* docs(website): new translation for repositories.md in Arabic
* docs(website): new translation for repositories.md in Czech
* docs(website): new translation for repositories.md in German
* docs(website): new translation for repositories.md in Italian
* docs(website): new translation for repositories.md in Japanese
* docs(website): new translation for repositories.md in Korean
* docs(website): new translation for repositories.md in Polish
* docs(website): new translation for repositories.md in Portuguese
* docs(website): new translation for repositories.md in Russian
* docs(website): new translation for repositories.md in Serbian (Cyrillic)
* docs(website): new translation for repositories.md in Chinese Simplified
* docs(website): new translation for reverse-proxy.md in Hindi
* docs(website): new translation for reverse-proxy.md in Serbian (Latin)
* docs(website): new translation for puppet.md in Russian
* docs(website): new translation for server.md in Chinese Traditional
* docs(website): new translation for server.md in Czech
* docs(website): new translation for server.md in German
* docs(website): new translation for server.md in Italian
* docs(website): new translation for server.md in Japanese
* docs(website): new translation for server.md in Korean
* docs(website): new translation for server.md in Polish
* docs(website): new translation for server.md in Portuguese
* docs(website): new translation for server.md in Russian
* docs(website): new translation for server.md in Serbian (Cyrillic)
* docs(website): new translation for server.md in Chinese Simplified
* docs(website): new translation for server.md in Vietnamese
* docs(website): new translation for server.md in Spanish
* docs(website): new translation for server.md in Galician
* docs(website): new translation for server.md in Portuguese, Brazilian
* docs(website): new translation for server.md in Hindi
* docs(website): new translation for server.md in Filipino
* docs(website): new translation for server.md in Serbian (Latin)
* docs(website): new translation for server.md in Tajik
* docs(website): new translation for server.md in Yoruba
* docs(website): new translation for ssl.md in Romanian
* docs(website): new translation for ssl.md in French
* docs(website): new translation for ssl.md in Spanish
* docs(website): new translation for ssl.md in Arabic
* docs(website): new translation for server.md in Arabic
* docs(website): new translation for server.md in French
* docs(website): new translation for reverse-proxy.md in Tajik
* docs(website): new translation for reverse-proxy.md in Yoruba
* docs(website): new translation for server.md in Romanian
* docs(website): new translation for puppet.md in Serbian (Cyrillic)
* docs(website): new translation for puppet.md in Portuguese
* docs(website): new translation for plugins.md in French
* docs(website): new translation for plugins.md in Romanian
* docs(website): new translation for plugins.md in Spanish
* docs(website): new translation for puppet.md in Polish
* docs(website): new translation for protect-your-dependencies.md in Filipino
* docs(website): new translation for protect-your-dependencies.md in Polish
* docs(website): new translation for protect-your-dependencies.md in Portuguese
* docs(website): new translation for protect-your-dependencies.md in Russian
* docs(website): new translation for protect-your-dependencies.md in Serbian (Cyrillic)
* docs(website): new translation for protect-your-dependencies.md in Chinese Simplified
* docs(website): new translation for protect-your-dependencies.md in Chinese Traditional
* docs(website): new translation for protect-your-dependencies.md in Vietnamese
* docs(website): new translation for protect-your-dependencies.md in Galician
* docs(website): new translation for protect-your-dependencies.md in Portuguese, Brazilian
* docs(website): new translation for protect-your-dependencies.md in Hindi
* docs(website): new translation for protect-your-dependencies.md in Serbian (Latin)
* docs(website): new translation for protect-your-dependencies.md in Japanese
* docs(website): new translation for protect-your-dependencies.md in Tajik
* docs(website): new translation for protect-your-dependencies.md in Yoruba
* docs(website): new translation for puppet.md in Romanian
* docs(website): new translation for puppet.md in French
* docs(website): new translation for puppet.md in Spanish
* docs(website): new translation for puppet.md in Arabic
* docs(website): new translation for puppet.md in Czech
* docs(website): new translation for puppet.md in German
* docs(website): new translation for puppet.md in Italian
* docs(website): new translation for puppet.md in Japanese
* docs(website): new translation for puppet.md in Korean
* docs(website): new translation for protect-your-dependencies.md in Korean
* docs(website): new translation for protect-your-dependencies.md in Italian
* docs(website): new translation for plugins.md in Arabic
* docs(website): new translation for plugins.md in Vietnamese
* docs(website): new translation for plugins.md in Czech
* docs(website): new translation for plugins.md in German
* docs(website): new translation for plugins.md in Italian
* docs(website): new translation for plugins.md in Japanese
* docs(website): new translation for plugins.md in Korean
* docs(website): new translation for plugins.md in Polish
* docs(website): new translation for plugins.md in Portuguese
* docs(website): new translation for plugins.md in Russian
* docs(website): new translation for plugins.md in Serbian (Cyrillic)
* docs(website): new translation for plugins.md in Chinese Simplified
* docs(website): new translation for plugins.md in Chinese Traditional
* docs(website): new translation for plugins.md in Galician
* docs(website): new translation for protect-your-dependencies.md in German
* docs(website): new translation for plugins.md in Portuguese, Brazilian
* docs(website): new translation for plugins.md in Hindi
* docs(website): new translation for plugins.md in Filipino
* docs(website): new translation for plugins.md in Serbian (Latin)
* docs(website): new translation for plugins.md in Tajik
* docs(website): new translation for plugins.md in Yoruba
* docs(website): new translation for protect-your-dependencies.md in Romanian
* docs(website): new translation for protect-your-dependencies.md in French
* docs(website): new translation for protect-your-dependencies.md in Spanish
* docs(website): new translation for protect-your-dependencies.md in Arabic
* docs(website): new translation for protect-your-dependencies.md in Czech
* docs(website): new translation for install.md in Czech
* docs(website): new translation for linking.md in Portuguese, Brazilian
* docs(website): new translation for install.md in Spanish
* docs(website): new translation for caching.md in Serbian (Cyrillic)
* docs(website): new translation for caching.md in Spanish
* docs(website): new translation for caching.md in Arabic
* docs(website): new translation for caching.md in Czech
* docs(website): new translation for caching.md in German
* docs(website): new translation for caching.md in Italian
* docs(website): new translation for caching.md in Japanese
* docs(website): new translation for caching.md in Korean
* docs(website): new translation for caching.md in Polish
* docs(website): new translation for caching.md in Portuguese
* docs(website): new translation for caching.md in Russian
* docs(website): new translation for caching.md in Chinese Simplified
* docs(website): new translation for caching.md in Romanian
* docs(website): new translation for caching.md in Chinese Traditional
* docs(website): new translation for caching.md in Vietnamese
* docs(website): new translation for caching.md in Galician
* docs(website): new translation for caching.md in Portuguese, Brazilian
* docs(website): new translation for caching.md in Hindi
* docs(website): new translation for caching.md in Filipino
* docs(website): new translation for caching.md in Serbian (Latin)
* docs(website): new translation for install.md in French
* docs(website): new translation for caching.md in Yoruba
* docs(website): new translation for chef.md in Romanian
* docs(website): new translation for chef.md in French
* docs(website): new translation for caching.md in French
* docs(website): new translation for best-practices.md in Yoruba
* docs(website): new translation for chef.md in Arabic
* docs(website): new translation for best-practices.md in Korean
* docs(website): new translation for best-practices.md in Romanian
* docs(website): new translation for who-is-using.md in Russian
* docs(website): new translation for windows.md in Serbian (Latin)
* docs(website): new translation for windows.md in Tajik
* docs(website): new translation for windows.md in Yoruba
* docs(website): new translation for windows.md in Hindi
* docs(website): new translation for en.json in Chinese Simplified
* docs(website): new translation for windows.md in Filipino
* docs(website): new translation for windows.md in Portuguese, Brazilian
* docs(website): new translation for who-is-using.md in Serbian (Cyrillic)
* docs(website): new translation for windows.md in Spanish
* docs(website): new translation for who-is-using.md in Chinese Simplified
* docs(website): new translation for who-is-using.md in Chinese Traditional
* docs(website): new translation for who-is-using.md in Vietnamese
* docs(website): new translation for who-is-using.md in Galician
* docs(website): new translation for who-is-using.md in Portuguese, Brazilian
* docs(website): new translation for who-is-using.md in Hindi
* docs(website): new translation for who-is-using.md in Filipino
* docs(website): new translation for who-is-using.md in Serbian (Latin)
* docs(website): new translation for who-is-using.md in Tajik
* docs(website): new translation for who-is-using.md in Yoruba
* docs(website): new translation for windows.md in Romanian
* docs(website): new translation for windows.md in French
* docs(website): new translation for windows.md in Arabic
* docs(website): new translation for windows.md in Galician
* docs(website): new translation for windows.md in Czech
* docs(website): new translation for windows.md in German
* docs(website): new translation for windows.md in Italian
* docs(website): new translation for windows.md in Japanese
* docs(website): new translation for windows.md in Korean
* docs(website): new translation for windows.md in Polish
* docs(website): new translation for windows.md in Portuguese
* docs(website): new translation for windows.md in Russian
* docs(website): new translation for windows.md in Serbian (Cyrillic)
* docs(website): new translation for windows.md in Chinese Simplified
* docs(website): new translation for windows.md in Chinese Traditional
* docs(website): new translation for windows.md in Vietnamese
* chore: frozen installation
* chore: add service
disable some workflows
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: add windows
* chore: add e2e ui
* chore: add cli
* chore: add cli
* chore: add website ci
* chore: improve naming
* fix: escaped slash in namespaced packages
* run format on code
* merge master branch (#2)
* chore: fix start web issue
* chore: use custom action for changeset
this is temporary while I find the way to skip create github releases for alpha
* chore: format as separated workflow (#2194)
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* merge master (#3)
* chore: fix start web issue
* chore: use custom action for changeset
this is temporary while I find the way to skip create github releases for alpha
* chore: format as separated workflow (#2194)
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* add changeset
* format
Co-authored-by: amit <amit@enso.security>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* 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>
* test: add test for whoami
* Update middleware.ts
* test for user api
* more test for user api
* remove repeated code
* refactor
* Update index.spec.ts
* add package test
refactor others
* chore: upgrade deps
* chore: add test for package
* chore: update test
* update lock file
* Update ci.yml
* Update ci.yml
* Update package.spec.ts
* chore: update ci settings
* chore: update deps
* chore: update test
# Number of days of inactivity before an issue becomes stale
daysUntilStale:15
daysUntilStale:365
# Number of days of inactivity before a stale issue is closed
daysUntilClose:10
daysUntilClose:500
# Issues with these labels will never be considered stale
exemptLabels:
- dev:high priority
@@ -10,17 +10,17 @@ exemptLabels:
- issue:bug
- dev:discuss
# 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
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. It’s 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!
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!
We get a lot of issues, so we currently close issues after 180 days of inactivity. It’s been at least 90c 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!
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
> ⚠️ If you intend to file a PR with a new feature, please use the 5.x branch for it 🥰 . master branch is available only for **bug fixing** and dependencies updates.
> This guidelines refers to the main (`master`) that host the v6.x, if you want to contribute to `5.x` please read the following [link](https://github.com/verdaccio/verdaccio/blob/5.x/CONTRIBUTING.md).
We are happy that you wish to contribute to this project. For that reason, we
- [Test and triage bugs reported by others](https://github.com/verdaccio/verdaccio/issues?q=is%3Aopen+is%3Aissue+label%3Aissue_needs_triage)
- [Working on requested/approved features](https://github.com/verdaccio/verdaccio/issues?q=is%3Aopen+is%3Aissue+label%3A%22topic%3A+feature+request%22+)
- [Improve the codebase (linting, naming, comments, test descriptions, etc...)](https://github.com/verdaccio/verdaccio/discussions/1461)
- Improve code coverage for unit testing for every module, [end to end](https://github.com/verdaccio/verdaccio/tree/master/e2e/cli) or [UI test](https://github.com/verdaccio/verdaccio/tree/master/e2e/ui) (with cypress).
**Please read this document carefully. It will help maintainers and readers
in solving your issue(s), evaluating your feature request, etc.**
The Verdaccio project is split into several areas, the first three hosted in the main repository:
## Development
- **Core**: The [core](https://github.com/verdaccio/verdaccio) is the main repository, built with **Node.js**.
- **Website**: we use [**Docusaurus**](https://docusaurus.io/) for the **website** and if you are familiar with this technology, you might become the official webmaster.
- **User Interface**: The [user Interface](https://github.com/verdaccio/ui) is based in **react** and **material-ui** and looking for front-end contributors.
- **Kubernetes and Helm**: Ts the official repository for the [**Helm chart**](https://github.com/verdaccio/charts).
Development guides can be found on the [wiki](https://github.com/verdaccio/verdaccio/wiki):
> There are other areas to contribute, like [documentation](https://github.com/verdaccio/verdaccio/tree/master/website/docs) or [translations](#translations}).
* [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)
## Prepare local setup {#local-setup}
## Reporting Bugs
Verdaccio uses [pnpm](https://pnpm.io) as the package manager for development in this repository.
We welcome clear, detailed bug reports.
If you are using pnpm for the first time the [pnpm configuration documentation](https://pnpm.io/configuring) may be useful to avoid any potential problems with the following steps.
**Note**: pnpm uses npm's configuration formats so check that your global `.npmrc` file does not inadvertently disable package locks. In other words, your `.npmrc` file **should not** contain
```
package-lock=false
```
This setting would cause the `pnpm install` command to install incorrect versions of package dependencies and the subsequent `pnpm build` step would likely fail.
To begin your development setup, please install the latest version of pnpm globally:
```
npm i -g pnpm@latest-8
```
With pnpm installed, the first step is installing all dependencies:
```
pnpm install
```
### Building the project
To build the project run
```
pnpm build
```
### Running test
```
pnpm test
```
Verdaccio is a mono repository. To run the tests for for a specific package:
```
cd packages/store
pnpm test
```
or an specific test in that package:
```
pnpm test test/merge.dist.tags.spec.ts
```
or a single test unit:
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple'
```
Coverage reporting is enabled by default, but you can turn it off to speed up
test runs:
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple' --coverage=false
```
You can enable increased [`debug`](https://www.npmjs.com/package/debug) output:
```
DEBUG=verdaccio:* pnpm test
```
More details in the debug section
### Running and debugging
> Check the debugging guidelines [here](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio)
We use [`debug`](https://www.npmjs.com/package/debug) to add helpful debugging
output to the code. Each package has it owns namespace.
#### Useful Scripts
To run the application from the source code, ensure the project has been built with `pnpm build`, once this is done, there are few commands that helps to run server:
-`pnpm start`: Runs server on port `8000` and UI on port `4873`. This is particularly useful if you want to contribute to the UI, since it runs with hot reload.
-`pnpm debug`: Run the server in debug mode `--inspect`. UI runs too but without hot reload. For automatic break use `pnpm debug:break`.
-`pnpm debug:fastify`: To contribute on the [fastify migration](https://github.com/verdaccio/verdaccio/discussions/2155) this is a temporary command for such purpose.
-`pnpm website`: Build the website, for more commands to run the _website_, run `cd website` and then `pnpm serve`, website will run on port `3000`.
-`pnpm docker`: Build the docker image. Requires `docker` command available in your system.
The debug code is intended to analyze what is happening under the hood and none
of the output is sent to the logger module.
> [See the full guide how to debug with Verdaccio](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio)
#### Testing your changes in a local registry {#testing-local-registry}
Once you have perform your changes in the code base, the build and tests passes you can publish a local version:
- Ensure you have build all modules (or the one you have modified)
- Run `pnpm local:publish:release` to launch a local registry and publish all packages into it. This command will be alive until server is killed (Control Key + C)
```
pnpm build
pnpm local:publish:release
```
The last step consist on install globally the package from the local registry which runs on the default port (4873).
```
npm i -g verdaccio --registry=http://localhost:4873
verdaccio
```
If you perform more changes in the source code, repeat this process, there is not _hot reloading_ support.
## Feature Request {#feature-request}
New feature requests are welcome. Analyse whether the idea fits within scope of the project. Adding in context and the use-case will really help!
**Please provide:**
- Create a [discussion](https://github.com/verdaccio/verdaccio/discussions/new).
- A detailed description the advantages of your request.
- Whether or not it's compatible with `npm`, `pnpm` and [_yarn classic_
](https://github.com/yarnpkg/yarn) or [_yarn modern_
](https://github.com/yarnpkg/berry).
- A potential implementation or design
- Whatever else is on your mind! 🤓
## Reporting Bugs {#reporting-bugs}
**Bugs are considered features that are not working as described in
documentation.**
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).
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), if you think a potential vulnerability please read the [security policy](https://verdaccio.org/community/security) .
**NOTE: Verdaccio still does not support all npm commands. Some were not
considered important and others have not been requested yet.**
> **NOTE: Verdaccio still does not support all npm commands. Some were not
> considered important and others have not been requested yet.**
### Issue Search
### What's is not considered a bug?
Search to see if it has already been reported via
the issue search.
- _Third party integrations_: proxies integrations, external plugins
- _Package managers_: If a package manager does not support a specific command
or cannot be reproduced with another package manager
- _Features clearly flagged as not supported_
- _Node.js issues installation in any platform_: If you cannot install the
global package (this is considered external issue)
- Any ticket which has been flagged as an [external issue
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.
### Check Website For Solution
### Issues {#issues}
Some of the most popular topics can be found in our website(http://www.verdaccio.org/docs/en/installation.html)
Before reporting a bug please:
### Chat
- Search for existing issues to see if it has already been reported
- Look for the **question** label: we have labelled questions for easy follow-up
as [questions](https://github.com/verdaccio/verdaccio/labels/question)
Questions can be asked via [Discord](http://chat.verdaccio.org/)
In case any of those match with your search, up-vote it (using GitHub reactions)
or add additional helpful details to the existing issue to show that it's
affecting multiple people.
**Please use the `#questions#` and `#development` channels.**
### Contributing support
### Check If It's Been Fixed
Questions can be asked via [Discord](https://discord.gg/7qWJxBf)
Check if the issue has been fixed — try to reproduce it using the latest
`master` or development branch in the repository.
**Please use the `#contribute` channel.**
## Request Features
## Development Guidelines {#development-guidelines}
New feature requests are welcome. Analyse whether the idea fits within scope of
the project. Then, detail your request, ensuring context and use case is provided.
It's recommended use a UNIX system for local development, Windows should works fine for development, but is not daily tested could not be perfect. To ensure a fast code review and merge, please follow the next guidelines:
**Please provide:**
Any contribution gives you the right to be part of this organization as _collaborator_ and your avatar will be automatically added to the [contributors page](https://verdaccio.org/contributors).
* A detailed description the advantages of your request
* Whether or not it's compatible with `npm` and `yarn`
* A potential implementation or design
* Whatever else you have in your mind 🤓
## Pull Request {#pull-request}
### Submitting a Pull Request
### Submitting a Pull Request {#submit-pull-request}
The following are the steps you should follow when creating a pull request.
Subsequent pull requests only need to follow step 3 and beyond.
@@ -116,79 +248,143 @@ information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)
### Make Changes and Commit
#### Before Commit
#### Caveats
Before committing, **you must ensure there are no linting errors and
all tests pass.**
Feel free to commit as much times you want in your branch, but keep on mind on
this repository we `git squash` on merge by default, as we like to maintain a
clean git history.
To do this, run all tests (including e2e):
#### Before Push {#before-push}
Before committing or push, **you must ensure there are no linting errors and
all tests passes**. To do verify, run these commands before creating the PR:
```bash
yarn test:all
pnpm lint
pnpm format
pnpm build
pnpm test
```
Then, and only then, you can create your pull request.
> note: eslint and formatting are run separately, keep code formatting
> before push.
#### Commit Guidelines
All good? Perfect! You should create the pull request.
We follow the [conventional commit messages](https://conventionalcommits.org/)
convention in order to automate CHANGELOG generation and to automate
semantic versioning.
#### Commit Guidelines {#commits}
For example:
On a pull request, commit messages are not important, please focus on document properly the pull request content. The commit message will be taken from the pull request title, it is recommended to use lowercase format.
*`feat: A new feature`
*`fix: A bug fix`
### Adding a changeset {#changeset}
A commit of the type feat introduces a new feature to the codebase
(this correlates with MINOR in semantic versioning).
We use [changesets](https://github.com/atlassian/changesets) in order to
generate a detailed Changelog as possible.
e.g.:
Adding a changeset with your Pull Request is essential if you want your
contribution to get merged (unless it does not affect functionality or
user-facing content, eg: docs, readme, adding test or typo/lint fixes). To
create a changeset please run:
```
feat: xxxxxxxxxx
pnpm changeset
```
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
e.g.:
Then select the packages you want to include in your changeset navigating
through them and press the spacebar to check it, on finish press enter to move
to the next step.
```
fix: xxxxxxxxxx
🦋 Which packages would you like to include? …
✔ changed packages
changed packages
✔ @verdaccio/api
✔ @verdaccio/auth
✔ @verdaccio/cli
✔ @verdaccio/config
✔ @verdaccio/commons-api
```
Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:`
and `chore:` are valid but have no effect on versioning. **It would be great if you use them.**
The next question would be if you want a _major bump_. This is not the usual
scenario, most likely you want a patch, and in that case press enter 2 times
(to skip minor)
All commits message are going to be validated when they are created using husky hooks.
```
🦋 Which packages should have a major bump? …
✔ all packages
✔ @verdaccio/config@5.0.0-alpha.0
```
Once you have the desired bump you need, the CLI will ask for a summary. Here
you have full freedom on what to include:
```
🦋 Which packages would you like to include? · @verdaccio/config
🦋 Which packages should have a major bump? · No items were selected
🦋 Which packages should have a minor bump? · No items were selected
🦋 The following packages will be patch bumped:
🦋 @verdaccio/config@5.0.0-alpha.0
🦋 Please enter a summary for this change (this will be in the changelogs). Submit empty line to open external editor
🦋 Summary ›
```
The last step is to confirm your changeset or abort the operation:
```
🦋 Is this your desired changeset? (Y/n) · true
🦋 Changeset added! - you can now commit it
🦋
🦋 If you want to modify or expand on the changeset summary, you can find it here
🦋 info /Users/user/verdaccio.clone/.changeset/light-scissors-smell.md
```
Once the changeset is added (all will have an unique name) you can freely edit
using markdown, adding additional information, code snippets or whatever else
you consider to be relevant.
All that information will be part of the **changelog**. Be concise but
informative! It's recommended to add your nickname and GitHub link to your
profile.
**PRs that do not follow the commit message guidelines will not be merged.**
## Update Tests
### Update Tests
**Any change in source code must include test updates**.
If you need help with how testing works, please [refer to the following guide](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests).
If you need help with how testing works, please [refer to the following guide
If you want to contribute by adding translations, create an account (GitHub could be used as fast alternative), in the platform you can contribute to two areas, the website or improve User Interface translations.
If a language is not listed, ask for it in the [Discord](https://discord.gg/7qWJxBf) channel #contribute channel.
For adding a new **language** on the UI follow these steps:
1. Ensure the **language** has been enabled, must be visible in the `crowdin` platform.
2. Find in the explorer the file `en.US.json` in the path `packages/plugins/ui-theme/src/i18n/crowdin/ui.json` and complete the translations, **not need to find approval on this**.
3. Into the project, add a new field into `packages/plugins/ui-theme/src/i18n/crowdin/ui.json` file, in the section `lng`, the new language, eg: `{ lng: {korean:"Korean"}}`. (This file is English based, once the PR has been merged, this string will be available in crowdin for translate to the targeted language).
4. Add the language, [flag icon](https://www.npmjs.com/package/country-flag-icons), and the menu key fort he new language eg: `menuKey: 'lng.korean'` to the file `packages/plugins/ui-theme/src/i18n/enabledLanguages.ts`.
5. For local testing, read `packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md`.
6. Add a `changeset` file, see more info below.
## Develop Plugins {#develop-plugins}
Plugins are add-ons that extend the functionality of the application.
If you want to develop your own plugin:
1. Check whether there is a legacy Sinopia plugin for the feature that you need
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)
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
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)
3.You are free to host your plugin in your repository
4. Provide a detailed description of your plugin to help users understand how to
Furthermore, you can read the [**Debugging Guidelines**](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio) and the [**Docker Examples**](https://github.com/verdaccio/verdaccio/tree/master/docker-examples) for more advanced development.
## Plugins
You can develop your own [plugins](https://verdaccio.org/docs/plugins) with the [verdaccio generator](https://github.com/verdaccio/generator-verdaccio-plugin). Installing [Yeoman](https://yeoman.io/) is required.
Learn more [here](https://verdaccio.org/docs/dev-plugins) how to develop plugins. Share your plugins with the community.
## 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 do a long support donation - **and your logo will be on this section of the readme.**
**[Donate](https://opencollective.com/verdaccio)** 💵👍🏻 starting from *$1/month* or just one single contribution.
**[Donate](https://github.com/sponsors/verdaccio)** 💵👍🏻 starting from _$1/month_ or just one single contribution.
## What does Verdaccio do for me?
@@ -51,14 +100,13 @@ If you want to use all benefits of npm package system in your company without se
### Cache npmjs.org registry
If you have more than one server you want to install packages on, you might want to use this to decrease latency
(presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like *[How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)*, *[Many packages suddenly disappeared](https://github.com/npm/registry-issue-archive/issues/255)* or *[Registry returns 404 for a package I have installed before](https://github.com/npm/registry-issue-archive/issues/329)*.
If you have more than one server you want to install packages on, you might want to use this to decrease latency
(presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like _[How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)_, _[Many packages suddenly disappeared](https://github.com/npm/registry-issue-archive/issues/255)_ or _[Registry returns 404 for a package I have installed before](https://github.com/npm/registry-issue-archive/issues/329)_.
### Link multiple registries
If you use multiples registries in your organization and need to fetch packages from multiple sources in one single project you might take advance of the uplinks feature with Verdaccio, chaining multiple registries and fetching from one single endpoint.
### Override public packages
If you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accept pull request yet), you can publish your version locally under the same name. See in detail [here](https://verdaccio.org/docs/en/best#override-public-packages).
@@ -66,22 +114,35 @@ If you want to use a modified version of some 3rd-party package (for example, yo
### E2E Testing
Verdaccio has proved to be a lightweight registry that can be
booted in a couple of seconds, fast enough for any CI. Many open source projects use verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **alfresco** or **eclipse theia**. You can read more in dedicated article to E2E in our blog.
booted in a couple of seconds, fast enough for any CI. Many open source projects use verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **babel.js**, **angular-cli** or **docusaurus**. You can read more in [here](https://verdaccio.org/docs/e2e).
## Talks
Furthermore, here few examples how to start:
**Next talk**: [Verdaccio - A lightweight Private Proxy Registry built in Node.js | Juan Picado at The Destro Dev Show](https://www.youtube.com/watch?reload=9&v=P_hxy7W-IL4&ab_channel=TheDestroDevShow)
You might want to check out as well our previous talks:
You might want to check out as well our previous talks:
* [ViennaJS Meetup - Introduction to Verdaccio by **Priscila Olivera** and **Juan Picado**](https://www.youtube.com/watch?v=hDIFKzmoCa)
* [Open Source? trivago - Verdaccio (**Ayush** and **Juan Picado**) January 2020](https://www.youtube.com/watch?v=A5CWxJC9xzc)
* [GitNation Open Source Stage - How we have built a Node.js Registry with React - **Juan Picado** December 2019](https://www.youtube.com/watch?v=gpjC8Qp9B9A)
- [Using Docker and Verdaccio to make Integration Testing Easy - **Docker All Hands #4 December - 2021**](https://www.youtube.com/watch?v=zRI0skF1f8I)
- [**Juan Picado** – Testing the integrity of React components by publishing in a private registry - React Finland - 2021](https://www.youtube.com/watch?v=bRKZbrlQqLY&t=16s&ab_channel=ReactFinland)
- [**OpenJS World 2020** about \*Cover your Projects with a Multi purpose Lightweight Node.js Registry - **Juan Picado**](https://www.youtube.com/watch?v=oVCjDWeehAQ)
- [ViennaJS Meetup - Introduction to Verdaccio by **Priscila Olivera** and **Juan Picado**](https://www.youtube.com/watch?v=hDIFKzmoCa)
- [Open Source? trivago - Verdaccio (**Ayush** and **Juan Picado**) January 2020](https://www.youtube.com/watch?v=A5CWxJC9xzc)
- [GitNation Open Source Stage - How we have built a Node.js Registry with React - **Juan Picado** December 2019](https://www.youtube.com/watch?v=gpjC8Qp9B9A)
- [Verdaccio - A lightweight Private Proxy Registry built in Node.js | **Juan Picado** at The Destro Dev Show](https://www.youtube.com/watch?reload=9&v=P_hxy7W-IL4&ab_channel=TheDestroDevShow)
## Get Started
@@ -94,10 +155,11 @@ verdaccio
You would need set some npm configuration, this is optional.
```bash
$ npm set registry http://localhost:4873/
npm set registry http://localhost:4873/
```
For one-off commands or to avoid setting the registry globally:
@@ -191,42 +247,53 @@ Verdaccio aims to support all features of a standard npm client that make sense
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).
## Core Team
## Special Thanks
The core team is responsible for driving this project ahead, team is ordered by antiquity and areas of responsibility.
Thanks to the following companies to help us to achieve our goals providing free open source licenses. Every company provides enough resources to move this project forward.
| BrowserStack | [](https://www.browserstack.com/) | BrowserStack provides plan to run End to End testing for the UI |
| Netlify | [](https://www.netlify.com/) | Netlify provides pro plan for website deployment |
| Algolia | [](https://algolia.com/) | Algolia provides search services for the website |
| Docker | [](https://www.docker.com/community/open-source/application) | Docker offers unlimited pulls and unlimited egress to any and all users |
You can find and chat with then over Discord, click [here](http://chat.verdaccio.org) or follow them at *Twitter*.
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
@@ -268,19 +326,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.
The following table describes the versions of this project that are currently supported with security updates:
| Version | Supported |
| ------- | ------------------ |
| 2.x | :x: |
| 3.x | :x: |
| 4.x | :white_check_mark: |
| Version | Supported |
| --------- | ------------------ |
| 2.x | :x: |
| 3.x | :x: |
| 4.x | :x: |
| 5.x | :white_check_mark: |
| 6.x alpha | :x: |
## Responsible disclosure security policy
@@ -26,11 +28,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:
* 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 [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 program’s 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://cdn.verdaccio.dev/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.
# by default packages are ordercer ascendant (asc|desc)
# sort_packages: asc
# convert your UI to the dark side
# darkMode: true
# translate your registry, api i18n not available yet
# i18n:
# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
# web: en-US
auth:
htpasswd:
file:./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
# max_users: 1000
# a list of other known repositories we can talk to
uplinks:
npmjs:
url:https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access:$all
publish:$authenticated
unpublish:$authenticated
proxy:npmjs
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access:$all
# allow all known users to publish/publish packages
# (anyone can register by default, remember?)
publish:$authenticated
unpublish:$authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy:npmjs
# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
server:
keepAliveTimeout:60
middlewares:
audit:
enabled:true
# log settings
logs:
- {type: stdout, format: pretty, level:http }
#- {type: file, path: verdaccio.log, level: info}
#experiments:
# # support for npm token command
# token: false
# # support for the new v1 search endpoint, functional by incomplete read more on ticket 1732
# search: false
# # disable writing body size to logs, read more on ticket 1912
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.