* chore: await tarball_url_redirect function
* test: unit test async tarball_url_redirect
* chore: prettier format
* chore: refactor redirectOrDownloadStream to better error handling
* refactor tests
* format
* format
---------
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
Replaces default auth plugin verdaccio-htpasswd@10.x by verdaccio-htpasswd@11.x which is being used in verdaccio 6.x (almost identical)
Apply backward compabiity
Reduces maintenance (monorepo plugin can be removed)
One more step to switch v6.x
Add Node.js 12 GH Action for check backward compatibility
* fix: avoid setting body for GET requests
When making a GET request to certain uplinks, such as https://registry.npmmirror.com, setting the body field can result in a 413 error. Previously, the code was setting the body field for all requests, including GET requests.
This commit fixes the issue by checking the request method and avoiding setting the body field for GET requests. This ensures that GET requests are not affected by the issue and can be made without error.
Fixes#3601
* add missing deps for run test locally
* test(up-storage): add unit test about uplink is npmmirror
Cause thers is a bug in `isObject` function from `@verdaccio/core`, when `options.json` is `true`
GET request body will be string 'true', some uplinks might return 413 status code such as
https://registry.npmmirror.comfix#3601
* chore(deps): update @verdaccio/core
---------
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
Co-authored-by: botao <botao@tal.com>
chore: clean up comments
remove commitlint
update deps
add new tests
test
separate ci
test
test
test
test
test
test
chore: add preprelase
test
test
test
test
test
chore: update deps
Update release-snapshot.yml
Update .npmignore
test
chore: remove @verdaccio/commons-api dep
chore: cleanup
remove normalizeContributors
remove validateMetadata
fix test
clean up getLocalRegistryTarballUri
Update store.spec.ts
clean up convertDistRemoteToLocalTarballUrls
chore: update libraries
reuse getPublic url
clean up
Update jest.config.js
Update jest.config.js
update nvmrc
add tests
* fix: get header by quality priority value
* chore: disable some workflows
* chore: add more tests
* chore: remove some duplicated testss
* chore: return right content type haders
* WIP: port PR#2199 to master into 5.x
* port PR#2199 to master to 5.x - env.variables.md
* port PR#2199 to master to 5.x - config.spec
* Update config.spec.ts
* Update config.spec.ts
* fix format
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* fix: publish with deprecated field by @Jiasm
When publish with deprecated field in `package.json`, that will make all old versions miss.
Examples:
I have package@1.0.0 and package@1.0.1.
When `npm deprecate package@1.0.0 "xxx"`, Verdaccio will recived:
```json
{
"name": "module_name",
"version": {
"1.0.0": {
"deprecated": "xxx"
},
"1.0.1": {}
}
}
```
⬆️ This make sense
But then publish new version with @1.0.2.
Verdaccio will recived:
```json
{
"name": "module_name",
"version": {
"1.0.2": {
"deprecated": "xxx" // if we set this field in package.json
},
}
}
```
and that metadata will override package.json, make old version miss.
migrate from #2766
* remove spaces
* fix: ignore empty package case
* fix: cover normal unpublish case
* refactor: Optimize check logic for lazy execution
* test: upgrade Jest Snapshot
* fix: set storage.getPackage `uplinksLook: false`.
* feat: use `_attachments` to distinguish deprecate
* test: rollback test snapshots
* test: rollback jest snapshots
* test: publish new version with deprecate field
* test: remove space