Compare commits

..

70 Commits

Author SHA1 Message Date
Juan Picado
5b50143544 Update VERSIONS.md 2025-05-03 09:54:54 +02:00
Juan Picado
d9dfcaa404 Create MIGRATE.md 2025-05-03 09:44:18 +02:00
Marc Bernard
4236e54e2a chore(ui): avoid ts error for Alerts (#5209) 2025-05-03 09:03:17 +02:00
Marc Bernard
89b72d0761 fix(ui): search chips when showUplinks: false (#5211)
* fix(ui): search chips in offline mode

* Update nine-onions-talk.md

* Update nine-onions-talk.md
2025-05-03 08:43:01 +02:00
Assis Duarte
30d2949471 fix: link to API page (#5215)
* fix: remove a link to a page that no longer exists

* update doc page
2025-05-03 07:57:14 +02:00
renovate[bot]
e5a53628b6 chore(deps): update dependency @changesets/get-dependents-graph to v2.1.3 (#5222)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-03 07:45:17 +02:00
renovate[bot]
8f8297ebd9 chore(deps): update dependency msw to v2.7.5 (#5223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-03 07:17:33 +02:00
dependabot[bot]
2dc16f3308 chore(deps): bump github/codeql-action from 3.28.10 to 3.28.16 (#5221)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.10 to 3.28.16.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b56ba49b26...28deaeda66)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-02 22:23:19 +02:00
renovate[bot]
68b814e786 chore(deps): update all actions (#5218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 21:39:37 +02:00
dependabot[bot]
45e6d08647 chore(deps): bump actions/setup-node from 4.2.0 to 4.4.0 (#5220)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.2.0 to 4.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](1d0ff469b7...49933ea528)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-02 21:39:10 +02:00
verdacciobot
2bd520ef07 chore: updated static data 2025-05-01 00:17:52 +00:00
Marc Bernard
6561485453 chore(ui): fix ts error due to excluded test folder (#5207) 2025-04-28 20:52:09 +02:00
Marc Bernard
04c4e5b14f chore(ui-theme): minor app improvements (#5206)
* chore(ui): theme parameters

* Update app, add types/history

* Update great-candles-hang.md
2025-04-28 20:34:46 +02:00
verdacciobot
3a3bbe34ab chore: updated static data 2025-04-28 00:16:20 +00:00
Juan Picado
219abed928 chore: website enable ga-IE
after clean up messed up markdown files
2025-04-27 15:56:37 +02:00
verdacciobot
7d7cffb3a7 chore: updated static data 2025-04-24 00:15:15 +00:00
Juan Picado
e5100e0844 chore: update link install v6 2025-04-21 21:02:19 +02:00
John Chilton
46eeee5f70 update dangerous website link (#5205)
An attribution to thedevlife for their video tutorial about Verdaccio on the docs/installation page pointed to a converted domain nowoffering malware. The commit changes the link destination to the bio link thedevlife uses in their YouTube profile.
2025-04-21 20:49:41 +02:00
verdacciobot
9dfe5d5aaf chore: updated static data 2025-04-21 00:16:07 +00:00
Marc Bernard
50fef56371 update bug report template (#5203)
* Update bug report template

* Add reverse proxy
2025-04-17 07:37:27 +02:00
verdacciobot
c988566d70 chore: updated static data 2025-04-17 00:14:49 +00:00
Marc Bernard
76308ff456 fix(express): error loading middleware plugins (#5200)
* fix(express): error loading middleware plugins

* const for plugin prefix in loader
2025-04-15 19:39:52 +02:00
verdacciobot
481ea6ef3d chore: updated static data 2025-04-14 00:16:09 +00:00
omasakun
fdf44a66c9 fix(middleware): properly derive the html cache key (#5196)
* fix(middleware): properly derive the html cache key

* change html cache key

* add a changeset

* simplify cache key generation by removing MD5 hashing
2025-04-12 14:47:43 +02:00
Marc Bernard
4115860d6e fix(server): web-enabled test (#5197) 2025-04-10 11:49:10 +02:00
verdacciobot
a9a77a5012 chore: updated static data 2025-04-10 00:15:16 +00:00
verdacciobot
8ea4b04740 chore: updated static data 2025-04-07 00:14:58 +00:00
renovate[bot]
8c18c8963c chore(deps): update dependency @changesets/changelog-github to v0.5.1 (#5191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-06 14:59:11 +02:00
renovate[bot]
6f410af147 chore(deps): update all build dependencies (#5190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-06 12:00:51 +02:00
Marc Bernard
5f036c0b57 fix(api): cidr whitelist for tokens (#5186)
* fix(api): cidr whitelist for tokens

* remove debug
2025-04-05 08:28:31 +02:00
Juan Picado
ebc6171829 Update README.md 2025-04-01 08:45:24 +02:00
Juan Picado
651f60a8af chore: update versions (next-8) (#5178)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 23:20:31 +02:00
Juan Picado
1f25d5f5e8 feat: add legacyMergeConfigs as option (#5177) 2025-03-31 22:19:53 +02:00
Juan Picado
bf566cb6f5 chore: add docker example for verdaccio-github-oauth-ui (#5176) 2025-03-31 21:44:57 +02:00
verdacciobot
0518506efe chore: updated static data 2025-03-31 00:15:59 +00:00
Juan Picado
3d642d7325 chore: fix website build 2025-03-30 22:23:02 +02:00
verdacciobot
c69ec207d2 chore: updated static data 2025-03-30 19:53:53 +00:00
Juan Picado
588614d6a7 chore: update docker example 2025-03-30 21:30:12 +02:00
Juan Picado
78614b79f6 chore: add locakstack example s3 aws plugin (#5174)
* chore: add locakstack example s3 aws plugin

* Update README.md
2025-03-30 21:25:25 +02:00
Juan Picado
6a0e3553c7 chore: update versions (next-8) (#5157)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 15:37:40 +01:00
Juan Picado
8f28186645 fix: add legacyMergeConfigs legacy plugins (#5170)
* fix: add legacyMergeConfigs legacy plugins

* Update server.ts

* Update plugin-async-loader.ts

* Create yellow-flies-sniff.md

* add tests

* Update packages/loaders/src/plugin-async-loader.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-29 15:24:27 +01:00
Marc Bernard
da1650c421 fix(middleware): scoped package for allow checks (#5165) 2025-03-29 13:23:24 +01:00
Juan Picado
bb478f2ab8 chore: expose config utils (#5168) 2025-03-29 09:58:21 +01:00
Marc Bernard
b9fea389b6 chore: cleanup utils (#5162) 2025-03-28 21:32:32 +01:00
Marc Bernard
1e2f5037d5 chore(api): avoid double registration of JSON bodyParser (#5164) 2025-03-28 21:09:46 +01:00
Marc Bernard
2bcd3ca5b6 chore(config): harmonize configuration options (#5166)
* chore(config): harmonize configuration options

* move prefix back
2025-03-28 20:43:09 +01:00
verdacciobot
00c6afe869 chore: updated static data 2025-03-27 00:15:02 +00:00
Marc Bernard
209a650898 chore: fix ui-component npmignore and readme (#5158) 2025-03-26 06:55:28 +01:00
Marc Bernard
d4fc8275aa fix(e2e): name for npm10 test (#5156) 2025-03-24 20:12:26 +01:00
verdacciobot
817ec3d0e8 chore: updated static data 2025-03-24 00:15:39 +00:00
Juan Picado
41aa893b1a chore: update versions (next-8) (#5138)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-23 14:42:29 +01:00
Marc Bernard
2eb8cc24e8 fix: handling for uplink timeouts (#5153)
* chore(storage): service unavailable message

* fix: handling for uplink timeouts

* remove extra changeset
2025-03-23 12:47:02 +01:00
Marc Bernard
b3fa5df7bb fix(proxy): uplink processing order (#5131)
* fix: uplink processing order

* Replace upname with uplinkName

* fix proxy uplinkname
2025-03-23 12:36:27 +01:00
Juan Picado
d633685d9e Update README.md 2025-03-23 12:35:40 +01:00
Juan Picado
a0968ba1f7 clean up readme 2025-03-23 12:34:55 +01:00
Marc Bernard
30fec6fd3c chore: remove obsolete test data from local-storage (#5151) 2025-03-22 12:43:39 +01:00
Marc Bernard
50f20aa004 chore: debug messages in loader (#5152) 2025-03-22 07:24:57 +01:00
Marc Bernard
dbe6a76eab fix(i18n): avoid fallback for en-us (#5150) 2025-03-21 17:49:31 +01:00
verdacciobot
96bd6109ac chore: updated static data 2025-03-20 00:14:22 +00:00
Marc Bernard
c1faf6d473 chore(ui): reduce build size (#5142)
* chore(ui): reduce build size

* move types from /build/src to /build
2025-03-17 20:20:15 +01:00
Marc Bernard
0607e802ba chore: update readme badges and license files (#5145)
* chore: update readme badges and license files

* stargazers
2025-03-17 19:53:25 +01:00
Marc Bernard
493366301f fix(ui): format date distance test (#5146) 2025-03-17 19:47:58 +01:00
Marc Bernard
3763df19b4 fix(ui): start storybook on windows (#5141) 2025-03-17 19:41:33 +01:00
Marc Bernard
648aaf93bb fix: memory plugin limit error message (#5147) 2025-03-17 19:36:45 +01:00
Marc Bernard
99f6e118e2 chore(ui): flags import and minor updates (#5149) 2025-03-17 19:22:51 +01:00
Marc Bernard
e67336cef2 chore: add npmignore (#5148) 2025-03-17 17:06:39 +01:00
Marc Bernard
c81bd75616 chore(ui): update react-json-view (#5144)
* chore(ui): update react-json-view

* update lockfile
2025-03-17 08:02:26 +01:00
verdacciobot
1a8f8b020c chore: updated static data 2025-03-17 00:15:28 +00:00
Juan Picado
5130a67f90 Update x-e2e-jest-workflow.yml 2025-03-16 14:25:01 +01:00
Juan Picado
44b3a45813 Update x-e2e-jest-workflow.yml 2025-03-16 14:21:40 +01:00
390 changed files with 13991 additions and 5409 deletions

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/server': patch
---
fix(server): web-enabled test

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
chore(ui): avoid ts error for Alerts

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/api': patch
---
chore(api): avoid double registration of JSON bodyParser

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
fix(ui): start storybook on windows

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
---
chore(ui): update react-json-view

View File

@@ -0,0 +1,13 @@
---
'@verdaccio/local-storage': patch
'@verdaccio/server-fastify': patch
'@verdaccio/middleware': patch
'@verdaccio/core': patch
'@verdaccio/config': patch
'@verdaccio/store': patch
'@verdaccio/utils': patch
'@verdaccio/api': patch
'@verdaccio/web': patch
---
chore: cleanup utils

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/config': patch
---
chore: expose config utils

View File

@@ -1,7 +0,0 @@
---
'verdaccio-auth-memory': minor
'@verdaccio/core': minor
'@verdaccio/auth': minor
---
fix: auth callback types

View File

@@ -0,0 +1,9 @@
---
'@verdaccio/config': patch
'@verdaccio/search': patch
'@verdaccio/proxy': patch
'@verdaccio/store': patch
'@verdaccio/utils': patch
---
fix: uplink processing order

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-theme': patch
---
chore(ui): minor app improvements

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/e2e-cli-npm10': patch
---
fix(e2e): name for npm10 test

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/auth': patch
---
feat: add legacyMergeConfigs as option

View File

@@ -0,0 +1,8 @@
---
'@verdaccio/server': patch
'@verdaccio/types': patch
'@verdaccio/middleware': patch
'@verdaccio/ui-components': patch
---
chore(config): harmonize configuration options

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
---
chore(ui): flags import and minor updates

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
fix(ui): search chips when showUplinks is false

View File

@@ -0,0 +1,7 @@
---
'@verdaccio/core': patch
'@verdaccio/proxy': patch
'@verdaccio/store': patch
---
fix: handling for uplink timeouts

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/middleware': patch
---
fix(middleware): scoped package for allow checks

View File

@@ -0,0 +1,5 @@
---
'verdaccio-memory': patch
---
fix: memory plugin limit error message

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/server': patch
'@verdaccio/loaders': patch
---
fix(express): error loading middleware plugins

View File

@@ -60,7 +60,8 @@
"@verdaccio/e2e-cli-pnpm-common": "1.0.2-next-8.0",
"@verdaccio/e2e-cli-pnpm10": "1.0.0",
"docusaurus-plugin-downloads": "2.0.0",
"@verdaccio/local-publish": "0.0.2"
"@verdaccio/local-publish": "0.0.2",
"@verdaccio/e2e-cli-npm10": "1.0.1"
},
"changesets": [
"angry-doors-tan",
@@ -68,6 +69,7 @@
"blue-paws-cheer",
"breezy-geckos-search",
"bright-bobcats-ring",
"brown-lions-talk",
"brown-planets-approve",
"calm-mangos-compare",
"chatty-apricots-report",
@@ -78,34 +80,52 @@
"curvy-rockets-camp",
"cyan-snakes-kiss",
"early-eyes-float",
"early-trainers-grin",
"eight-countries-think",
"eighty-apes-think",
"eleven-rocks-dream",
"few-ears-deny",
"fifty-falcons-design",
"forty-hounds-matter",
"fresh-owls-hunt",
"funny-fireants-tan",
"gentle-stingrays-repeat",
"gold-files-speak",
"gold-squids-watch",
"green-eagles-boil",
"healthy-ducks-drive",
"healthy-zoos-lie",
"hip-eggs-serve",
"hip-suns-jam",
"hot-crews-live",
"itchy-glasses-end",
"large-turkeys-change",
"long-eyes-drum",
"long-singers-drive",
"lucky-crabs-enjoy",
"nasty-experts-bow",
"nice-garlics-tie",
"nine-countries-remember",
"ninety-geese-do",
"ninety-hotels-dance",
"odd-fishes-cry",
"old-clocks-destroy",
"pink-jeans-lick",
"popular-trees-grin",
"proud-houses-switch",
"purple-planes-do",
"quick-avocados-type",
"quick-seas-deny",
"real-seahorses-change",
"red-dolls-repair",
"rotten-melons-notice",
"rotton-readers-shave",
"rude-birds-design",
"rude-socks-walk",
"serious-apes-rule",
"shiny-buttons-laugh",
"short-mails-smoke",
"short-turkeys-boil",
"silent-bags-listen",
"silent-tips-admire",
"silver-houses-remain",
@@ -114,13 +134,17 @@
"strange-pants-chew",
"stupid-camels-build",
"sweet-crabs-deliver",
"ten-jeans-approve",
"tender-buckets-smoke",
"thirty-comics-trade",
"tricky-impalas-shake",
"tricky-knives-end",
"twelve-games-wonder",
"violet-baboons-beg",
"violet-bobcats-allow",
"violet-boxes-float",
"weak-cherries-serve",
"wet-cats-behave"
"wet-cats-behave",
"yellow-flies-sniff"
]
}

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
fix(ui): format date distance test

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/loaders': patch
---
chore: debug messages in loader

View File

@@ -0,0 +1,41 @@
---
'generator-verdaccio-plugin': patch
'@verdaccio/logger-prettify': patch
'@verdaccio/logger-commons': patch
'@verdaccio/local-storage': patch
'verdaccio-auth-memory': patch
'@verdaccio/local-publish': patch
'@verdaccio/local-scripts': patch
'@verdaccio/file-locking': patch
'verdaccio-htpasswd': patch
'@verdaccio/ui-theme': patch
'verdaccio-memory': patch
'@verdaccio/search-indexer': patch
'@verdaccio/server': patch
'@verdaccio/server-fastify': patch
'@verdaccio/logger': patch
'verdaccio-audit': patch
'@verdaccio/test-helper': patch
'@verdaccio/ui-components': patch
'@verdaccio/tarball': patch
'@verdaccio/eslint-config': patch
'@verdaccio/types': patch
'@verdaccio/middleware': patch
'@verdaccio/cli-standalone': patch
'@verdaccio/core': patch
'verdaccio': patch
'@verdaccio/url': patch
'@verdaccio/node-api': patch
'@verdaccio/loaders': patch
'@verdaccio/config': patch
'@verdaccio/hooks': patch
'@verdaccio/proxy': patch
'@verdaccio/store': patch
'@verdaccio/utils': patch
'@verdaccio/auth': patch
'@verdaccio/api': patch
'@verdaccio/cli': patch
'@verdaccio/website': patch
---
chore: update readme badges and license files

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
chore(ui): reduce build size

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
chore(ui): fix ts error due to excluded test folder

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/api': patch
---
fix(api): cidr whitelist for tokens

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/local-storage': patch
---
chore: remove obsolete test data from local-storage

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
chore: fix ui-component npmignore and readme

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/middleware': patch
---
fix(middleware): properly derive the html cache key

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-i18n': patch
---
fix(i18n): avoid fallback for en-us

View File

@@ -0,0 +1,10 @@
---
'@verdaccio/search-indexer': patch
'@verdaccio/server': patch
'@verdaccio/loaders': patch
'@verdaccio/store': patch
'@verdaccio/auth': patch
'@verdaccio/web': patch
---
fix: add legacyMergeConfigs legacy plugins

View File

@@ -17,24 +17,27 @@ assignees: ''
- If you are willing to fix it, there is a checkbox at the bottom.
-->
**Your Environment**
<!-- bug below the version 5.x will be closed, see SECURITY.md for more details -->
* **verdaccio version**: 5.x.x
* **node version** [12.x.x, 14.x.x]:
* **package manager**: [npm@7, pnpm@6, yarn@2]
* **os**: [mac, windows@10, linux]
* **platform**: [npm, docker, helm, other]
**Your environment**
<!-- bugs below the version 6.x will be closed, see SECURITY.md and VERSIONS.md for more details -->
<!-- Please paste the results of running `verdaccio --version` -->
* **verdaccio version**: 6.x.x
<!-- Please paste the results of running `verdaccio --info` -->
* **node version** [20.x.x, 22.x.x]:
* **package manager**: [npm@10.x.x, pnpm@10.x.x, yarn@2.x.x]
* **os**: [mac, windows@11, linux]
* **platform**: [node, docker, helm, other]
* **reverse proxy**: [yes, no]
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**To Reproduce**
**Steps to reproduce**
<!-- IMPORTANT:
- How to reproduce the issue
- Steps to reproduce the issue
Add step-by-step instructions on how to reproduce the bug.
Be aware, the lack of reproducible steps the issue might cause your ticket to be closed.
-->
@@ -42,17 +45,14 @@ Be aware, the lack of reproducible steps the issue might cause your ticket to be
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots, server logs, package manager log**
**Screenshots, Verdaccio server log, package manager log**
<!-- If applicable, add screenshots to help explain your problem. -->
<!-- If applicable, add screenshots to help explain your problem. -->
**Configuration File (cat ~/.config/verdaccio/config.yaml)**
**Configuration file**
<!-- Please be careful do not leak any sensitive information, remove tokens -->
**Environment information**
<!-- Please paste the results of running `verdaccio --info` -->
<!-- cat ~/.config/verdaccio/config.yaml -->
<!-- Please be careful do not leak any sensitive information, remove usernames and tokens -->
**Debugging output**
@@ -66,6 +66,5 @@ Be aware, the lack of reproducible steps the issue might cause your ticket to be
- [ ] I'm willing to fix this bug 🥇
<!--
IMPORTANT: please do not attach external files, all content should be visible from any device.
-->

View File

@@ -6,7 +6,7 @@ runs:
steps:
- name: Cache Packages
id: cache-packages
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}

View File

@@ -6,7 +6,7 @@ runs:
steps:
- name: Cache .pnpm-store
id: cache-npm
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.event.pull_request.number }}-${{ runner.os }}

View File

@@ -22,7 +22,7 @@ runs:
using: composite
steps:
- name: Use Node
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ inputs.node-version }}
- name: Install pnpm

View File

@@ -15,7 +15,7 @@ runs:
using: composite
steps:
- name: Use Node
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install pnpm

View File

@@ -68,9 +68,7 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest]
## updated according official maintained releases
## https://nodejs.org/en/about/previous-releases
node_version: [18, 20, 22, 23]
node_version: [18, 20, 21, 22, 23]
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
@@ -88,7 +86,7 @@ jobs:
if: (github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio') || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -96,7 +94,7 @@ jobs:
npm install --global corepack@latest
corepack enable
corepack install
- uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}

View File

@@ -37,7 +37,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/init@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
with:
config: |
paths-ignore:
@@ -50,7 +50,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/autobuild@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -64,4 +64,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/analyze@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16

View File

@@ -26,7 +26,7 @@ jobs:
run: docker compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: npm setup

View File

@@ -24,7 +24,7 @@ jobs:
run: docker compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: npm setup

View File

@@ -26,7 +26,7 @@ jobs:
node-version: 20
- name: Test UI
run: pnpm test:e2e:ui
- uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: videos
path: /home/runner/work/verdaccio/verdaccio/e2e/ui/cypress/videos

View File

@@ -39,7 +39,7 @@ jobs:
- name: Build Translations percentage
run: pnpm --filter @verdaccio/local-scripts build
- name: Cache Docusaurus Build
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: website/node_modules/.cache/webpack
key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }}

View File

@@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm'
@@ -47,7 +47,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm 9'
@@ -83,7 +83,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm 10'

View File

@@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm 10'

View File

@@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install npm 9'
@@ -45,7 +45,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install npm 10'

View File

@@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install Dependencies
@@ -41,7 +41,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install Dependencies
@@ -75,7 +75,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm'
@@ -108,7 +108,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm 9'
@@ -141,7 +141,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: 'install latest npm 10'
@@ -166,69 +166,4 @@ jobs:
yarn add left-pad --registry http://localhost:4873 --verbose
echo "const leftPad = require('left-pad'); it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js
yarn jest module.test.js
pnpm8:
name: 'pnpm8:jest example'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
with:
node-version-file: '.nvmrc'
- name: 'install latest pnpm'
run: npm i -g pnpm@10.5.2
- name: Install Dependencies
run: yarn install
- name: 'Run verdaccio in the background'
run: |
nohup yarn node ./scripts/run-verdaccio.js &
- name: 'Ping to verdaccio'
run: |
pnpm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
pnpm init
pnpm install jest@29.5.0 --registry http://localhost:4873 --loglevel info
echo "it('should pass', () => { expect(true).toBeTruthy(); });" | tee pass.test.js
yarn jest pass.test.js
yarn add left-pad --registry http://localhost:4873 --verbose
echo "const leftPad = require('left-pad'); it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js
yarn jest module.test.js
pnpm9:
name: 'pnpm:9:jest example'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 'Use Node.js'
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
with:
node-version-file: '.nvmrc'
- name: 'install latest pnpm'
run: npm i -g pnpm@10.5.2
- name: Install Dependencies
run: yarn install
- name: 'Run verdaccio in the background'
run: |
yarn node ./scripts/run-verdaccio.js &
- name: 'Ping to verdaccio'
run: |
pnpm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
pnpm init
pnpm install jest@29.5.0 --registry http://localhost:4873 --loglevel info
echo "it('should pass', () => { expect(true).toBeTruthy(); });" | tee pass.test.js
yarn jest pass.test.js
yarn add left-pad --registry http://localhost:4873 --verbose
echo "const leftPad = require('left-pad'); it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js
yarn jest module.test.js

View File

@@ -8,7 +8,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Use Node (latest)
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install

View File

@@ -8,7 +8,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Use Node (latest)
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install

View File

@@ -16,7 +16,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Docker test

View File

@@ -12,7 +12,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Use Node (latest)
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Docker test

View File

@@ -8,7 +8,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Use Node
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
- name: Install

View File

@@ -11,7 +11,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Use Node ${{ inputs.node_version }}
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ inputs.node_version }}
- name: Install

14
MIGRATE.md Normal file
View File

@@ -0,0 +1,14 @@
# Migration Guidelines
## From 5.x to 6.x
### Breaking Changes
- Dropped support for Node.js 16: [#4835](https://github.com/verdaccio/verdaccio/pull/4835)
## From Below 5.x
Several blog articles are available to assist with migrating from older versions. However, please note that these versions are [deprecated](VERSIONS.md) and no longer receive any form of support.
- [Migrating Verdaccio (2019)](https://verdaccio.org/blog/2019/02/24/migrating-verdaccio/)
- [Verdaccio 5 Migration Guide (2021)](https://verdaccio.org/blog/2021/04/14/verdaccio-5-migration-guide)

View File

@@ -22,17 +22,20 @@ For those looking to extend their storage capabilities, Verdaccio
**supports various community-made plugins to hook into services such as Amazon's s3,
Google Cloud Storage** or create your own plugin.
[![verdaccio (latest)](https://img.shields.io/npm/v/verdaccio/latest.svg)](https://www.npmjs.com/package/verdaccio)
[![verdaccio (downloads)](https://img.shields.io/npm/dy/verdaccio.svg)](https://www.npmjs.com/package/verdaccio)
[![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html)
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![Verdaccio Home](https://img.shields.io/badge/Homepage-Verdaccio-405236?style=flat)](https://verdaccio.org)
[![MIT License](https://img.shields.io/github/license/verdaccio/verdaccio?label=License&color=405236)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Verdaccio Latest](https://img.shields.io/npm/v/verdaccio?label=Latest%20Version&color=405236)](https://github.com/verdaccio/verdaccio)
[![discord](https://img.shields.io/discord/388674437219745793.svg)](http://chat.verdaccio.org/)
[![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![Documentation](https://img.shields.io/badge/Help-Verdaccio?style=flat&logo=Verdaccio&label=Verdaccio&color=cd4000)](https://verdaccio.org/docs)
[![Discord](https://img.shields.io/badge/Chat-Discord?style=flat&logo=Discord&label=Discord&color=cd4000)](https://discord.com/channels/388674437219745793)
[![Bluesky](https://img.shields.io/badge/Follow-Bluesky?style=flat&logo=Bluesky&label=Bluesky&color=cd4000)](https://bsky.app/profile/verdaccio.org)
[![Backers](https://img.shields.io/opencollective/backers/verdaccio?style=flat&logo=opencollective&label=Join%20Backers&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Sponsors](https://img.shields.io/opencollective/sponsors/verdaccio?style=flat&logo=opencollective&label=Sponsor%20Us&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Verdaccio Downloads](https://img.shields.io/npm/dm/verdaccio?style=flat&logo=npm&label=Npm%20Downloads&color=lightgrey)](https://www.npmjs.com/package/verdaccio)
[![Docker Pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio?style=flat&logo=docker&label=Docker%20Pulls&color=lightgrey)](https://hub.docker.com/r/verdaccio/verdaccio)
[![GitHub Stars](https://img.shields.io/github/stars/verdaccio?style=flat&logo=github&label=GitHub%20Stars%20%E2%AD%90&color=lightgrey)](https://github.com/verdaccio/verdaccio/stargazers)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)
## Versions
@@ -285,14 +288,14 @@ If you want to report a security vulnerability, please follow the steps which we
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.
| Company | Logo | License |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| JetBrains | [![jetbrain](assets/thanks/jetbrains/logo.png)](https://www.jetbrains.com/) | JetBrains provides licenses for products for active maintainers, renewable yearly |
| Crowdin | [![crowdin](assets/thanks/crowdin/logo.png)](https://crowdin.com/) | Crowdin provides platform for translations |
| BrowserStack | [![browserstack](https://cdn.verdaccio.dev/readme/browserstack_logo.png)](https://www.browserstack.com/) | BrowserStack provides plan to run End to End testing for the UI |
| Netlify | [![netlify](https://www.netlify.com/img/global/badges/netlify-color-accent.svg)](https://www.netlify.com/) | Netlify provides pro plan for website deployment |
| Algolia | [![algolia](https://cdn.verdaccio.dev/sponsor/logo/algolia/logo.png)](https://algolia.com/) | Algolia provides search services for the website |
| Docker | [![docker](https://cdn.verdaccio.dev/sponsor/logo/docker/docker.png)](https://www.docker.com/community/open-source/application) | Docker offers unlimited pulls and unlimited egress to any and all users |
| Company | Logo | License |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| JetBrains | [![jetbrain](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/jetbrains/logo.png?raw=true)](https://www.jetbrains.com/) | JetBrains provides licenses for products for active maintainers, renewable yearly |
| Crowdin | [![crowdin](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/crowdin/logo.png?raw=true)](https://crowdin.com/) | Crowdin provides platform for translations |
| BrowserStack | [![browserstack](https://cdn.verdaccio.dev/readme/browserstack_logo.png)](https://www.browserstack.com/) | BrowserStack provides plan to run End to End testing for the UI |
| Netlify | [![netlify](https://www.netlify.com/img/global/badges/netlify-color-accent.svg)](https://www.netlify.com/) | Netlify provides pro plan for website deployment |
| Algolia | [![algolia](https://cdn.verdaccio.dev/sponsor/logo/algolia/logo.png)](https://algolia.com/) | Algolia provides search services for the website |
| Docker | [![docker](https://cdn.verdaccio.dev/sponsor/logo/docker/docker.png)](https://www.docker.com/community/open-source/application) | Docker offers unlimited pulls and unlimited egress to any and all users |
## Maintainers
@@ -331,7 +334,7 @@ You can find and chat with them over Discord, click [here](http://chat.verdaccio
## 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)]
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/contribute)]
[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website)
@@ -346,32 +349,32 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
## Open Collective Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio#backer)]
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio/contribute)]
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio#backers)
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio/contributes)
## Contributors
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
This project exists thanks to all the people who contribute. [[Contribute](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md)].
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](../../graphs/contributors)
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](https://github.com/verdaccio/verdaccio/graphs/contributors)
### FAQ / Contact / Troubleshoot
## FAQ / Contact / Troubleshoot
If you have any issue you can try the following options. Do no hesitate to ask or check our issues database. Perhaps someone has asked already what you are looking for.
- [Blog](https://verdaccio.org/blog/)
- [Donations](https://github.com/sponsors/verdaccio)
- [Reporting an issue](https://github.com/verdaccio/verdaccio/issues/new/choose)
- [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)
- [Running discussions](https://github.com/orgs/verdaccio/discussions)
- [Chat](https://discord.gg/7qWJxBf)
- [Logos](https://verdaccio.org/docs/en/logo)
- [Logos](https://verdaccio.org/docs/logo)
- [Docker Examples](https://github.com/verdaccio/verdaccio/tree/master/docker-examples)
- [FAQ](https://github.com/verdaccio/verdaccio/discussions/categories/q-a)
### License
## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch files within the /assets folder) are
[Creative Commons licensed](https://creativecommons.org/licenses/by/4.0/).

View File

@@ -12,9 +12,7 @@ The following table describes the versions of this project:
## Migration Guide
The migration from Verdaccio v5/v6 to v7 contains breaking changes. Refer to the priliminary [migration guide](https://github.com/verdaccio/verdaccio/blob/master/docs/migration-v5-to-v6.md) for more information.
For migrations from older versions to v5/6 refer to the [v5 migration guide](https://verdaccio.org/blog/2021/04/14/verdaccio-5-migration-guide/).
Read [the migration guidelines](MIGRATE.md)
### Deprecated Versions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -1,6 +1,6 @@
# Verdaccio 6 Examples
> We recommend to have installed [docker-compose >= 1.29.0](https://github.com/docker/compose/releases/tag/1.29.2)
> We recommend to have installed the latest docker-compose
## Mapping Volumes
@@ -20,3 +20,5 @@ Using plugins without `docker-compose` mapping volumes, all withing the `Dockerf
- [Docker + Local Build Auth Plugin (local development)](plugins/docker-build-install-plugin/README.md)
- [Docker + Auth Plugin (from a registry)](plugins/docker-local-plugin/README.md)
- [Docker + Localstack S3 + Verdaccio](amazon-s3-docker-example/README.md)
- [Docker + GitHub OAuth + verdaccio-github-oauth-ui + Verdaccio](verdaccio-github-oauth-ui/README.md)

View File

@@ -0,0 +1,17 @@
# Amazon S3 Bucket (Localstack) and Verdaccio 6.x
This setup runs Verdaccio alongside Localstack, providing a simple test/mocking environment for
developing cloud applications. In this case, we are simulating AWS S3 functionality.
## Usage
> You might need to create bucket manually here
> aws --endpoint-url=http://localhost:4566 s3 mb s3://localstack.s3.plugin.test
```
docker-compose up --force-recreate --build --always-recreate-deps
```
## Articles
- [Set up S3 bucket using Docker / Compose](https://discuss.localstack.cloud/t/set-up-s3-bucket-using-docker-compose/646.html)

View File

@@ -0,0 +1,29 @@
version: '3.8'
services:
localstack-s3:
container_name: '${LOCALSTACK_DOCKER_NAME-localstack-main}'
image: localstack/localstack:s3-latest
ports:
- '127.0.0.1:4566:4566'
volumes:
- './init-s3.py:/etc/localstack/init/ready.d/init-s3.py'
verdaccio:
container_name: verdaccio-s3-plugin
build: s3Plugin/
environment:
- DEBUG=verdaccio:*
- AWS_ACCESS_KEY_ID=foobar
- AWS_SECRET_ACCESS_KEY=foobar
- AWS_DEFAULT_REGION=eu-west-2
- AWS_S3_ENDPOINT=http://localstack-s3:4566
- AWS_S3_PATH_STYLE=true
ports:
- '4874:4873'
depends_on:
- localstack-s3
networks:
- default
networks:
default:
name: verdaccio-network

View File

@@ -0,0 +1,10 @@
import boto3
s3_client = boto3.client(
"s3",
endpoint_url=f"http://localhost:4566",
aws_access_key_id="test",
aws_secret_access_key="test"
)
s3_client.create_bucket(Bucket="localstack.s3.plugin.test")

View File

@@ -0,0 +1,9 @@
FROM verdaccio/verdaccio:6.x-next
LABEL Juan Picado <jotadeveloper@gmail.com>
# Copy the configuration file into the container
ADD config.yaml /verdaccio/conf/config.yaml
USER root
# This is the best way to install a plugin in Verdaccio
RUN npm install --global verdaccio-aws-s3-storage
USER $VERDACCIO_USER_UID

View File

@@ -0,0 +1,27 @@
storage: /verdaccio/storage
store:
aws-s3-storage:
bucket: localstack.s3.plugin.test
keyPrefix: docker-test-prefix
region: eu-west-2
endpoint: http://localstack-s3:4566
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $all
proxy: npmjs
'**':
access: $all
publish: $all
proxy: npmjs
log: { type: stdout, format: pretty, level: trace }
listen:
- 0.0.0.0:4873

View File

@@ -0,0 +1,17 @@
# GitHub OAuth Login with verdaccio-github-oauth-ui plugin and Verdaccio 6.x
This setup runs Verdaccio alongside verdaccio-github-oauth-ui plugin.
https://github.com/n4bb12/verdaccio-github-oauth-ui
## Configuration
Open `config.yaml` and modify the required properties follow the official documentation.
https://github.com/n4bb12/verdaccio-github-oauth-ui/blob/main/docs/configuration.md
## Usage
```bash
docker-compose up --force-recreate --build --always-recreate-deps
```

View File

@@ -0,0 +1,15 @@
version: '3.8'
services:
verdaccio:
container_name: verdaccio-oauth-plugin
build: plugin/
environment:
- DEBUG=verdaccio:*
ports:
- '4874:4873'
networks:
- default
networks:
default:
name: verdaccio-network

View File

@@ -0,0 +1,9 @@
FROM verdaccio/verdaccio:6.x-next
LABEL Juan Picado <jotadeveloper@gmail.com>
# Copy the configuration file into the container
ADD config.yaml /verdaccio/conf/config.yaml
USER root
# This is the best way to install a plugin in Verdaccio
RUN npm install --global verdaccio-github-oauth-ui
USER $VERDACCIO_USER_UID

View File

@@ -0,0 +1,34 @@
storage: /verdaccio/storage
middlewares:
github-oauth-ui:
enabled: true
auth:
# READ HERE https://github.com/n4bb12/verdaccio-github-oauth-ui/blob/main/docs/configuration.md
github-oauth-ui:
client-id: take_this_from_github
client-secret: take_this_from_github
token: my_github_token
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $all
proxy: npmjs
jquery:
# Limit access to users:
access: github/user/GITHUB_USER
'**':
access: $all
publish: $all
proxy: npmjs
log: { type: stdout, format: pretty, level: trace }
listen:
- 0.0.0.0:4873

View File

@@ -4,16 +4,16 @@
"version": "2.0.0-next-8.0",
"main": "src/index.ts",
"devDependencies": {
"@verdaccio/config": "workspace:8.0.0-next-8.12",
"@verdaccio/core": "workspace:8.0.0-next-8.12",
"@verdaccio/types": "workspace:13.0.0-next-8.3",
"@verdaccio/config": "workspace:8.0.0-next-8.15",
"@verdaccio/core": "workspace:8.0.0-next-8.15",
"@verdaccio/types": "workspace:13.0.0-next-8.5",
"debug": "4.4.0",
"fs-extra": "11.2.0",
"get-port": "5.1.1",
"got": "11.8.6",
"js-yaml": "4.1.0",
"lodash": "4.17.21",
"verdaccio": "workspace:8.0.0-next-8.12"
"verdaccio": "workspace:8.0.0-next-8.15"
},
"scripts": {
"test": "echo no test",

View File

@@ -1,5 +1,12 @@
# @verdaccio/e2e-cli-npm9
## 1.0.2-next-8.0
### Patch Changes
- d4fc827: fix(e2e): name for npm10 test
- @verdaccio/test-cli-commons@2.0.0-next-8.0
## 1.0.1
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "@verdaccio/e2e-cli-npm9",
"version": "1.0.1",
"name": "@verdaccio/e2e-cli-npm10",
"version": "1.0.2-next-8.0",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:2.0.0-next-8.0",
"@verdaccio/e2e-cli-npm-common": "workspace:*",

View File

@@ -3,10 +3,10 @@
"name": "@verdaccio/e2e-ui",
"version": "2.0.0",
"devDependencies": {
"verdaccio": "workspace:8.0.0-next-8.12",
"@verdaccio/core": "workspace:8.0.0-next-8.12",
"@verdaccio/config": "workspace:8.0.0-next-8.12",
"@verdaccio/test-helper": "workspace:4.0.0-next-8.3",
"verdaccio": "workspace:8.0.0-next-8.15",
"@verdaccio/core": "workspace:8.0.0-next-8.15",
"@verdaccio/config": "workspace:8.0.0-next-8.15",
"@verdaccio/test-helper": "workspace:4.0.0-next-8.4",
"debug": "4.4.0",
"cypress": "^13.6.0",
"get-port": "5.1.1"

View File

@@ -39,9 +39,9 @@
"@babel/preset-typescript": "7.24.7",
"@babel/register": "7.25.9",
"@babel/runtime": "7.26.9",
"@changesets/changelog-github": "0.5.0",
"@changesets/changelog-github": "0.5.1",
"@changesets/cli": "2.27.12",
"@changesets/get-dependents-graph": "2.1.2",
"@changesets/get-dependents-graph": "2.1.3",
"@crowdin/cli": "4.4.1",
"@dianmora/contributors": "5.0.0",
"@emotion/react": "11.10.6",

6
packages/api/.npmignore Normal file
View File

@@ -0,0 +1,6 @@
/*
!/bin/**/*
!/build/**/*
!index.js
!LICENSE
!README.md

View File

@@ -1,5 +1,55 @@
# @verdaccio/api
## 8.1.0-next-8.15
### Patch Changes
- Updated dependencies [1f25d5f]
- @verdaccio/auth@8.0.0-next-8.15
- @verdaccio/core@8.0.0-next-8.15
- @verdaccio/config@8.0.0-next-8.15
- @verdaccio/middleware@8.0.0-next-8.15
- @verdaccio/store@8.0.0-next-8.15
- @verdaccio/utils@8.1.0-next-8.15
- @verdaccio/logger@8.0.0-next-8.15
## 8.1.0-next-8.14
### Patch Changes
- 1e2f503: chore(api): avoid double registration of JSON bodyParser
- b9fea38: chore: cleanup utils
- Updated dependencies [b9fea38]
- Updated dependencies [bb478f2]
- Updated dependencies [2bcd3ca]
- Updated dependencies [da1650c]
- Updated dependencies [8f28186]
- @verdaccio/middleware@8.0.0-next-8.14
- @verdaccio/core@8.0.0-next-8.14
- @verdaccio/config@8.0.0-next-8.14
- @verdaccio/store@8.0.0-next-8.14
- @verdaccio/utils@8.1.0-next-8.14
- @verdaccio/auth@8.0.0-next-8.14
- @verdaccio/logger@8.0.0-next-8.14
## 8.1.0-next-8.13
### Patch Changes
- e4a1539: chore: package.json maintenance
- 0607e80: chore: update readme badges and license files
- Updated dependencies [b3fa5df]
- Updated dependencies [2eb8cc2]
- Updated dependencies [e4a1539]
- Updated dependencies [0607e80]
- @verdaccio/config@8.0.0-next-8.13
- @verdaccio/store@8.0.0-next-8.13
- @verdaccio/utils@8.1.0-next-8.13
- @verdaccio/core@8.0.0-next-8.13
- @verdaccio/logger@8.0.0-next-8.13
- @verdaccio/middleware@8.0.0-next-8.13
- @verdaccio/auth@8.0.0-next-8.13
## 8.1.0-next-8.12
### Patch Changes

21
packages/api/LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Verdaccio contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,12 +1,19 @@
# @verdaccio/api
# @verdaccio/api - Verdaccio Registry API
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/verdaccio/verdaccio)](https://www.tickgit.com/browse?repo=github.com/verdaccio/verdaccio)
[![Verdaccio Home](https://img.shields.io/badge/Homepage-Verdaccio-405236?style=flat)](https://verdaccio.org)
[![MIT License](https://img.shields.io/github/license/verdaccio/verdaccio?label=License&color=405236)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Verdaccio Latest](https://img.shields.io/npm/v/verdaccio?label=Latest%20Version&color=405236)](https://github.com/verdaccio/verdaccio)
[![This Package Latest](https://img.shields.io/npm/v/@verdaccio/api?label=@verdaccio/api&color=405236)](https://npmjs.com/package/@verdaccio/api)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
[![Documentation](https://img.shields.io/badge/Help-Verdaccio?style=flat&logo=Verdaccio&label=Verdaccio&color=cd4000)](https://verdaccio.org/docs)
[![Discord](https://img.shields.io/badge/Chat-Discord?style=flat&logo=Discord&label=Discord&color=cd4000)](https://discord.com/channels/388674437219745793)
[![Bluesky](https://img.shields.io/badge/Follow-Bluesky?style=flat&logo=Bluesky&label=Bluesky&color=cd4000)](https://bsky.app/profile/verdaccio.org)
[![Backers](https://img.shields.io/opencollective/backers/verdaccio?style=flat&logo=opencollective&label=Join%20Backers&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Sponsors](https://img.shields.io/opencollective/sponsors/verdaccio?style=flat&logo=opencollective&label=Sponsor%20Us&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Verdaccio Downloads](https://img.shields.io/npm/dm/verdaccio?style=flat&logo=npm&label=Npm%20Downloads&color=lightgrey)](https://www.npmjs.com/package/verdaccio)
[![Docker Pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio?style=flat&logo=docker&label=Docker%20Pulls&color=lightgrey)](https://hub.docker.com/r/verdaccio/verdaccio)
[![GitHub Stars](https://img.shields.io/github/stars/verdaccio?style=flat&logo=github&label=GitHub%20Stars%20%E2%AD%90&color=lightgrey)](https://github.com/verdaccio/verdaccio/stargazers)
## Donations
@@ -20,7 +27,7 @@ If you want to report a security vulnerability, please follow the steps which we
## 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)]
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/contribute)]
[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website)
@@ -35,9 +42,9 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
## Open Collective Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio#backer)]
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio/contribute)]
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio#backers)
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio/contributes)
## Special Thanks

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/api",
"version": "8.1.0-next-8.12",
"version": "8.1.0-next-8.15",
"description": "Verdaccio Registry API",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -42,13 +42,13 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/auth": "workspace:8.0.0-next-8.12",
"@verdaccio/config": "workspace:8.0.0-next-8.12",
"@verdaccio/core": "workspace:8.0.0-next-8.12",
"@verdaccio/logger": "workspace:8.0.0-next-8.12",
"@verdaccio/middleware": "workspace:8.0.0-next-8.12",
"@verdaccio/store": "workspace:8.0.0-next-8.12",
"@verdaccio/utils": "workspace:8.1.0-next-8.12",
"@verdaccio/auth": "workspace:8.0.0-next-8.15",
"@verdaccio/config": "workspace:8.0.0-next-8.15",
"@verdaccio/core": "workspace:8.0.0-next-8.15",
"@verdaccio/logger": "workspace:8.0.0-next-8.15",
"@verdaccio/middleware": "workspace:8.0.0-next-8.15",
"@verdaccio/store": "workspace:8.0.0-next-8.15",
"@verdaccio/utils": "workspace:8.1.0-next-8.15",
"abortcontroller-polyfill": "1.7.8",
"body-parser": "1.20.3",
"cookies": "0.9.1",
@@ -59,8 +59,8 @@
"semver": "7.7.1"
},
"devDependencies": {
"@verdaccio/test-helper": "workspace:4.0.0-next-8.3",
"@verdaccio/types": "workspace:13.0.0-next-8.3",
"@verdaccio/test-helper": "workspace:4.0.0-next-8.4",
"@verdaccio/types": "workspace:13.0.0-next-8.5",
"mockdate": "3.0.5",
"supertest": "7.0.0"
},

View File

@@ -1,3 +1,4 @@
import buildDebug from 'debug';
import express, { Router } from 'express';
import { Auth } from '@verdaccio/auth';
@@ -24,6 +25,8 @@ import v1Search from './v1/search';
import token from './v1/token';
import whoami from './whoami';
const debug = buildDebug('verdaccio:api');
export default function (config: Config, auth: Auth, storage: Storage, logger: Logger): Router {
/* eslint new-cap:off */
const app = express.Router();
@@ -44,7 +47,14 @@ export default function (config: Config, auth: Auth, storage: Storage, logger: L
app.param('org_couchdb_user', match(/^org\.couchdb\.user:/));
app.use(auth.apiJWTmiddleware());
app.use(express.json({ strict: false, limit: config.max_body_size || '10mb' }));
// middleware might have registered a json parser already
if (hasBodyParser(app)) {
debug('json parser already registered');
} else {
app.use(express.json({ strict: false, limit: config.max_body_size || '10mb' }));
}
app.use(antiLoop(config));
app.use(makeURLrelative);
// encode / in a scoped package name to be matched as a single parameter in routes
@@ -63,3 +73,10 @@ export default function (config: Config, auth: Auth, storage: Storage, logger: L
pkg(app, auth, storage, logger);
return app;
}
function hasBodyParser(app: Router): boolean {
const stack = app.stack || [];
return stack.some((middleware) => {
return middleware.handle?.name === 'jsonParser' || middleware.name === 'jsonParser';
});
}

View File

@@ -10,7 +10,7 @@ import {
HEADERS,
HTTP_STATUS,
errorUtils,
validatioUtils,
validationUtils,
} from '@verdaccio/core';
import { USER_API_ENDPOINTS, rateLimit } from '@verdaccio/middleware';
import { Logger } from '@verdaccio/types';
@@ -77,7 +77,7 @@ export default function (route: Router, auth: Auth, config: Config, logger: Logg
debug('login or adduser');
const remoteName = req?.remote_user?.name;
if (!validatioUtils.validateUserName(req.params.org_couchdb_user, name)) {
if (!validationUtils.validateUserName(req.params.org_couchdb_user, name)) {
return next(errorUtils.getBadRequest(API_ERROR.USERNAME_MISMATCH));
}
@@ -119,7 +119,7 @@ export default function (route: Router, auth: Auth, config: Config, logger: Logg
} else {
debug('adduser: %o', name);
if (
validatioUtils.validatePassword(
validationUtils.validatePassword(
password,
config?.serverSettings?.passwordValidationRegex
) === false

View File

@@ -8,7 +8,7 @@ import {
HTTP_STATUS,
SUPPORT_ERRORS,
errorUtils,
validatioUtils,
validationUtils,
} from '@verdaccio/core';
import { PROFILE_API_ENDPOINTS } from '@verdaccio/middleware';
import { rateLimit } from '@verdaccio/middleware';
@@ -72,7 +72,7 @@ export default function (route: Router, auth: Auth, config: Config): void {
if (_.isNil(password) === false) {
if (
validatioUtils.validatePassword(
validationUtils.validatePassword(
password.new,
config?.serverSettings?.passwordValidationRegex
) === false

View File

@@ -14,12 +14,15 @@ import { mask, stringToMD5 } from '@verdaccio/utils';
import { $NextFunctionVer, $RequestExtend } from '../../types/custom';
export type NormalizeToken = Token & {
cidr_whitelist: string[];
created: string;
};
// npm expects "cidr_whitelist" for token list
function normalizeToken(token: Token): NormalizeToken {
return {
...token,
cidr_whitelist: token.cidr || [],
created: new Date(token.created).toISOString(),
};
}

6
packages/auth/.npmignore Normal file
View File

@@ -0,0 +1,6 @@
/*
!/bin/**/*
!/build/**/*
!index.js
!LICENSE
!README.md

View File

@@ -1,5 +1,50 @@
# @verdaccio/auth
## 8.0.0-next-8.15
### Patch Changes
- 1f25d5f: feat: add legacyMergeConfigs as option
- @verdaccio/core@8.0.0-next-8.15
- @verdaccio/config@8.0.0-next-8.15
- @verdaccio/loaders@8.0.0-next-8.6
- verdaccio-htpasswd@13.0.0-next-8.15
- @verdaccio/utils@8.1.0-next-8.15
- @verdaccio/signature@8.0.0-next-8.7
## 8.0.0-next-8.14
### Patch Changes
- 8f28186: fix: add legacyMergeConfigs legacy plugins
- Updated dependencies [b9fea38]
- Updated dependencies [bb478f2]
- Updated dependencies [8f28186]
- @verdaccio/core@8.0.0-next-8.14
- @verdaccio/config@8.0.0-next-8.14
- @verdaccio/utils@8.1.0-next-8.14
- @verdaccio/loaders@8.0.0-next-8.6
- verdaccio-htpasswd@13.0.0-next-8.14
- @verdaccio/signature@8.0.0-next-8.6
## 8.0.0-next-8.13
### Patch Changes
- e4a1539: chore: package.json maintenance
- 0607e80: chore: update readme badges and license files
- Updated dependencies [b3fa5df]
- Updated dependencies [2eb8cc2]
- Updated dependencies [e4a1539]
- Updated dependencies [50f20aa]
- Updated dependencies [0607e80]
- @verdaccio/config@8.0.0-next-8.13
- @verdaccio/utils@8.1.0-next-8.13
- @verdaccio/core@8.0.0-next-8.13
- verdaccio-htpasswd@13.0.0-next-8.13
- @verdaccio/signature@8.0.0-next-8.5
- @verdaccio/loaders@8.0.0-next-8.5
## 8.0.0-next-8.12
### Patch Changes

21
packages/auth/LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Verdaccio contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,12 +1,19 @@
# @verdaccio/auth
# @verdaccio/auth - Verdaccio Authentication
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/verdaccio/verdaccio)](https://www.tickgit.com/browse?repo=github.com/verdaccio/verdaccio)
[![Verdaccio Home](https://img.shields.io/badge/Homepage-Verdaccio-405236?style=flat)](https://verdaccio.org)
[![MIT License](https://img.shields.io/github/license/verdaccio/verdaccio?label=License&color=405236)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Verdaccio Latest](https://img.shields.io/npm/v/verdaccio?label=Latest%20Version&color=405236)](https://github.com/verdaccio/verdaccio)
[![This Package Latest](https://img.shields.io/npm/v/@verdaccio/auth?label=@verdaccio/auth&color=405236)](https://npmjs.com/package/@verdaccio/auth)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
[![Documentation](https://img.shields.io/badge/Help-Verdaccio?style=flat&logo=Verdaccio&label=Verdaccio&color=cd4000)](https://verdaccio.org/docs)
[![Discord](https://img.shields.io/badge/Chat-Discord?style=flat&logo=Discord&label=Discord&color=cd4000)](https://discord.com/channels/388674437219745793)
[![Bluesky](https://img.shields.io/badge/Follow-Bluesky?style=flat&logo=Bluesky&label=Bluesky&color=cd4000)](https://bsky.app/profile/verdaccio.org)
[![Backers](https://img.shields.io/opencollective/backers/verdaccio?style=flat&logo=opencollective&label=Join%20Backers&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Sponsors](https://img.shields.io/opencollective/sponsors/verdaccio?style=flat&logo=opencollective&label=Sponsor%20Us&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Verdaccio Downloads](https://img.shields.io/npm/dm/verdaccio?style=flat&logo=npm&label=Npm%20Downloads&color=lightgrey)](https://www.npmjs.com/package/verdaccio)
[![Docker Pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio?style=flat&logo=docker&label=Docker%20Pulls&color=lightgrey)](https://hub.docker.com/r/verdaccio/verdaccio)
[![GitHub Stars](https://img.shields.io/github/stars/verdaccio?style=flat&logo=github&label=GitHub%20Stars%20%E2%AD%90&color=lightgrey)](https://github.com/verdaccio/verdaccio/stargazers)
## Donations
@@ -20,7 +27,7 @@ If you want to report a security vulnerability, please follow the steps which we
## 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)]
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/contribute)]
[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website)
@@ -35,40 +42,39 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
## Open Collective Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio#backer)]
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio/contribute)]
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio#backers)
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio/contributes)
## Special Thanks
Thanks to the following companies to help us to achieve our goals providing free open source licenses.
[![jetbrain](assets/thanks/jetbrains/logo.png)](https://www.jetbrains.com/)
[![crowdin](assets/thanks/crowdin/logo.png)](https://crowdin.com/)
[![balsamiq](assets/thanks/balsamiq/logo.jpg)](https://balsamiq.com/)
[![jetbrains](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/jetbrains/logo.jpg?raw=true)](https://www.jetbrains.com/)
[![crowdin](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/crowdin/logo.png?raw=true)](https://crowdin.com/)
## Contributors
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
This project exists thanks to all the people who contribute. [[Contribute](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md)].
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](../../graphs/contributors)
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](https://github.com/verdaccio/verdaccio/graphs/contributors)
### FAQ / Contact / Troubleshoot
## FAQ / Contact / Troubleshoot
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.
If you have any issue you can try the following options. Do not hesitate to ask or check our issues database. Perhaps someone has asked already what you are looking for.
- [Blog](https://verdaccio.org/blog/)
- [Donations](https://opencollective.com/verdaccio)
- [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)
- [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)
- [Chat](http://chat.verdaccio.org/)
- [Logos](https://verdaccio.org/docs/en/logo)
- [Docker Examples](https://github.com/verdaccio/docker-examples)
- [Running discussions](https://github.com/orgs/verdaccio/discussions)
- [Chat](https://discord.com/channels/388674437219745793)
- [Logos](https://verdaccio.org/docs/logo)
- [Docker Examples](https://github.com/verdaccio/verdaccio/tree/master/docker-examples)
- [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)
### License
## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
[Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch files within the /assets folder) are
[Creative Commons licensed](https://creativecommons.org/licenses/by/4.0/).

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/auth",
"version": "8.0.0-next-8.12",
"version": "8.0.0-next-8.15",
"description": "Verdaccio Authentication",
"main": "./build/index.js",
"types": "./build/index.d.ts",
@@ -42,19 +42,19 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/config": "workspace:8.0.0-next-8.12",
"@verdaccio/core": "workspace:8.0.0-next-8.12",
"@verdaccio/loaders": "workspace:8.0.0-next-8.4",
"@verdaccio/signature": "workspace:8.0.0-next-8.4",
"@verdaccio/utils": "workspace:8.1.0-next-8.12",
"@verdaccio/config": "workspace:8.0.0-next-8.15",
"@verdaccio/core": "workspace:8.0.0-next-8.15",
"@verdaccio/loaders": "workspace:8.0.0-next-8.6",
"@verdaccio/signature": "workspace:8.0.0-next-8.7",
"@verdaccio/utils": "workspace:8.1.0-next-8.15",
"debug": "4.4.0",
"lodash": "4.17.21",
"verdaccio-htpasswd": "workspace:13.0.0-next-8.12"
"verdaccio-htpasswd": "workspace:13.0.0-next-8.15"
},
"devDependencies": {
"@verdaccio/middleware": "workspace:8.0.0-next-8.12",
"@verdaccio/types": "workspace:13.0.0-next-8.3",
"@verdaccio/logger": "workspace:8.0.0-next-8.12",
"@verdaccio/middleware": "workspace:8.0.0-next-8.15",
"@verdaccio/types": "workspace:13.0.0-next-8.5",
"@verdaccio/logger": "workspace:8.0.0-next-8.15",
"express": "4.21.2",
"supertest": "7.0.0"
},

View File

@@ -59,12 +59,14 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
public secret: string;
public logger: Logger;
public plugins: pluginUtils.Auth<Config>[];
public options: { legacyMergeConfigs: boolean };
public constructor(config: Config, logger: Logger) {
public constructor(config: Config, logger: Logger, options = { legacyMergeConfigs: false }) {
this.config = config;
this.secret = config.secret;
this.logger = logger;
this.plugins = [];
this.options = options;
if (!this.secret) {
throw new TypeError('secret it is required value on initialize the auth class');
}
@@ -123,6 +125,7 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
typeof allow_publish !== 'undefined'
);
},
this.options.legacyMergeConfigs,
this.config?.serverSettings?.pluginPrefix,
PLUGIN_CATEGORY.AUTHENTICATION
);
@@ -191,7 +194,7 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
plugin.authenticate(username, password, function (err: VerdaccioError | null, groups): void {
if (err) {
debug('authenticating for user %o failed. Error: %o', username, err?.message);
return cb(err, undefined);
return cb(err);
}
// Expect: SKIP if groups is falsey and not an array
@@ -201,7 +204,7 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
// Caveat: STRING (if valid) will pass successfully
// bug give unexpected results
// Info: Cannot use `== false to check falsey values`
if (!!groups && groups?.length !== 0) {
if (!!groups && groups.length !== 0) {
// TODO: create a better understanding of expectations
if (_.isString(groups)) {
throw new TypeError('plugin group error: invalid type for function');
@@ -212,7 +215,7 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
}
debug('authentication for user %o was successfully. Groups: %o', username, groups);
return cb(err, createRemoteUser(username, groups as string[]));
return cb(err, createRemoteUser(username, groups));
}
next();
});

View File

@@ -161,7 +161,7 @@ export function getDefaultPlugins(logger: Logger): pluginUtils.Auth<Config> {
return {
authenticate(_user: string, _password: string, cb: pluginUtils.AuthCallback): void {
debug('triggered default authenticate method');
cb(errorUtils.getForbidden(API_ERROR.BAD_USERNAME_PASSWORD), undefined);
cb(errorUtils.getForbidden(API_ERROR.BAD_USERNAME_PASSWORD));
},
adduser(_user: string, _password: string, cb: pluginUtils.AuthUserCallback): void {

View File

@@ -4,14 +4,7 @@ import supertest from 'supertest';
import { describe, expect, test, vi } from 'vitest';
import { Config as AppConfig, ROLES, createRemoteUser, getDefaultConfig } from '@verdaccio/config';
import {
API_ERROR,
HEADERS,
HTTP_STATUS,
SUPPORT_ERRORS,
TOKEN_BEARER,
errorUtils,
} from '@verdaccio/core';
import { HEADERS, HTTP_STATUS, SUPPORT_ERRORS, TOKEN_BEARER, errorUtils } from '@verdaccio/core';
import { logger, setup } from '@verdaccio/logger';
import { errorReportingMiddleware, final, handleError } from '@verdaccio/middleware';
import { Config } from '@verdaccio/types';
@@ -103,7 +96,7 @@ describe('AuthTest', () => {
});
});
test('should be a fail on login due plugin failure', async () => {
test('should be a fail on login', async () => {
const config: Config = new AppConfig(authPluginFailureConf);
config.checkSecretKey('12345');
const auth: Auth = new Auth(config, logger);
@@ -114,7 +107,7 @@ describe('AuthTest', () => {
auth.authenticate('foo', 'bar', callback);
expect(callback).toHaveBeenCalledTimes(1);
expect(callback).toHaveBeenCalledWith(errorUtils.getInternalError(), undefined);
expect(callback).toHaveBeenCalledWith(errorUtils.getInternalError());
});
});
@@ -138,7 +131,6 @@ describe('AuthTest', () => {
auth.authenticate(null, value, callback);
const call = callback.mock.calls[index++];
expect(call[0]).toBeDefined();
expect(call[0]).toEqual(errorUtils.getForbidden(API_ERROR.BAD_USERNAME_PASSWORD));
expect(call[1]).toBeUndefined();
}
});

6
packages/cli/.npmignore Normal file
View File

@@ -0,0 +1,6 @@
/*
!/bin/**/*
!/build/**/*
!index.js
!LICENSE
!README.md

View File

@@ -1,5 +1,40 @@
# @verdaccio/cli
## 8.0.0-next-8.15
### Patch Changes
- @verdaccio/node-api@8.0.0-next-8.15
- @verdaccio/core@8.0.0-next-8.15
- @verdaccio/config@8.0.0-next-8.15
- @verdaccio/logger@8.0.0-next-8.15
## 8.0.0-next-8.14
### Patch Changes
- Updated dependencies [b9fea38]
- Updated dependencies [bb478f2]
- @verdaccio/core@8.0.0-next-8.14
- @verdaccio/config@8.0.0-next-8.14
- @verdaccio/node-api@8.0.0-next-8.14
- @verdaccio/logger@8.0.0-next-8.14
## 8.0.0-next-8.13
### Patch Changes
- e4a1539: chore: package.json maintenance
- 0607e80: chore: update readme badges and license files
- Updated dependencies [b3fa5df]
- Updated dependencies [2eb8cc2]
- Updated dependencies [e4a1539]
- Updated dependencies [0607e80]
- @verdaccio/config@8.0.0-next-8.13
- @verdaccio/core@8.0.0-next-8.13
- @verdaccio/logger@8.0.0-next-8.13
- @verdaccio/node-api@8.0.0-next-8.13
## 8.0.0-next-8.12
### Patch Changes

21
packages/cli/LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Verdaccio contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,12 +1,19 @@
# @verdaccio/cli
# @verdaccio/cli - Verdaccio CLI
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/verdaccio/verdaccio)](https://www.tickgit.com/browse?repo=github.com/verdaccio/verdaccio)
[![Verdaccio Home](https://img.shields.io/badge/Homepage-Verdaccio-405236?style=flat)](https://verdaccio.org)
[![MIT License](https://img.shields.io/github/license/verdaccio/verdaccio?label=License&color=405236)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Verdaccio Latest](https://img.shields.io/npm/v/verdaccio?label=Latest%20Version&color=405236)](https://github.com/verdaccio/verdaccio)
[![This Package Latest](https://img.shields.io/npm/v/@verdaccio/cli?label=@verdaccio/cli&color=405236)](https://npmjs.com/package/@verdaccio/cli)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
[![Documentation](https://img.shields.io/badge/Help-Verdaccio?style=flat&logo=Verdaccio&label=Verdaccio&color=cd4000)](https://verdaccio.org/docs)
[![Discord](https://img.shields.io/badge/Chat-Discord?style=flat&logo=Discord&label=Discord&color=cd4000)](https://discord.com/channels/388674437219745793)
[![Bluesky](https://img.shields.io/badge/Follow-Bluesky?style=flat&logo=Bluesky&label=Bluesky&color=cd4000)](https://bsky.app/profile/verdaccio.org)
[![Backers](https://img.shields.io/opencollective/backers/verdaccio?style=flat&logo=opencollective&label=Join%20Backers&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Sponsors](https://img.shields.io/opencollective/sponsors/verdaccio?style=flat&logo=opencollective&label=Sponsor%20Us&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Verdaccio Downloads](https://img.shields.io/npm/dm/verdaccio?style=flat&logo=npm&label=Npm%20Downloads&color=lightgrey)](https://www.npmjs.com/package/verdaccio)
[![Docker Pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio?style=flat&logo=docker&label=Docker%20Pulls&color=lightgrey)](https://hub.docker.com/r/verdaccio/verdaccio)
[![GitHub Stars](https://img.shields.io/github/stars/verdaccio?style=flat&logo=github&label=GitHub%20Stars%20%E2%AD%90&color=lightgrey)](https://github.com/verdaccio/verdaccio/stargazers)
## Donations
@@ -20,7 +27,7 @@ If you want to report a security vulnerability, please follow the steps which we
## 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)]
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/contribute)]
[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website)
@@ -35,40 +42,39 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
## Open Collective Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio#backer)]
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio/contribute)]
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio#backers)
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio/contributes)
## Special Thanks
Thanks to the following companies to help us to achieve our goals providing free open source licenses.
[![jetbrain](assets/thanks/jetbrains/logo.png)](https://www.jetbrains.com/)
[![crowdin](assets/thanks/crowdin/logo.png)](https://crowdin.com/)
[![balsamiq](assets/thanks/balsamiq/logo.jpg)](https://balsamiq.com/)
[![jetbrains](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/jetbrains/logo.jpg?raw=true)](https://www.jetbrains.com/)
[![crowdin](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/crowdin/logo.png?raw=true)](https://crowdin.com/)
## Contributors
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
This project exists thanks to all the people who contribute. [[Contribute](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md)].
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](../../graphs/contributors)
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](https://github.com/verdaccio/verdaccio/graphs/contributors)
### FAQ / Contact / Troubleshoot
## FAQ / Contact / Troubleshoot
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.
If you have any issue you can try the following options. Do not hesitate to ask or check our issues database. Perhaps someone has asked already what you are looking for.
- [Blog](https://verdaccio.org/blog/)
- [Donations](https://opencollective.com/verdaccio)
- [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)
- [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)
- [Chat](http://chat.verdaccio.org/)
- [Logos](https://verdaccio.org/docs/en/logo)
- [Docker Examples](https://github.com/verdaccio/docker-examples)
- [Running discussions](https://github.com/orgs/verdaccio/discussions)
- [Chat](https://discord.com/channels/388674437219745793)
- [Logos](https://verdaccio.org/docs/logo)
- [Docker Examples](https://github.com/verdaccio/verdaccio/tree/master/docker-examples)
- [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)
### License
## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
[Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch files within the /assets folder) are
[Creative Commons licensed](https://creativecommons.org/licenses/by/4.0/).

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/cli",
"version": "8.0.0-next-8.12",
"version": "8.0.0-next-8.15",
"author": {
"name": "Juan Picado",
"email": "juanpicado19@gmail.com"
@@ -47,10 +47,10 @@
"start": "ts-node src/index.ts"
},
"dependencies": {
"@verdaccio/config": "workspace:8.0.0-next-8.12",
"@verdaccio/core": "workspace:8.0.0-next-8.12",
"@verdaccio/logger": "workspace:8.0.0-next-8.12",
"@verdaccio/node-api": "workspace:8.0.0-next-8.12",
"@verdaccio/config": "workspace:8.0.0-next-8.15",
"@verdaccio/core": "workspace:8.0.0-next-8.15",
"@verdaccio/logger": "workspace:8.0.0-next-8.15",
"@verdaccio/node-api": "workspace:8.0.0-next-8.15",
"clipanion": "4.0.0-rc.4",
"envinfo": "7.14.0",
"kleur": "4.1.5",

View File

@@ -0,0 +1,6 @@
/*
!/bin/**/*
!/build/**/*
!index.js
!LICENSE
!README.md

View File

@@ -1,5 +1,36 @@
# @verdaccio/config
## 8.0.0-next-8.15
### Patch Changes
- @verdaccio/core@8.0.0-next-8.15
- @verdaccio/utils@8.1.0-next-8.15
## 8.0.0-next-8.14
### Patch Changes
- b9fea38: chore: cleanup utils
- bb478f2: chore: expose config utils
- Updated dependencies [b9fea38]
- @verdaccio/core@8.0.0-next-8.14
- @verdaccio/utils@8.1.0-next-8.14
## 8.0.0-next-8.13
### Patch Changes
- b3fa5df: fix: uplink processing order
- e4a1539: chore: package.json maintenance
- 0607e80: chore: update readme badges and license files
- Updated dependencies [b3fa5df]
- Updated dependencies [2eb8cc2]
- Updated dependencies [e4a1539]
- Updated dependencies [0607e80]
- @verdaccio/utils@8.1.0-next-8.13
- @verdaccio/core@8.0.0-next-8.13
## 8.0.0-next-8.12
### Patch Changes

21
packages/config/LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Verdaccio contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,4 +1,19 @@
# @verdaccio/config
# @verdaccio/config - Verdaccio Configuration
[![Verdaccio Home](https://img.shields.io/badge/Homepage-Verdaccio-405236?style=flat)](https://verdaccio.org)
[![MIT License](https://img.shields.io/github/license/verdaccio/verdaccio?label=License&color=405236)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Verdaccio Latest](https://img.shields.io/npm/v/verdaccio?label=Latest%20Version&color=405236)](https://github.com/verdaccio/verdaccio)
[![This Package Latest](https://img.shields.io/npm/v/@verdaccio/config?label=@verdaccio/config&color=405236)](https://npmjs.com/package/@verdaccio/config)
[![Documentation](https://img.shields.io/badge/Help-Verdaccio?style=flat&logo=Verdaccio&label=Verdaccio&color=cd4000)](https://verdaccio.org/docs)
[![Discord](https://img.shields.io/badge/Chat-Discord?style=flat&logo=Discord&label=Discord&color=cd4000)](https://discord.com/channels/388674437219745793)
[![Bluesky](https://img.shields.io/badge/Follow-Bluesky?style=flat&logo=Bluesky&label=Bluesky&color=cd4000)](https://bsky.app/profile/verdaccio.org)
[![Backers](https://img.shields.io/opencollective/backers/verdaccio?style=flat&logo=opencollective&label=Join%20Backers&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Sponsors](https://img.shields.io/opencollective/sponsors/verdaccio?style=flat&logo=opencollective&label=Sponsor%20Us&color=cd4000)](https://opencollective.com/verdaccio/contribute)
[![Verdaccio Downloads](https://img.shields.io/npm/dm/verdaccio?style=flat&logo=npm&label=Npm%20Downloads&color=lightgrey)](https://www.npmjs.com/package/verdaccio)
[![Docker Pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio?style=flat&logo=docker&label=Docker%20Pulls&color=lightgrey)](https://hub.docker.com/r/verdaccio/verdaccio)
[![GitHub Stars](https://img.shields.io/github/stars/verdaccio?style=flat&logo=github&label=GitHub%20Stars%20%E2%AD%90&color=lightgrey)](https://github.com/verdaccio/verdaccio/stargazers)
## Overview
@@ -69,9 +84,66 @@ const defaultConfig = getDefaultConfig();
- `fromJStoYAML(config: ConfigYaml): string`: Converts a JavaScript configuration object to YAML format.
- `parseConfigFile(filePath: string): ConfigYaml`: Parses a configuration file from the specified path and returns the configuration object.
### License
## 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.** 😉
**[Donate](https://opencollective.com/verdaccio)** 💵👍🏻 starting from _\$1/month_ or just one single contribution.
## Report a vulnerability
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).
## 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/contribute)]
[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/2/avatar.svg)](https://opencollective.com/verdaccio/sponsor/2/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/3/avatar.svg)](https://opencollective.com/verdaccio/sponsor/3/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/4/avatar.svg)](https://opencollective.com/verdaccio/sponsor/4/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/5/avatar.svg)](https://opencollective.com/verdaccio/sponsor/5/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/6/avatar.svg)](https://opencollective.com/verdaccio/sponsor/6/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/7/avatar.svg)](https://opencollective.com/verdaccio/sponsor/7/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/8/avatar.svg)](https://opencollective.com/verdaccio/sponsor/8/website)
[![sponsor](https://opencollective.com/verdaccio/sponsor/9/avatar.svg)](https://opencollective.com/verdaccio/sponsor/9/website)
## Open Collective Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio/contribute)]
[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio/contributes)
## Special Thanks
Thanks to the following companies to help us to achieve our goals providing free open source licenses.
[![jetbrains](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/jetbrains/logo.jpg?raw=true)](https://www.jetbrains.com/)
[![crowdin](https://github.com/verdaccio/verdaccio/blob/master/assets/thanks/crowdin/logo.png?raw=true)](https://crowdin.com/)
## Contributors
This project exists thanks to all the people who contribute. [[Contribute](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md)].
[![contributors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](https://github.com/verdaccio/verdaccio/graphs/contributors)
## FAQ / Contact / Troubleshoot
If you have any issue you can try the following options. Do not hesitate to ask or check our issues database. Perhaps someone has asked already what you are looking for.
- [Blog](https://verdaccio.org/blog/)
- [Donations](https://opencollective.com/verdaccio)
- [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)
- [Running discussions](https://github.com/orgs/verdaccio/discussions)
- [Chat](https://discord.com/channels/388674437219745793)
- [Logos](https://verdaccio.org/docs/logo)
- [Docker Examples](https://github.com/verdaccio/verdaccio/tree/master/docker-examples)
- [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)
## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
[Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch files within the /assets folder) are
[Creative Commons licensed](https://creativecommons.org/licenses/by/4.0/).

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/config",
"version": "8.0.0-next-8.12",
"version": "8.0.0-next-8.15",
"description": "Verdaccio Configuration",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -42,8 +42,8 @@
"build": "pnpm run build:js && pnpm run build:types"
},
"dependencies": {
"@verdaccio/core": "workspace:8.0.0-next-8.12",
"@verdaccio/utils": "workspace:8.1.0-next-8.12",
"@verdaccio/core": "workspace:8.0.0-next-8.15",
"@verdaccio/utils": "workspace:8.1.0-next-8.15",
"debug": "4.4.0",
"js-yaml": "4.1.0",
"lodash": "4.17.21",

View File

@@ -4,34 +4,38 @@
# improve security.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/5.x/packages/config/src/conf/default.yaml
# https://github.com/verdaccio/verdaccio/blob/master/docker-examples/README.md
#
# Read about the best practices
# https://verdaccio.org/docs/best
# path to a directory with all packages
# Path to a directory with all packages
storage: ./storage
# path to a directory with plugins to include, the plugins folder has the higher priority for loading plugins
# disable this folder to avoid warnings if is not used
# Path to a directory with plugins to include, the plugins folder has the higher priority for loading plugins
# Disable this folder to avoid warnings if is not used
# plugins: ./plugins
# Web UI settings
# https://verdaccio.org/docs/webui
web:
title: Verdaccio
# custom colors for header background and font
# Disable complete web UI
# enabled: false
# Custom colors for header background and font
# primaryColor: "#4b5e40"
# custom logos and favicon
# Custom logos and favicon
# logo: ./path/to/logo.png
# logoDark: ./path/to/logoDark.png
# favicon: ./path/to/favicon.ico
# comment out to disable gravatar support
# Disable gravatar support
# gravatar: false
# by default packages are ordercer ascendant (asc|desc)
# sort_packages: asc
# convert your UI to the dark side
# By default, packages are ordered ascending
# sort_packages: asc | desc
# Convert your UI to the dark side
# darkMode: true
# html_cache: true
# by default all features are displayed
# By default, all features are displayed
# login: true
# showInfo: true
# showSettings: true
@@ -42,20 +46,25 @@ web:
# showRaw: true
# showDownloadTarball: true
# showUplinks: true
# HTML tags injected after manifest <scripts/>
#
# HTML tags injected before ends </head>
# metaScripts:
# - '<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>'
# - '<script type="text/javascript" src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js"></script>'
# - '<meta name="robots" content="noindex">'
#
# HTML tags injected as first child in <body>
# scriptsBodyBefore:
# - '<div id="myId">html before webpack scripts</div>'
#
# HTML tags injected as last child in </body>
# scriptsBodyAfter:
# - '<script type="text/javascript" src="https://my.company.com/customJS.min.js"></script>'
# HTML tags injected before ends </head>
# metaScripts:
# - '<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>'
# - '<script type="text/javascript" src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js"></script>'
# - '<meta name="robots" content="noindex" />'
# HTML tags injected first child at <body/>
# bodyBefore:
# - '<div id="myId">html before webpack scripts</div>'
# Public path for template manifest scripts (only manifest)
# publicPath: http://somedomain.org/
# - '<script type="text/javascript" src="https://my.company.com/customJS.min.js"></script>'
#
# Public path for template manifest scripts (only manifest)
# publicPath: http://somedomain.org/
# Settings for authentication plugin
# https://verdaccio.org/docs/configuration#authentication
auth:
htpasswd:
@@ -64,8 +73,8 @@ auth:
# You can set this to -1 to disable registration.
# max_users: 1000
# A list of other known repositories we can talk to
# https://verdaccio.org/docs/configuration#uplinks
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
@@ -97,7 +106,7 @@ packages:
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
# To improve your security configuration and avoid dependency confusion
# To improve your security configuration and avoid dependency confusion
# consider removing the proxy property for private packages
# https://verdaccio.org/docs/best#remove-proxy-to-increase-security-at-private-packages
@@ -107,14 +116,14 @@ packages:
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
server:
keepAliveTimeout: 60
# The pluginPrefix replaces the default plugins prefix which is `verdaccio`, please don't include `-`. If `something` is provided
# the resolve package will be `something-xxxx`.
# The pluginPrefix replaces the default plugins prefix which is `verdaccio`. Please don't include `-`. If `something` is provided
# the resolved package will be `something-xxxx`.
# pluginPrefix: something
# A regex for the password validation /.{3}$/ (3 characters min)
# An example to limit to 10 characters minimum
# passwordValidationRegex: /.{10}$/
# Allow `req.ip` to resolve properly when Verdaccio is behind a proxy or load-balancer
# See: https://expressjs.com/en/guide/behind-proxies.html
# https://expressjs.com/en/guide/behind-proxies.html
# trustProxy: '127.0.0.1'
# https://verdaccio.org/docs/configuration#offline-publish
@@ -123,18 +132,24 @@ server:
# check_owners: false
# keep_readmes: 'latest' | 'tagged' | 'all'
# Define public URL of registry in combination with VERDACCIO_PUBLIC_URL environment variable
# https://verdaccio.org/docs/configuration#url-prefix
# url_prefix: /verdaccio/
# VERDACCIO_PUBLIC_URL='https://somedomain.org';
#
# Examples:
# VERDACCIO_PUBLIC_URL='https://somedomain.org'
# url_prefix: '/my_prefix'
# // url -> https://somedomain.org/my_prefix/
# VERDACCIO_PUBLIC_URL='https://somedomain.org';
#
# VERDACCIO_PUBLIC_URL='https://somedomain.org'
# url_prefix: '/'
# // url -> https://somedomain.org/
# VERDACCIO_PUBLIC_URL='https://somedomain.org/first_prefix';
#
# VERDACCIO_PUBLIC_URL='https://somedomain.org/first_prefix'
# url_prefix: '/second_prefix'
# // url -> https://somedomain.org/second_prefix/'
# // url -> https://somedomain.org/second_prefix/
# Security settings
# https://verdaccio.org/docs/configuration#security
# security:
# api:
@@ -160,12 +175,12 @@ server:
# https://verdaccio.org/docs/configuration#listen-port
# listen:
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - "[::1]:4873" # ipv6
# - unix:/tmp/verdaccio.sock # unix socket
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - "[::1]:4873" # ipv6
# - unix:/tmp/verdaccio.sock # unix socket
# The HTTPS configuration is useful if you do not consider use a HTTP Proxy
# https://verdaccio.org/docs/configuration#https
@@ -177,36 +192,46 @@ server:
# https://verdaccio.org/docs/configuration#proxy
# http_proxy: http://something.local/
# https_proxy: https://something.local/
# no_proxy: localhost,127.0.0.1,server.local
# https://verdaccio.org/docs/configuration#notifications
# notify:
# method: POST
# headers: [{ "Content-Type": "application/json" }]
# endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
# method: 'POST'
# headers: '[{ "Content-Type": "application/json" }]'
# endpoint: 'https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken'
# content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
# Settings for middleware plugins
# https://verdaccio.org/docs/plugins#middleware-configuration
middlewares:
audit:
enabled: true
# timeout: 10000
# Log settings
# https://verdaccio.org/docs/logger
# log settings
log: { type: stdout, format: pretty, level: http }
#experiments:
# # support for npm token command
# Feature flags (experimental settings that can be changed or removed in the future)
# https://verdaccio.org/docs/configuration#experiments
# experiments:
# # Support for npm token command
# token: false
# # disable writing body size to logs, read more on ticket 1912
# bytesin_off: false
# # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string
# # Enable tarball URL redirect for hosting tarball with a different server.
# # The tarball_url_redirect can be a template string
# tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}'
# # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file
# # The tarball_url_redirect can be a function, takes packageName and filename and returns the url,
# # when working with a js configuration file
# tarball_url_redirect(packageName, filename) {
# const signedUrl = // generate a signed url
# return signedUrl;
# }
# Renamed from "experiments" to "flags" in next major release
# flags:
# changePassword: true
# searchRemote: true
# translate your registry, api i18n not available yet
# Translate your registry, API and web UI
# List of the available translations https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md
i18n:
# list of the available translations https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md
web: en-US

View File

@@ -1,75 +1,80 @@
#
# This is the default configuration file. As it allows all users to do anything,
# please read carefully the documentation and best practices to improve security.
#
# Do not configure host and port under `listen` in this file
# as it will be ignored when using docker.
# see https://verdaccio.org/docs/en/docker#docker-and-custom-port-configuration
# This is the default configuration file. It allows all users to do anything,
# please read carefully the documentation and best practices to
# improve security.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/5.x/packages/config/src/conf/docker.yaml
# https://github.com/verdaccio/verdaccio/blob/master/docker-examples/README.md
#
# Read about the best practices
# https://verdaccio.org/docs/best
# path to a directory with all packages
# Path to a directory with all packages
storage: /verdaccio/storage/data
# path to a directory with plugins to include, the plugins folder has the higher priority for loading plugins
# disable this folder to avoid warnings if is not used
# Path to a directory with plugins to include, the plugins folder has the higher priority for loading plugins
# Disable this folder to avoid warnings if is not used
plugins: /verdaccio/plugins
# Web UI settings
# https://verdaccio.org/docs/webui
web:
title: Verdaccio
# custom colors for header background and font
# Disable complete web UI
# enabled: false
# Custom colors for header background and font
# primaryColor: "#4b5e40"
# custom logos and favicon
# Custom logos and favicon
# logo: ./path/to/logo.png
# logoDark: ./path/to/logoDark.png
# favicon: ./path/to/favicon.ico
# Comment out to disable gravatar support
# Disable gravatar support
# gravatar: false
# By default packages are ordered ascendant (asc|desc)
# sort_packages: asc
# By default, packages are ordered ascending
# sort_packages: asc | desc
# Convert your UI to the dark side
# darkMode: true
# html_cache: true
# By default all features are displayed
# By default, all features are displayed
# login: true
# showInfo: true
# showSettings: true
# In combination with darkMode you can force a specific theme
# In combination with darkMode you can force specific theme
# showThemeSwitch: true
# showFooter: true
# showSearch: true
# showRaw: true
# showDownloadTarball: true
# showUplinks: true
# HTML tags injected after manifest <scripts/>
#
# HTML tags injected before ends </head>
# metaScripts:
# - '<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>'
# - '<script type="text/javascript" src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js"></script>'
# - '<meta name="robots" content="noindex">'
#
# HTML tags injected as first child in <body>
# scriptsBodyBefore:
# - '<div id="myId">html before webpack scripts</div>'
#
# HTML tags injected as last child in </body>
# scriptsBodyAfter:
# - '<script type="text/javascript" src="https://my.company.com/customJS.min.js"></script>'
# HTML tags injected before end </head>
# metaScripts:
# - '<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>'
# - '<script type="text/javascript" src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js"></script>'
# - '<meta name="robots" content="noindex" />'
# HTML tags injected as first child at <body/>
# bodyBefore:
# - '<div id="myId">html before webpack scripts</div>'
# Public path for template manifest scripts (only manifest)
# publicPath: http://somedomain.org/
# - '<script type="text/javascript" src="https://my.company.com/customJS.min.js"></script>'
#
# Public path for template manifest scripts (only manifest)
# publicPath: http://somedomain.org/
# Settings for authentication plugin
# https://verdaccio.org/docs/configuration#authentication
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
# Maximum amount of users allowed to register, defaults to "+infinity".
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
# max_users: 1000
# https://verdaccio.org/docs/configuration#uplinks
# A list of other known repositories we can talk to
# https://verdaccio.org/docs/configuration#uplinks
uplinks:
npmjs:
url: https://registry.npmjs.org/
@@ -86,14 +91,14 @@ packages:
proxy: npmjs
'**':
# Allow all users (including non-authenticated users) to read and
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# You can specify usernames/groupnames (depending on your auth plugin)
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# Allow all known users to publish/unpublish packages
# allow all known users to publish/unpublish packages
# (anyone can register by default, remember?)
publish: $authenticated
unpublish: $authenticated
@@ -106,21 +111,19 @@ packages:
# https://verdaccio.org/docs/best#remove-proxy-to-increase-security-at-private-packages
# https://verdaccio.org/docs/configuration#server
# You can specify the HTTP/1.1 server keep alive timeout in seconds for incoming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a
# keep-alive timeout.
# WORKAROUND: Through given configuration you can work around the following issue:
# https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
server:
keepAliveTimeout: 60
# The pluginPrefix replaces the default plugins prefix which is `verdaccio`, please don't include `-`. If `something` is provided
# the resolve package will be `something-xxxx`.
# The pluginPrefix replaces the default plugins prefix which is `verdaccio`. Please don't include `-`. If `something` is provided
# the resolved package will be `something-xxxx`.
# pluginPrefix: something
# A regex for the password validation /.{3}$/ (3 characters min)
# An example to limit to 10 characters minimum
# passwordValidationRegex: /.{10}$/
# Allow `req.ip` to resolve properly when Verdaccio is behind a proxy or load-balancer
# See: https://expressjs.com/en/guide/behind-proxies.html
# https://expressjs.com/en/guide/behind-proxies.html
# trustProxy: '127.0.0.1'
# https://verdaccio.org/docs/configuration#offline-publish
@@ -129,18 +132,24 @@ server:
# check_owners: false
# keep_readmes: 'latest' | 'tagged' | 'all'
# Define public URL of registry in combination with VERDACCIO_PUBLIC_URL environment variable
# https://verdaccio.org/docs/configuration#url-prefix
# url_prefix: /verdaccio/
# VERDACCIO_PUBLIC_URL='https://somedomain.org';
#
# Examples:
# VERDACCIO_PUBLIC_URL='https://somedomain.org'
# url_prefix: '/my_prefix'
# // url -> https://somedomain.org/my_prefix/
# VERDACCIO_PUBLIC_URL='https://somedomain.org';
#
# VERDACCIO_PUBLIC_URL='https://somedomain.org'
# url_prefix: '/'
# // url -> https://somedomain.org/
# VERDACCIO_PUBLIC_URL='https://somedomain.org/first_prefix';
#
# VERDACCIO_PUBLIC_URL='https://somedomain.org/first_prefix'
# url_prefix: '/second_prefix'
# // url -> https://somedomain.org/second_prefix/'
# // url -> https://somedomain.org/second_prefix/
# Security settings
# https://verdaccio.org/docs/configuration#security
# security:
# api:
@@ -166,14 +175,14 @@ server:
# https://verdaccio.org/docs/configuration#listen-port
# listen:
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - "[::1]:4873" # ipv6
# - unix:/tmp/verdaccio.sock # unix socket
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - "[::1]:4873" # ipv6
# - unix:/tmp/verdaccio.sock # unix socket
# The HTTPS configuration is useful if you do not consider using an HTTP Proxy
# The HTTPS configuration is useful if you do not consider use a HTTP Proxy
# https://verdaccio.org/docs/configuration#https
# https:
# key: ./path/verdaccio-key.pem
@@ -183,23 +192,29 @@ server:
# https://verdaccio.org/docs/configuration#proxy
# http_proxy: http://something.local/
# https_proxy: https://something.local/
# no_proxy: localhost,127.0.0.1,server.local
# https://verdaccio.org/docs/configuration#notifications
# notify:
# method: POST
# headers: [{ "Content-Type": "application/json" }]
# endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
# method: 'POST'
# headers: '[{ "Content-Type": "application/json" }]'
# endpoint: 'https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken'
# content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
# Settings for middleware plugins
# https://verdaccio.org/docs/plugins#middleware-configuration
middlewares:
audit:
enabled: true
# timeout: 10000
# Log settings
# https://verdaccio.org/docs/logger
# log settings
log: { type: stdout, format: pretty, level: http }
#experiments:
# Feature flags (experimental settings that can be changed or removed in the future)
# https://verdaccio.org/docs/configuration#experiments
# experiments:
# # Support for npm token command
# token: false
# # Enable tarball URL redirect for hosting tarball with a different server.
@@ -211,8 +226,12 @@ log: { type: stdout, format: pretty, level: http }
# const signedUrl = // generate a signed url
# return signedUrl;
# }
# Renamed from "experiments" to "flags" in next major release
# flags:
# changePassword: true
# searchRemote: true
# Translate your registry, api i18n not available yet
# i18n:
# list of the available translations https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md
# web: en-US
# Translate your registry, API and web UI
# List of the available translations https://github.com/verdaccio/verdaccio/blob/master/packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md
i18n:
web: en-US

Some files were not shown because too many files have changed in this diff Show More