* 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
refactor: download manifest endpoint and integrate fastify
Much simpler API for fetching a package
```
const manifest = await storage.getPackageNext({
name,
uplinksLook: true,
req,
version: queryVersion,
requestOptions,
});
```
> not perfect, the `req` still is being passed to the proxy (this has to be refactored at proxy package) and then removed from here, in proxy we pass the request instance to the `request` library.
### Details
-`async/await` sugar for getPackage()
- Improve and reuse code between current implementation and new fastify endpoint (add scaffolding for request manifest)
- Improve performance
- Add new tests
### Breaking changes
All storage plugins will stop to work since the storage uses `getPackageNext` method which is Promise based, I won't replace this now because will force me to update all plugins, I'll follow up in another PR. Currently will throw http 500
- remove usage of `async` dependency https://github.com/verdaccio/verdaccio/issues/1225
- refactor method storage class
- create new module `core` to reduce the ammount of modules with utilities
- use `undici` instead `node-fetch`
- use `fastify` instead `express` for functional test
### Breaking changes
- plugin storage API changes
- remove old search endpoint (return 404)
- filter local private packages at plugin level
The storage api changes for methods `get`, `add`, `remove` as promise base. The `search` methods also changes and recieves a `query` object that contains all query params from the client.
feat: rework web header for mobile, add new settings and raw manifest button
### New set of variables to hide features
Add set of new variables that allow hide different parts of the UI, buttons, footer or download tarballs. _All are
enabled by default_.
```yaml
# login: true <-- already exist but worth the reminder
# showInfo: true
# showSettings: true
# In combination with darkMode you can force specific theme
# showThemeSwitch: true
# showFooter: true
# showSearch: true
# showDownloadTarball: true
```
> If you disable `showThemeSwitch` and force `darkMode: true` the local storage settings would be
> ignored and force all themes to the one in the configuration file.
Future could be extended to
### Raw button to display manifest package
A new experimental feature (enabled by default), button named RAW to be able navigate on the package manifest directly on the ui, kudos to [react-json-view](https://www.npmjs.com/package/react-json-view) that allows an easy integration, not configurable yet until get more feedback.
```yaml
showRaw:true
```
#### Rework header buttons
- The header has been rework, the mobile was not looking broken.
- Removed info button in the header and moved to a dialog
- Info dialog now contains more information about the project, license and the aid content for Ukrania now is inside of the info modal.
- Separate settings and info to avoid collapse too much info (for mobile still need some work)
Refactor htpasswd plugin to use the bcryptjs 'compare' api call instead of 'comparSync'. Add a new configuration value named 'slow_verify_ms' to the htpasswd plugin that when exceeded during password verification will log a warning message.
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!
- [Submitting a Pull Request](#submitting-a-pull-request)
@@ -32,34 +33,47 @@ have prepared these guidelines for you:
## How Do I Contribute?
There are different ways to contribute, each comes with a different levels
of tasks, such as:
There are many ways to contribute:
- Report a bug.
- Request a feature you think would be great for verdaccio.
- Fix bugs.
- Test and triage reported bugs by others.
- Work on requested/approved features.
- Improve the codebase (lint, naming, comments, test descriptions, etc...)
- Report a bug
- Request a feature you think would be great for Verdaccio
- Fix bugs
- Test and triage bugs reported by others
- Work on requested/approved features
- Improve the codebase (linting, naming, comments, test descriptions, etc...)
Verdaccio has several areas of involvement, which might fit you better, eg:
The Verdaccio project is split into several areas:
- **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, translation which are
> not hosted on this repo but check the last section of this notes for further
> information.
## Development 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
```
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
```
First step is installing all dependencies:
With pnpm installed, the first step is installing all dependencies:
```
pnpm install
@@ -79,62 +93,81 @@ 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.
#### Debugging compiled code
Currently you can only run pre-compiled packages in debug mode. To enable debug
while running add the `verdaccio` namespace using the `DEBUG` environment
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
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.**
## Translations
All translations are provided by the `crowdin` platform:
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.
## Request Features
New feature requests are welcome. Analyse whether the idea fits within scope of
the project. Then, detail your request, ensuring context and usecase is provided.
the project. Adding in context and the use-case will really help!
**Please provide:**
- 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).
- 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 🤓
- Whatever else is on your mind! 🤓
## 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:
It's very exciting to become 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_.
> Any contribution gives you the right to be part of this organization as
> _collaborator_.
### Submitting a Pull Request
@@ -213,14 +271,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 committing, **you must ensure there are no linting errors and
all tests pass.**
To do this, run these commands before create the PR:
all tests pass.** To do this, run these commands before create the PR:
```bash
pnpm lint
@@ -229,9 +287,10 @@ 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
@@ -240,8 +299,8 @@ For example:
-`feat: A new feature`
-`fix: A bug fix`
A commit of the type feat introduces a new feature to the codebase
(this correlates with MINOR in semantic versioning).
A commit of the type feat introduces a new feature to the codebase (this
correlates with MINOR in semantic versioning).
e.g.:
@@ -249,7 +308,8 @@ e.g.:
feat: xxxxxxxxxx
```
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
A commit of the type fix patches a bug in your codebase (this correlates with
PATCH in semantic versioning).
e.g.:
@@ -257,24 +317,31 @@ 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.**
Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:` and
`chore:` are valid but have no effect on versioning:**please use them!**
All commits message are going to be validated when they are created using husky hooks.
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.
> 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.
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. 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 +354,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 +364,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 +377,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 +387,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,7 +401,8 @@ 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
Please check [docs/development.md](docs/development.md) for further notes.
## Roadmap
Please check [the roadmap](https://github.com/verdaccio/verdaccio/discussions/1690) if you are willing to contribute.
```bash
docker pull verdaccio/verdaccio:nightly-master
```
## 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?
### Use private packages
If you want to use all benefits of npm package system in your company without sending all code to the public, and use your private packages just as easy as public ones.
### 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)_.
### 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).
### 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.
## Watch our Videos
**Node Congress 2022, February 2022, Online Free**
You might want to check out as well our previous talks:
- [**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
Run in your terminal
```bash
verdaccio
```
You would need set some npm configuration, this is optional.
```bash
npm set registry http://localhost:4873/
```
For one-off commands or to avoid setting the registry globally:
```bash
NPM_CONFIG_REGISTRY=http://localhost:4873 npm i
```
Now you can navigate to [http://localhost:4873/](http://localhost:4873/) where your local packages will be listed and can be searched.
> Warning: Verdaccio [does not currently support PM2's cluster mode](https://github.com/verdaccio/verdaccio/issues/1301#issuecomment-489302298), running it with cluster mode may cause unknown behavior.
## Publishing
#### 1. create a user and log in
```bash
npm adduser --registry http://localhost:4873
```
> if you use HTTPS, add an appropriate CA information ("null" means get CA list from OS)
```bash
npm set ca null
```
#### 2. publish your package
```bash
npm publish --registry http://localhost:4873
```
This will prompt you for user credentials which will be saved on the `verdaccio` server.
## Docker
Below are the most commonly needed information,
every aspect of Docker and verdaccio is [documented separately](https://www.verdaccio.org/docs/en/docker.html)
```
docker pull verdaccio/verdaccio:nightly-master
```
Available as [tags](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
### Running verdaccio using Docker
To run the docker container:
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
Docker examples are available [in this repository](https://github.com/verdaccio/docker-examples).
## Compatibility
Verdaccio aims to support all features of a standard npm client that make sense to support in private repository. Unfortunately, it isn't always possible.
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).
## 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 |
- [Amazon Encryption SDK for Javascript](https://github.com/aws/aws-encryption-sdk-javascript)
🤓 Don't be shy, you also can be in [the list](https://github.com/verdaccio/website/blob/master/docs/who-is-using.md).
## Open Collective Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)]
@@ -68,14 +273,6 @@ Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
@@ -87,17 +284,17 @@ 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
@@ -30,7 +32,7 @@ If you discover a security vulnerability, please use one of the following means
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.