gitea/modules/packages
TimberBro 84d05516dc
Fix NPM packages name validation ()
- Added new tests to cover corner cases
- Replace existing regex with new one
Closes  

---
As @silverwind suggested, I started from
[validate-npm-package-name](https://github.com/npm/validate-npm-package-name),
but found this solution too complicated.
Then I tried to fix existing regex myself, but thought, that exclude all
restricted symbols is harder, than set only allowed symbols.
Then I search a bit more and found
[package-name-regex](https://github.com/dword-design/package-name-regex)
and regex from it works for all new test cases.

Let me know, if more information or help with this PR is needed.
..
alpine Add Alpine package registry ()
cargo Add Cargo package registry ()
chef Add Chef package registry ()
composer Replace `interface{}` with `any` ()
conan Use ErrInvalidArgument in packages ()
conda Fix typo in metadata ()
container Use more specific test methods ()
cran Add CRAN package registry ()
debian Prevent newline errors with Debian packages ()
goproxy Add Go package registry ()
helm Replace `interface{}` with `any` ()
maven Add support for different Maven POM encoding ()
npm Fix NPM packages name validation ()
nuget Add Debian package registry ()
pub Replace `interface{}` with `any` ()
pypi Implement FSFE REUSE for golang files ()
rpm Fix typo in metadata ()
rubygems Replace `interface{}` with `any` ()
swift Add Swift package registry ()
vagrant Implement FSFE REUSE for golang files ()
content_store.go Add direct serving of package content ()
hashed_buffer.go Add Debian package registry ()
hashed_buffer_test.go Add Debian package registry ()
multi_hasher.go Implement FSFE REUSE for golang files ()
multi_hasher_test.go Replace fmt.Sprintf with hex.EncodeToString ()