* fix: login state when token expired
If there token in the localstorage, the user was always displayed as authenticated, regardless of the token expiration
* chore: added changeset for @verdaccio/ui-components
* tests: JSON error for node versions older than 20
* fix: Add onClick handler in Link component
In the "Link" component, the onClick handler was not provided,
leading to the absence of a download action in the Package.tsx
renderDownloadLink component.
* Removed "external" attribute from "renderDownloadLink"
The "external" attribute is unnecessary in this context
since the download action is triggered by the "handleDownload" callback.
* added changeset for @verdaccio/ui-components
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
Reading https://ebaytech.berlin/optimizing-multi-package-apps-with-typescript-project-references-d5c57a3b4440 I realized I can use project references to solve the issue to pre-compile modules on develop mode.
It allows to navigate (IDE) trough the packages without need compile the packages.
Add two `tsconfig`, one using the previous existing configuration that is able to produce declaration files (`tsconfig.build`) and a new one `tsconfig` which is enables [_projects references_](https://www.typescriptlang.org/docs/handbook/project-references.html).
feat: allow other password hashing algorithms (#1917)
**breaking change**
The current implementation of the `htpasswd` module supports multiple hash formats on verify, but only `crypt` on sign in.
`crypt` is an insecure old format, so to improve the security of the new `verdaccio` release we introduce the support of multiple hash algorithms on sign in step.
### New hashing algorithms
The new possible hash algorithms to use are `bcrypt`, `md5`, `sha1`. `bcrypt` is chosen as a default, because of its customizable complexity and overall reliability. You can read more about them [here](https://httpd.apache.org/docs/2.4/misc/password_encryptions.html).
Two new properties are added to `auth` section in the configuration file:
-`algorithm` to choose the way you want to hash passwords.
-`rounds` is used to determine `bcrypt` complexity. So one can improve security according to increasing computational power.
Example of the new `auth` config file section:
```yaml
auth:
htpasswd:
file:./htpasswd
max_users:1000
# Hash algorithm, possible options are: "bcrypt", "md5", "sha1", "crypt".
algorithm:bcrypt
# Rounds number for "bcrypt", will be ignored for other algorithms.
- Verdaccio prettify `@verdaccio/logger-prettify` the logging which looks beautiful. But there are scenarios which does not make sense in production. This feature enables disable by default the prettifies if production `NODE_ENV` is enabled.
- Updates pino.js to `^6.7.0`.
- Suppress the warning when prettifier is enabled `suppressFlushSyncWarning`
If there is a package manager of preference over others, you can define the package managers to be displayed on the detail page and sidebar, just define in the `config.yaml` and web section the list of package managers to be displayed.
```
web:
title: Verdaccio
sort_packages: asc
primary_color: #cccccc
pkgManagers:
- pnpm
- yarn
# - npm
```
To disable all package managers, just define empty:
# 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
@@ -17,7 +17,7 @@ markComment: >
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.
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!
> Any change matters, whatever the size, just do it.
> 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 are willing to contribute. 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).
Verdaccio has several areas of involvement, which might fit you better, eg:
The Verdaccio project is split into several areas, the first three hosted in the main repository:
- **Core**: The [core](https://github.com/verdaccio/verdaccio) is the main repository, built with **Node.js**.
- **Website**: we uses **Gatsby.js** for the **website** and if you are familiar with this technology, you might become the official webmaster.
- **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).
> There are other areas to contribute, like documentation, translation which are not hosted on this repo but check the last section of this notes for further information.
> There are other areas to contribute, like [documentation](https://github.com/verdaccio/verdaccio/tree/master/website/docs) or [translations](#translations}).
## Development Setup
## Prepare local setup {#local-setup}
Verdaccio uses [_pnpm_](https://pnpm.js.org/) as package manager for development in this repository. Please install the latest one:
Verdaccio uses [pnpm](https://pnpm.io) as the package manager for development in this repository.
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
```
npm i -g pnpm
package-lock=false
```
First step is installing all dependencies:
This setting would cause the `pnpm install` command to installincorrect 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
@@ -79,117 +67,166 @@ pnpm build
pnpm test
```
Verdaccio is a mono repository, for running an specific test or package go the specific package eg:
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
or an specific test in that package:
```
pnpm test test/merge.dist.tags.spec.ts
```
or a single test unit
or a single test unit:
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple'
```
The coverage is enabled by default, to speed up test running
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
```
To increase debug output, we use `debug`, to enable it in your test just add
You can enable increased [`debug`](https://www.npmjs.com/package/debug) output:
```
DEBUG=verdaccio* pnpm test
DEBUG=verdaccio:* pnpm test
```
More details in the debug section
### Running and debugging
We uses [`debug`](https://www.npmjs.com/package/debug) for debug outcome. Each package has it owns namespace.
> Check the debugging guidelines [here](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio)
### Debugging compiled code
We use [`debug`](https://www.npmjs.com/package/debug) to add helpful debugging
output to the code. Each package has it owns namespace.
Currently you can only run in debug mode pre-compiled packages, to enable debug while running add the `verdaccio` namespace using the `DEBUG` environment variable, like this:
#### 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 gathered with the logger module.
The debug code is intended to analyze what is happening under the hood and none
of the output is sent to the logger module.
## Reporting Bugs
> [See the full guide how to debug with Verdaccio](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio)
**Bugs are considered features that are not working as described in documentation.**
#### 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).
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.**
### Read the documentation
Check whether you are using the software in the way is documented [documentation](http://www.verdaccio.org/docs/en/installation.html).
### What's is not considered a bug?
- _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 the flagged as [external issue](https://github.com/verdaccio/verdaccio/labels/external-issue).
- _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
Before consider report a bug, please follow this steps before:
Before reporting a bug please:
- Search if has already been reported via the issue search.
- Look for the **question** label: we have labelled questions for easy follow-up as [questions](https://github.com/verdaccio/verdaccio/labels/question).
- 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)
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.
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.
### Chat
### Contributing support
Questions can be asked via [Discord](http://chat.verdaccio.org/)
Questions can be asked via [Discord](https://discord.gg/7qWJxBf)
**Please use the `#help` channel.**
**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`, `pnpm` and [_yarn classic_](https://github.com/yarnpkg/yarn) or [_yarn berry_](https://github.com/yarnpkg/berry).
- A potential implementation or design
- Whatever else you have in your mind 🤓
## Pull Request {#pull-request}
## Contributing Guidelines
This is the most exciting part, when you became a Verdaccio contributor 🙌🏼, to ensure a fast code review and merge, please follow the next guidelines:
> Any contribution gives you the right to be part of this organization as _collaborator_.
### 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.
@@ -213,14 +250,14 @@ information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)
#### Caveats
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, any other way is forbidden since we intent to have a clean git history.
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.
#### Before Commit
#### Before Push {#before-push}
Before committing, **you must ensure there are no linting errors and
all tests pass.**
To do this, run these commands before create the PR:
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
pnpm lint
@@ -229,52 +266,32 @@ pnpm build
pnpm test
```
> note: eslint and formatting are running separately, keep code formatting before push.
> note: eslint and formatting are run separately, keep code formatting
> before push.
All good? perfect, then you should create the pull request.
All good? Perfect! You should create the pull request.
#### Commit Guidelines
#### 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.:
```
feat: xxxxxxxxxx
```
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
e.g.:
```
fix: xxxxxxxxxxx
```
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.**
All commits message are going to be validated when they are created using husky hooks.
> Please, try to provide one single commit to help a clean and easy merge process.
### Adding a changeset
We use [changesets](https://github.com/atlassian/changesets) in order to generate a detailed Changelog as possible.
Add a changeset with your Pull Request is essential if you want your contribution get merged (unless is a change that does not affect library functionality, eg: typo, docs, readme, add additional test or linting code). To create a changeset please run:
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:
```
pnpm changeset
```
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.
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.
```
🦋 Which packages would you like to include? …
@@ -287,7 +304,9 @@ Then select the packages you want to include in your changeset navigating throug
✔ @verdaccio/commons-api
```
The next question would be if you want a _major bump_, this is not the usual scenario, most likely would be a patch, in that case press enter 2 times (to skip minor)
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)
```
🦋 Which packages should have a major bump? …
@@ -295,7 +314,8 @@ The next question would be if you want a _major bump_, this is not the usual sce
✔ @verdaccio/config@5.0.0-alpha.0
```
Once the desired bump you need, the CLI will ask for a summary, here you have fully freedom what to include.
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
@@ -307,7 +327,7 @@ Once the desired bump you need, the CLI will ask for a summary, here you have fu
🦋 Summary ›
```
The last step is confirm your changeset or abort the operation.
The last step is to confirm your changeset or abort the operation:
```
🦋 Is this your desired changeset? (Y/n) · true
@@ -317,9 +337,13 @@ The last step is confirm your changeset or abort the operation.
🦋 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 what you consider is relevant.
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 is considered a good option to add your nickname and GitHub link to your profile.
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.**
@@ -327,12 +351,31 @@ All that information will be part of the **changelog**, be concise but informati
**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.
@@ -340,6 +383,8 @@ 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)
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 use it.
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://github.com/sponsors/verdaccio)** 💵👍🏻 starting from _$1/month_ or just one single contribution.
@@ -65,17 +114,31 @@ 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).
You might want to check out as well our previous talks:
- [**OpenJS World 2020** about \*Cover your Projects with a Multi purpose Lightweight Node.js Registry - **Juan Picado\***](https://www.youtube.com/watch?v=oVCjDWeehAQ)
- [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)
@@ -92,7 +155,7 @@ 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:
> if you use HTTPS, add an appropriate CA information ("null" means get CA list from OS)
```bash
$ npm set ca null
npm set ca null
```
#### 2. publish your package
@@ -146,7 +209,7 @@ To run the docker container:
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
Docker examples are available [in this repository](https://github.com/verdaccio/docker-examples).
Docker examples are available [in this repository](https://github.com/verdaccio/verdaccio/tree/master/docker-examples).
## Compatibility
@@ -184,7 +247,20 @@ 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
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 |
| 4.x | :white_check_mark: (until 1st July 2021) |
| 5.x | :white_check_mark: |
| 6.x alpha | :x: |
| Version | Supported |
| --------- | ------------------ |
| 2.x | :x: |
| 3.x | :x: |
| 4.x | :x: |
| 5.x | :white_check_mark: |
| 6.x alpha | :x: |
## Responsible disclosure security policy
@@ -28,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.
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.