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
- 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.
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:365
# Number of days of inactivity before a stale issue is closed
daysUntilClose:500
# Issues with these labels will never be considered stale
exemptLabels:
- dev:high priority
- topic:feature request
- issue:need verification
- issue:bug
- dev:discuss
# Label to use when marking an issue as stale
staleLabel: 'issue:wontfix'
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment:>
Hi pal 👋🏼!
This issue has gone quiet 😶.
We get a lot of issues, so we currently close issues after 180 days of inactivity. It’s been at least 90c days since the last update here.
If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the Verdaccio community! 💘
# Comment to post when closing a stale issue. Set to `false` to disable
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at verdaccio.npm@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
- [Submitting a Pull Request](#submitting-a-pull-request)
- [Make Changes and Commit](#make-changes-and-commit)
- [Caveats](#caveats)
- [Before Commit](#before-commit)
- [Commit Guidelines](#commit-guidelines)
- [Adding a changeset](#adding-a-changeset)
- [Update Tests](#update-tests)
- [Develop Plugins](#develop-plugins)
## How Do I Contribute?
There are many ways to contribute:
- 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...)
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 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.
## Development Setup
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
```
With pnpm installed, the first step is installing all dependencies:
```
pnpm install
```
### Building the project
To build the project run
```
pnpm build
```
### Running test
```
pnpm test
```
Verdaccio is a mono repository. To run the tests for for a specific package:
```
cd packages/store
pnpm test
```
or an specific test in that package:
```
pnpm test test/merge.dist.tags.spec.ts
```
or a single test unit:
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple'
```
Coverage reporting is enabled by default, but you can turn it off to speed up
test runs:
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple' --coverage=false
```
You can enable increased [`debug`](https://www.npmjs.com/package/debug) output:
```
DEBUG=verdaccio:* pnpm test
```
More details in the debug section
### Running and debugging
> Check the debugging guidelines [here](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio)
We use [`debug`](https://www.npmjs.com/package/debug) to add helpful debugging
output to the code. Each package has it owns namespace.
#### Useful Scripts
To run the application from the source code, ensure the project has been built with `pnpm build`, once this is done, there are few commands that helps to run server:
-`pnpm start`: Run the server and the UI with `concurrently`, the
server runs in the port `8000` and the UI on the port `4873`. This command
is useful if you want to contribute mostly on the UI.
-`pnpm debug`: Run the server in debug mode `--inspect`, the UI is included but does not have 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
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. 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).
- A potential implementation or design
- Whatever else is on your mind! 🤓
## Contributing 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_.
### Submitting a 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.
1. Fork the repository on GitHub
2. Clone the forked repository to your machine
3. Make your changes and commit them to your local repository
4. Rebase and push your commits to your GitHub remote fork/repository
5. Issue a Pull Request to the official repository
6. Your Pull Request is reviewed by a committer and merged into the repository
**NOTE**: While there are other ways to accomplish the steps using other tools,
the examples here will assume most actions will be performed via `git` on
command line.
For more information on maintaining a fork, please see the GitHub Help article
titled [Fork a Repo](https://help.github.com/articles/fork-a-repo/), and
information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
### Make Changes and Commit
#### 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, 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:
```bash
pnpm lint
pnpm format
pnpm build
pnpm test
```
> note: eslint and formatting are run separately, keep code formatting
> before push.
All good? Perfect! You should create the pull request.
#### Commit Guidelines
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).
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: **please 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.
Adding a changeset with your Pull Request is essential if you want your
contribution to 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:
```
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.
```
🦋 Which packages would you like to include? …
✔ changed packages
changed packages
✔ @verdaccio/api
✔ @verdaccio/auth
✔ @verdaccio/cli
✔ @verdaccio/config
✔ @verdaccio/commons-api
```
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? …
✔ all packages
✔ @verdaccio/config@5.0.0-alpha.0
```
Once you have the desired bump you need, the CLI will ask for a summary. Here
you have full freedom on what to include:
```
🦋 Which packages would you like to include? · @verdaccio/config
🦋 Which packages should have a major bump? · No items were selected
🦋 Which packages should have a minor bump? · No items were selected
🦋 The following packages will be patch bumped:
🦋 @verdaccio/config@5.0.0-alpha.0
🦋 Please enter a summary for this change (this will be in the changelogs). Submit empty line to open external editor
🦋 Summary ›
```
The last step is to confirm your changeset or abort the operation:
```
🦋 Is this your desired changeset? (Y/n) · true
🦋 Changeset added! - you can now commit it
🦋
🦋 If you want to modify or expand on the changeset summary, you can find it here
🦋 info /Users/user/verdaccio.clone/.changeset/light-scissors-smell.md
```
Once the changeset is added (all will have an unique name) you can freely edit
using markdown, adding additional information, code snippets or whatever else
you consider to be relevant.
All that information will be part of the **changelog**. Be concise but
informative! It's recommended to add your nickname and GitHub link to your
profile.
**PRs that do not follow the commit message guidelines will not be merged.**
### Update Tests
**Any change in source code must include test updates**.
If you need help with how testing works, please [refer to the following guide
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider making a donation - **your logo might end up in this readme.** 😉
**[Donate](https://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.
## Talks
### **Testing the integrity of your React components by publishing in a private registry - React Finland 2021**.
- [**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)]
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 | :x: |
| 5.x | :white_check_mark: |
| 6.x alpha | :x: |
## Responsible disclosure security policy
A responsible disclosure policy helps protect users of the project from publicly disclosed security vulnerabilities without a fix by employing a process where vulnerabilities are first triaged in a private manner, and only publicly disclosed after a reasonable time period that allows patching the vulnerability and provides an upgrade path for users.
When contacting us directly via email, we will do our best efforts to respond in a reasonable time to resolve the issue. When contacting a security program their disclosure policy will provide details on timeframe, processes and paid bounties.
We kindly ask you to refrain from malicious acts that put our users, the project, or any of the project’s team members at risk.
## Reporting a security issue
> Please do not use the provided email address to report issues which are not related to security vulnerabilities
At Verdaccio, we consider the security of our systems a top priority. But no matter how much effort we put into system security, there can still be vulnerabilities present.
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.
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://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.
## PGP key
The following is this project’s PGP key which should be used to encrypt any sensitive information shared on unsecured medium such as e-mails:
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.