Compare commits

...

108 Commits

Author SHA1 Message Date
Juan Picado
27bc6c1b7d chore: update versions (next-7) (#4658)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-02 21:52:46 +02:00
renovate[bot]
13c69ded53 fix(deps): update dependency express to v4.19.2 (#4662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-02 21:29:02 +02:00
Tobbe Lundberg
38b1e829d6 patch(core/url): Throw if VERDACCIO_FORWARDED_PROTO resolves to an array (#4613)
* patch(core/url): Throw if VERDACCIO_FORWARDED_PROTO resolves to an array

* changeset
2024-06-02 10:11:25 +02:00
dependabot[bot]
2bc45c8e2f chore(deps): bump github/codeql-action from 2.25.5 to 3.25.7 (#4659)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.25.5 to 3.25.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](d05fceb045...f079b84933)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-02 09:31:12 +02:00
Juan Picado
68407c684a Update dependabot.yml 2024-06-01 21:46:19 +02:00
dependabot[bot]
201149072f chore(deps): bump actions/checkout from 4.1.5 to 4.1.6 (#4660)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.5 to 4.1.6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](44c2b7a8a4...a5ac7e51b4)

---
updated-dependencies:
- dependency-name: actions/checkout
  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>
2024-06-01 21:39:12 +02:00
Michael Ryan
cf1b46cc59 fix: log spacing depending on the FORMAT and COLORS options (#4631)
* fix: Bad log spacing depending on the FORMAT and COLORS options used

fixes: #4630

inserted a space between the timestamp and the message when logging timestamped messages.

* fix: Bad log spacing depending on the FORMAT and COLORS options used

fixes: #4630

removed padding of an unnecessary space (at the start or end of the log string, depending on whether colors are enabled).

* remove padLeft, update tests

* update logger-commons tests

---------

Co-authored-by: Marc Bernard <marc@marcbernardtools.com>
2024-06-01 21:35:06 +02:00
Marc Bernard
e5624e173c chore: fix types for some store tests (#4657)
* chore: fix types for some store tests

* add changeset
2024-05-30 18:10:13 +02:00
verdacciobot
8b8e5c7b84 chore: updated static data 2024-05-30 00:14:02 +00:00
Marc Bernard
5bfab621d4 feat: add tarball details for published packages (#4653)
* feat: add tarball details for published packages

* remove throw err
2024-05-29 00:11:42 +02:00
verdacciobot
016abb8d7b chore: updated static data 2024-05-27 00:13:39 +00:00
Marc Bernard
475759eaa8 docs: add comment about token secret length to v6 migration (#4655) 2024-05-26 18:31:05 +02:00
verdacciobot
007a7bd76c chore: updated static data 2024-05-23 00:13:19 +00:00
verdacciobot
f9a079aac6 chore: updated static data 2024-05-20 00:13:24 +00:00
verdacciobot
33ae1db093 chore: updated static data 2024-05-16 00:12:57 +00:00
renovate[bot]
cef9b62eab chore(deps): update github/codeql-action digest to d05fceb (#4646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 07:37:50 +02:00
dependabot[bot]
87fd5b53fb chore(deps): bump actions/checkout from 4.1.4 to 4.1.5 (#4641)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](0ad4b8fada...44c2b7a8a4)

---
updated-dependencies:
- dependency-name: actions/checkout
  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>
2024-05-14 07:34:13 +02:00
Juan Picado
73b0b1752b Update renovate.json 2024-05-14 07:33:58 +02:00
Juan Picado
a78bd618ea Update dependabot.yml 2024-05-14 07:32:08 +02:00
dependabot[bot]
abdd23b3db chore(deps): bump github/codeql-action from 2.25.5 to 3.25.5 (#4644)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.25.5 to 3.25.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](d05fceb045...b7cec75265)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 07:28:41 +02:00
renovate[bot]
491a70e3e0 chore(deps): update github/codeql-action digest to d05fceb (#4642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 19:34:52 +02:00
Juan Picado
9c139e9ca3 chore: restore zh-CN on website 2024-05-13 06:42:31 +02:00
verdacciobot
e9cc809d97 chore: updated static data 2024-05-13 00:13:37 +00:00
Juan Picado
c418690ef0 chore: exclude temporary zh-CN
some issues at crowdin wrong links
2024-05-11 23:25:36 +02:00
Gweesin Chan
d2ef7f1aea docs: avoid using yo 5.x for plugin developer (#4617)
* docs: avoid using yo 5.x for plugin developer

* Update v5 and v6

---------

Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
2024-05-11 22:23:56 +02:00
Juan Picado
81da03a4e8 chore: fix version for migrateToSecureLegacySignature 2024-05-11 11:53:43 +02:00
dependabot[bot]
2ba21a9837 chore(deps): bump actions/cache from 3.3.3 to 4.0.2 (#4627)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.3 to 4.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](e12d46a63a...0c45773b62)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-11 10:02:17 +02:00
dependabot[bot]
53d80e1518 chore(deps): bump actions/checkout from 3.6.0 to 4.1.4 (#4628)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](f43a0e5ff2...0ad4b8fada)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-11 10:02:10 +02:00
Gweesin Chan
e92f517866 docs: add bun as bash sample (#4638)
* docs: fix typos in CONTRIBUTING

* docs: add Bun as bash sample
2024-05-10 11:30:51 +02:00
renovate[bot]
432c546fa0 chore(deps): update github/codeql-action digest to 4f0ceda (#4633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-09 12:16:45 +02:00
verdacciobot
12c281202c chore: updated static data 2024-05-09 00:12:55 +00:00
verdacciobot
8d6caba90b chore: updated static data 2024-05-06 00:13:36 +00:00
Juan Picado
53d9df92c6 chore: update versions (next-7) (#4624)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-05 17:09:41 +02:00
Juan Picado
bd8703e871 feat: add migrateToSecureLegacySignature property (#4621)
* feat: add migrateToSecureLegacySignature property

* Update config.ts

* changeset

* Update ci.yml

* Update config.spec.ts
2024-05-05 16:53:28 +02:00
Juan Picado
7400830505 revert #4600 (#4623) 2024-05-05 12:35:17 +02:00
Gweesin Chan
f83c157faa docs: update e2e pages (#4619) 2024-05-04 18:39:20 +02:00
renovate[bot]
2c6484290c chore(deps): update github/codeql-action digest to ceaec5c (#4609) 2024-05-03 12:38:53 +02:00
Juan Picado
14032d160b chore: update versions (next-7) (#4581) 2024-05-03 09:12:32 +02:00
Juan Picado
b6d565209f feat: support for createCipher backward compatible (#4612) 2024-05-03 08:59:29 +02:00
renovate[bot]
4b4a37c07b chore(deps): update actions/cache digest to e12d46a (#4614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-03 05:21:01 +02:00
renovate[bot]
24bec8ded0 chore(deps): update actions/checkout digest to f43a0e5 (#4615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-03 05:20:54 +02:00
Tobbe Lundberg
b0946b2a3b chore(types): Improve TS types for renderHTML and related functions (#4605)
* chore(types): Improve TS types for renderHTML

* changeset

* Add author and PR to changeset

* Use RequestOptions instead of Request

* Update changeset text

* Separate type import

* Explain isArray check

* Add verdaccio/url to changeset

* Reverting: throw on wrong type
2024-05-02 20:55:52 +02:00
Jean-Louis GUENEGO
3293c9a281 Update install.md (#4611)
* Update install.md

replaced --location=global with -g

* dev: replace all npm install --location with npm install -g
2024-05-02 11:53:48 +02:00
verdacciobot
6a83040351 chore: updated static data 2024-05-02 00:12:56 +00:00
Marc Bernard
253cc1348f feat: add tarball details for published packages (#4600)
* feat: add tarball details for published packages (part 1)

* pnpm-lock

* Update pnpm-lock

* switch to tar-stream

* fix api test (no dist)
2024-04-30 14:45:18 +02:00
dependabot[bot]
1367f02897 chore(deps): bump actions/checkout from 4.1.3 to 4.1.4 (#4603)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1d96c772d1...0ad4b8fada)

---
updated-dependencies:
- dependency-name: actions/checkout
  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>
2024-04-29 21:38:05 +02:00
dependabot[bot]
dc8be6df8b chore(deps): bump actions/upload-artifact from 4.3.2 to 4.3.3 (#4602)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](1746f4ab65...65462800fd)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  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>
2024-04-29 21:37:36 +02:00
verdacciobot
6cf165b405 chore: updated static data 2024-04-29 00:12:57 +00:00
Marc Bernard
da50542de1 chore: limit workflows to verdaccio repo (#4599) 2024-04-28 11:52:38 +02:00
Marc Bernard
1bae121dc2 fix: error when writing tarball (missing folder) (#4594)
* fix: error when writing tarball (missing folder)

* changeset
2024-04-25 19:06:51 +02:00
Marc Bernard
4ac3aead4f fix: reduce log to info if database is not found (#4595) 2024-04-25 16:20:17 +02:00
dependabot[bot]
86283342f9 chore(deps): bump actions/checkout from 4.1.2 to 4.1.3 (#4587)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](9bb56186c3...1d96c772d1)

---
updated-dependencies:
- dependency-name: actions/checkout
  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>
2024-04-25 10:16:50 +02:00
dependabot[bot]
40c004c234 chore(deps): bump actions/upload-artifact from 3.1.3 to 4.3.2 (#4588)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.3.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](a8a3f3ad30...1746f4ab65)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-25 10:16:44 +02:00
dependabot[bot]
e8b016aca5 chore(deps): bump github/codeql-action from 3.24.10 to 3.25.1 (#4589)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.10 to 3.25.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4355270be1...c7f9125735)

---
updated-dependencies:
- dependency-name: github/codeql-action
  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>
2024-04-25 10:16:37 +02:00
dependabot[bot]
42f226e6b3 chore(deps): bump actions-js/push from 1.4 to 1.5 (#4590)
Bumps [actions-js/push](https://github.com/actions-js/push) from 1.4 to 1.5.
- [Release notes](https://github.com/actions-js/push/releases)
- [Commits](156f2b10c3...5a7cbd780d)

---
updated-dependencies:
- dependency-name: actions-js/push
  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>
2024-04-25 10:16:28 +02:00
renovate[bot]
2520a74ac3 fix(deps): update dependency marked to v11.2.0 (#4591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-25 10:16:19 +02:00
verdacciobot
dbade09407 chore: updated static data 2024-04-25 00:16:11 +00:00
Tobbe Lundberg
4dc62a8365 fix: adduser error message grammar (#4586)
* fix: adduser error message grammar

* changeset

* include username in changeset according to contribution guidelines
2024-04-23 10:07:35 +02:00
verdacciobot
eb9bbb4313 chore: updated static data 2024-04-22 00:13:38 +00:00
verdacciobot
d411c20570 chore: updated static data 2024-04-18 00:12:47 +00:00
dependabot[bot]
86a99684a3 chore(deps): bump actions/checkout from 3.6.0 to 4.1.2 (#4579)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](f43a0e5ff2...9bb56186c3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 01:09:02 +02:00
verdacciobot
2bf41a480e chore: updated static data 2024-04-15 02:30:36 +00:00
dependabot[bot]
824b43fb43 chore(deps): bump actions/cache from 3.3.3 to 4.0.2 (#4578)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.3 to 4.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](e12d46a63a...0c45773b62)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-14 21:20:28 +02:00
dependabot[bot]
c1385d7655 chore(deps): bump github/codeql-action from 3.24.9 to 3.24.10 (#4580)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.9 to 3.24.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](1b1aada464...4355270be1)

---
updated-dependencies:
- dependency-name: github/codeql-action
  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>
2024-04-14 21:20:20 +02:00
Marc Bernard
f967a69ad3 fix: avoid warning "time for version x already exists" (#4577)
* fix: avoid warning "time for version x already exists"

* changeset
2024-04-11 10:13:55 +02:00
verdacciobot
d5d96f0868 chore: updated static data 2024-04-11 00:13:31 +00:00
verdacciobot
386f19753f chore: updated static data 2024-04-08 00:12:56 +00:00
Juan Picado
a0e4fc9fa0 chore: update intall v5.x docs 2024-04-06 17:57:48 +02:00
Marc Bernard
c9e7c141e8 fix: yarn and pnpm logos on homepage (#4574)
* fix: yarn and pnpm logos on homepage

* yarn logo
2024-04-04 06:58:35 +02:00
verdacciobot
17cf072329 chore: updated static data 2024-04-04 00:15:13 +00:00
Artur
1456bdd4a7 Update 2021-04-14-verdaccio-5-migration-guide.md (#4573) 2024-04-03 11:21:55 +02:00
renovate[bot]
ffb6de3777 chore(deps): update actions/cache digest to e12d46a (#4571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-03 10:38:59 +02:00
renovate[bot]
e32e737018 chore(deps): update actions/checkout digest to f43a0e5 (#4572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-03 10:38:48 +02:00
verdacciobot
a0b65a82d0 chore: updated static data 2024-04-01 00:13:52 +00:00
dependabot[bot]
717fe79fe0 chore(deps): bump github/codeql-action from 3.24.7 to 3.24.9 (#4562)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.7 to 3.24.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](3ab4101902...1b1aada464)

---
updated-dependencies:
- dependency-name: github/codeql-action
  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>
2024-03-28 08:41:54 +01:00
verdacciobot
1ae8f23110 chore: updated static data 2024-03-28 00:13:07 +00:00
dependabot[bot]
3d9847736a chore(deps): bump actions/cache from 3.3.1 to 4.0.2 (#4563)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 4.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.3.1...0c45773b623bea8c8e75f6c82b208c3cf94ea4f9)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-25 21:02:56 +01:00
verdacciobot
31a927a236 chore: updated static data 2024-03-25 00:13:24 +00:00
Juan Picado
af3f7c4797 chore: update versions (next-7) (#4561)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-24 12:34:03 +01:00
Juan Picado
542f9d3760 chore: remove nodejs engine restriction 2024-03-24 12:27:46 +01:00
renovate[bot]
c20adc8ae5 fix(deps): update all package managers (#4557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-23 21:21:52 +01:00
Juan Picado
93c49bd36d chore: update versions (next-7) (#4553)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-23 20:53:44 +01:00
Juan Picado
41eb167943 Update ui.json 2024-03-23 20:43:53 +01:00
Juan Picado
ba53d1edc8 feat: versions filter by semver range (#4555)
* fix: improve dark mode styles

* fix background color

* feat: ui improvements

* add tests
2024-03-23 20:41:19 +01:00
Itamar Gronich
a99a4bb1b3 fix config builder erroring when passed partial config (#4552)
* fix config builder erroring when passed partial config

* add tests and changeset

* update readme

* update readme

---------

Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-03-23 12:19:41 +01:00
Juan Picado
ff1bd1ab7d chore: enable pnpm e2e ci (#4554)
* enable pnpm ci

* Update ci.yml

* remove pnpm 6 and 7

* update readme ci

* Update SECURITY.md

* Update README.md
2024-03-23 11:32:13 +01:00
divdavem
9db15542dc Avoid displaying "prettify pipeline error" if there is no error (#4551) 2024-03-22 09:37:54 +01:00
verdacciobot
9e3085d107 chore: updated static data 2024-03-21 00:13:30 +00:00
dependabot[bot]
51b0f2f4da chore(deps): bump actions/checkout from 3.6.0 to 4.1.2 (#4547)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](f43a0e5ff2...9bb56186c3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 20:03:27 +01:00
dependabot[bot]
755b49bceb chore(deps): bump github/codeql-action from 3.24.6 to 3.24.7 (#4548)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.6 to 3.24.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8a470fddaf...3ab4101902)

---
updated-dependencies:
- dependency-name: github/codeql-action
  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>
2024-03-18 20:03:19 +01:00
verdacciobot
db4b669cfb chore: updated static data 2024-03-18 00:13:50 +00:00
Bruce
3f93858452 Update who-is-using.md (#4546) 2024-03-17 10:16:36 +01:00
Juan Picado
6fbbc40aa0 Update package.json 2024-03-16 18:19:32 +01:00
Juan Picado
4aa4aceafa Update netlify.toml 2024-03-16 18:13:21 +01:00
Juan Picado
487976bd53 Update ui-components.yml 2024-03-16 18:11:30 +01:00
Juan Picado
f7930684f4 Update package.json 2024-03-16 17:58:22 +01:00
Juan Picado
a8e906f935 chore: refactor ui-components ci 2024-03-16 17:54:48 +01:00
verdacciobot
70095c994d chore: updated static data 2024-03-14 00:12:06 +00:00
renovate[bot]
2aa94c3390 fix(deps): update dependency express to v4.18.3 (#4537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 22:19:11 +01:00
verdacciobot
a542aafda2 chore: updated static data 2024-03-11 00:13:13 +00:00
Juan Picado
56713db9a3 chore: update versions (next-7) (#4536)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-10 18:50:50 +01:00
Juan Picado
cce258e4d4 refactor: search package bump up 2024-03-10 18:21:03 +01:00
Juan Picado
87c16127b4 refactor: search package (#4489)
* refactor: search package

refactor: search package

* update deps

* refactor

* refactor tests

* add tests
2024-03-10 17:58:39 +01:00
Timo Peters
bed68b2ceb docs: fix typos in different areas (#4535) 2024-03-07 12:24:52 +01:00
verdacciobot
5328b6cb05 chore: updated static data 2024-03-07 00:10:56 +00:00
dependabot[bot]
16954c3b85 chore(deps): bump github/codeql-action from 3.24.5 to 3.24.6 (#4533)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.5 to 3.24.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](47b3d888fe...8a470fddaf)

---
updated-dependencies:
- dependency-name: github/codeql-action
  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>
2024-03-04 20:53:14 +01:00
dependabot[bot]
1e63e05dc0 chore(deps): bump actions/cache from 3.3.3 to 4.0.1 (#4532)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.3 to 4.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](e12d46a63a...ab5e6d0c87)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 20:53:06 +01:00
verdacciobot
8ecf7adf29 chore: updated static data 2024-03-04 00:12:49 +00:00
272 changed files with 4553 additions and 3205 deletions

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/store': patch
---
chore: fix types for some store tests

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/logger-commons': patch
'@verdaccio/logger-prettify': patch
---
fix: log spacing depending on the FORMAT and COLORS options

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/tarball': patch
'@verdaccio/store': patch
---
feat: add tarball details for published packages

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
---
feat: versions filter by semver range

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/search': patch
'@verdaccio/search-indexer': patch
---
refactor: search package

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/middleware': patch
'@verdaccio/url': patch
---
Improved TS types for renderHTML() and related functions (by @tobbe in #4605)

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/search-indexer': patch
---
fix: remove node engine restriction

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/local-storage': patch
---
chore: reduce log to info if database is not found

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/tarball': patch
'@verdaccio/store': patch
---
revert #4600

View File

@@ -39,7 +39,7 @@
"verdaccio-memory": "11.0.0",
"@verdaccio/ui-theme": "6.0.0",
"@verdaccio/proxy": "6.0.0",
"@verdaccio/search": "6.0.0",
"@verdaccio/search-indexer": "6.0.0",
"@verdaccio/server": "6.0.0",
"@verdaccio/server-fastify": "6.0.0",
"@verdaccio/signature": "6.0.0",
@@ -55,26 +55,46 @@
"verdaccio": "6.0.0",
"@verdaccio/web": "6.0.0",
"@verdaccio/website": "5.20.2",
"@verdaccio/local-publish": "0.0.1"
"@verdaccio/local-publish": "0.0.1",
"@verdaccio/search": "7.0.0-next.0",
"@verdaccio/e2e-cli-pnpm9": "1.0.1"
},
"changesets": [
"angry-trees-tie",
"big-cameras-invent",
"breezy-mayflies-pull",
"chilled-carrots-guess",
"dry-shoes-report",
"eight-icons-heal",
"eight-squids-judge",
"eighty-lobsters-study",
"good-cups-train",
"itchy-mangos-wink",
"long-jars-collect",
"long-moles-attend",
"old-turkeys-heal",
"olive-bananas-wink",
"perfect-chairs-act",
"pink-apples-nail",
"pink-balloons-leave",
"poor-seals-turn",
"quick-buses-scream",
"real-socks-vanish",
"sharp-wolves-carry",
"shiny-worms-retire",
"shy-carrots-compare",
"shy-garlics-cry",
"silent-shirts-knock",
"slow-wasps-glow",
"spicy-birds-flow",
"strange-points-repair",
"stupid-dancers-relate",
"thirty-toes-swim",
"unlucky-cycles-sparkle",
"weak-fans-explain",
"wet-balloons-give",
"wicked-kiwis-check",
"wicked-worms-wash",
"wild-otters-talk",
"young-donuts-own"
]

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/store': patch
---
fix: avoid warning "time for version x already exists"

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/signature': minor
---
support for createCipher backward compatible

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/config': patch
---
fix config builder erroring when passed partial config

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/logger-prettify': patch
---
Avoid displaying "prettify pipeline error" if there is no error

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/url': patch
---
patch(core/url): Throw if VERDACCIO_FORWARDED_PROTO resolves to an array (#4613 by @Tobbe)

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/local-storage': patch
---
fix: error when writing tarball (missing folder)

View File

@@ -0,0 +1,10 @@
---
'@verdaccio/types': minor
'@verdaccio/core': minor
'@verdaccio/signature': minor
'@verdaccio/node-api': minor
'@verdaccio/config': minor
'@verdaccio/auth': minor
---
feat: add migrateToSecureLegacySignature and remove enhancedLegacySignature property

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/auth': patch
---
fix: adduser error message grammar (@tobbe in #4586)

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/store': patch
'@verdaccio/tarball': patch
---
feat: add tarball details for published packages

View File

@@ -8,18 +8,11 @@ updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
# Maintain dependencies for npm
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'daily'
allow:
- dependency-name: '@verdaccio/*'
- dependency-name: 'verdaccio-*'
open-pull-requests-limit: 1
prefix: "[github-actions] "
assignees:
- 'verdacciobot'
- 'verdacciobot'
schedule:
interval: 'monthly'
labels:
- 'bot: dependencies'

View File

@@ -20,7 +20,7 @@ jobs:
if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
steps:
- name: checkout code repository
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
with:
fetch-depth: 0

View File

@@ -18,7 +18,7 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -29,14 +29,10 @@ jobs:
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -47,14 +43,14 @@ jobs:
name: Lint
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -71,14 +67,14 @@ jobs:
name: Format
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -100,14 +96,14 @@ jobs:
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -126,13 +122,13 @@ jobs:
runs-on: windows-latest
name: UI Test E2E
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}

View File

@@ -14,6 +14,9 @@ on:
- 'pnpm-workspace.yaml'
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
prepare:
@@ -27,7 +30,7 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -43,7 +46,7 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -54,7 +57,7 @@ jobs:
name: Lint
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -63,7 +66,7 @@ jobs:
run: |
corepack enable
corepack install
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -79,7 +82,7 @@ jobs:
name: Format
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -88,7 +91,7 @@ jobs:
run: |
corepack enable
corepack install
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -105,11 +108,11 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest]
node_version: [18, 20, 21]
node_version: [18, 20, 21, 22]
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -118,7 +121,7 @@ jobs:
run: |
corepack enable
corepack prepare
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -135,9 +138,9 @@ jobs:
needs: [test]
runs-on: ubuntu-latest
name: synchronize translations
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
if: (github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio') || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
@@ -145,7 +148,7 @@ jobs:
run: |
corepack enable
corepack install
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}

View File

@@ -21,7 +21,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -34,7 +34,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@47b3d888fe66b639e431abf22ebca059152f1eea # v2
uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f # v2
# Override language selection by uncommenting this and choosing your languages
# with:
@@ -42,7 +42,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@47b3d888fe66b639e431abf22ebca059152f1eea # v2
uses: github/codeql-action/autobuild@f079b8493333aace61c81488f8bd40919487bd9f # v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -56,4 +56,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@47b3d888fe66b639e431abf22ebca059152f1eea # v2
uses: github/codeql-action/analyze@f079b8493333aace61c81488f8bd40919487bd9f # v2

View File

@@ -16,7 +16,7 @@ jobs:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build

View File

@@ -13,7 +13,7 @@ jobs:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build

View File

@@ -22,8 +22,9 @@ permissions:
jobs:
docker:
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # tag=v1
- uses: docker/setup-buildx-action@v1
with:

View File

@@ -18,7 +18,7 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -34,7 +34,7 @@ jobs:
- name: Install
run: pnpm install --reporter=silence --ignore-scripts --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -44,7 +44,7 @@ jobs:
needs: [prepare]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node 16
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -53,7 +53,7 @@ jobs:
run: |
corepack enable
corepack prepare
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -65,7 +65,7 @@ jobs:
- name: build
run: pnpm build
- name: Cache packages
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
id: cache-packages
with:
path: ./packages/
@@ -97,7 +97,7 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node }}
@@ -105,7 +105,7 @@ jobs:
run: |
corepack enable
corepack prepare
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -114,7 +114,51 @@ jobs:
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
# with:
# path: ./e2e/
# key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: build e2e
run: pnpm --filter @verdaccio/test-cli-commons build
- name: Test CLI
run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}}
e2e-cli-pnpm:
needs: [prepare, build]
strategy:
fail-fast: true
matrix:
pkg:
[
pnpm8,
pnpm9,
]
node: [20, 21]
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --loglevel debug --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -126,51 +170,6 @@ jobs:
run: pnpm --filter @verdaccio/test-cli-commons build
- name: Test CLI
run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}}
# TODO: fix pnpm setup
# e2e-cli-pnpm:
# needs: [prepare, build]
# strategy:
# fail-fast: true
# matrix:
# pkg:
# [
# pnpm6,
# pnpm7,
# pnpm8
# ]
# node: [20, 21]
# name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
# - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
# with:
# node-version: ${{ matrix.node }}
# - name: Install pnpm
# run: |
# corepack enable
# corepack prepare
# - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
# with:
# path: ~/.pnpm-store
# key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# - name: set store
# run: |
# pnpm config set store-dir ~/.pnpm-store
# - name: Install
# run: pnpm install --loglevel debug --ignore-scripts --registry http://localhost:4873
# - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
# with:
# path: ./packages/
# key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# # - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
# # with:
# # path: ./e2e/
# # key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# - name: build e2e
# run: pnpm --filter @verdaccio/test-cli-commons build
# - name: Test CLI
# run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}}
e2e-cli-yarn:
needs: [prepare, build]
strategy:
@@ -187,7 +186,7 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node }}
@@ -195,7 +194,7 @@ jobs:
run: |
corepack enable
corepack prepare
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -204,7 +203,7 @@ jobs:
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}

View File

@@ -18,7 +18,7 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
@@ -33,7 +33,7 @@ jobs:
run: pnpm build
- name: Test UI
run: pnpm test:e2e:ui
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v3
with:
name: videos
path: /home/runner/work/verdaccio/verdaccio/e2e/ui/cypress/videos

View File

@@ -18,8 +18,9 @@ jobs:
prepare:
name: Run script
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
with:
persist-credentials: false
fetch-depth: 0
@@ -45,7 +46,7 @@ jobs:
- name: format
run: pnpm format
- name: Commit & Push changes
uses: actions-js/push@156f2b10c3aa000c44dbe75ea7018f32ae999772 # tag=v1.4
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # tag=v1.5
with:
github_token: ${{ secrets.TOKEN_VERDACCIOBOT_GITHUB }}
message: "chore: updated static data"

View File

@@ -1,7 +1,9 @@
name: UI Components
on:
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
permissions:
contents: read # to fetch code (actions/checkout)
@@ -17,10 +19,11 @@ jobs:
pull-requests: write # to comment on pull-requests
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
@@ -28,7 +31,7 @@ jobs:
node-version-file: '.nvmrc'
- name: Cache pnpm modules
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
env:
cache-name: cache-pnpm-modules
with:
@@ -48,24 +51,8 @@ jobs:
- name: Copy public content
# the msw.js worker is need it at the storybook-static folder in production
run: cp -R packages/ui-components/public/* packages/ui-components/storybook-static
- name: 🔥 Deploy Production UI Netlify
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
uses: verdaccio/action-netlify-deploy@1c086d59169edeec9254672c7de17d2ceac3928f # v2.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
netlify-site-id: ${{ secrets.NETLIFY_UI_SITE_ID }}
build-dir: './packages/ui-components/storybook-static'
- name: 🤖 Deploy Preview UI Components Netlify
if: github.repository == 'verdaccio/verdaccio'
uses: semoal/action-netlify-deploy@1a53f098745bf78555d11b436f5ee3af87e6b566
id: netlify_preview_ui
with:
draft: true
comment-on-pull-request: true
github-deployment-is-production: false
github-deployment-is-transient: true
github-token: ${{ secrets.GITHUB_TOKEN }}
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
netlify-site-id: ${{ secrets.NETLIFY_UI_SITE_ID }}
build-dir: './packages/ui-components/storybook-static'
- name: Deploy to Netlify
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_UI_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
run: pnpm --filter ...@verdaccio/ui-components netlify:ui:deploy

View File

@@ -2,8 +2,6 @@ name: Verdaccio Website CI
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
permissions:
contents: read # to fetch code (actions/checkout)
@@ -16,6 +14,7 @@ jobs:
pull-requests: write # to comment on pull-requests
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
name: setup verdaccio
services:
verdaccio:
@@ -27,7 +26,7 @@ jobs:
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
@@ -44,7 +43,7 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -55,7 +54,7 @@ jobs:
- name: Build Translations percentage
run: pnpm --filter @verdaccio/crowdin-translations build
- name: Cache Docusaurus Build
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: website/node_modules/.cache/webpack
key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }}
@@ -68,6 +67,7 @@ jobs:
CONTEXT: production
run: pnpm --filter @verdaccio/website netlify:build
- name: Deploy to Netlify
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}

View File

@@ -43,7 +43,7 @@ Google Cloud Storage** or create your own plugin.
Install with npm:
```bash
npm install --location=global verdaccio@next
npm install -g verdaccio@next
```
With `yarn`
@@ -79,12 +79,34 @@ Furthermore, you can read the [**Debugging Guidelines**](https://github.com/verd
You can develop your own [plugins](https://verdaccio.org/docs/plugins) with the [verdaccio generator](https://github.com/verdaccio/generator-verdaccio-plugin). Installing [Yeoman](https://yeoman.io/) is required.
```
npm install --location=global yo
npm install --location=global generator-verdaccio-plugin
npm install -g yo
npm install -g generator-verdaccio-plugin
```
Learn more [here](https://verdaccio.org/docs/dev-plugins) how to develop plugins. Share your plugins with the community.
## Integration Tests
In our compatibility testing project, we're dedicated to ensuring that your favorite commands work seamlessly across different versions of npm, pnpm, and Yarn. From publishing packages to managing dependencies.
Our goal is to give you the confidence to use your preferred package manager without any issues. So dive in, check out our matrix, and see how your commands fare across the board!
[Learn or contribute here](https://github.com/verdaccio/verdaccio/tree/master/e2e/cli)
### Commands
| cmd | npm6 | npm7 | npm8 | npm9 | npm10 | pnpm8 | pnpm9 (beta) | yarn1 | yarn2 | yarn3 | yarn4 |
| --------- | ---- | ---- | ---- | ---- | ----- | ----- | ------------ | ----- | ----- | ----- | ----- |
| publish | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| audit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| deprecate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| ping | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| star | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| stars | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| dist-tag | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
## 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 doing a long support donation - **and your logo will be on this section of the readme.**
@@ -123,7 +145,7 @@ Furthermore, here few examples how to start:
## Watch our Videos
**Node Congress 2022, February 2022, Online Free**
**Node 2022, February 2022, Online Free**
<div>
<a href="https://portal.gitnation.org/contents/five-ways-of-taking-advantage-of-verdaccio-your-private-and-proxy-nodejs-registry">

View File

@@ -34,7 +34,7 @@ Note that time-frame and processes are subject to each programs own policy.
- Report the security issue to the project maintainers directly at verdaccio@pm.me. If the report contains highly sensitive information, please be advised to encrypt your findings using our [PGP key](https://cdn.verdaccio.dev/gpg/publickey.verdaccio@pm.me.asc) which is also available in this document.
Your efforts to responsibly disclose your findings are sincerely appreciated and will be taken into account to acknowledge your contributions.
Your efforts to responsibly disclose your findings are sincerely appreciated. There isn't a security bounty program available, but any security contributions will be duly acknowledged to recognize your valuable input.
## PGP key

View File

@@ -88,7 +88,7 @@ packages:
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish/publish packages
# allow all known users to publish/unpublish packages
# (anyone can register by default, remember?)
publish: $authenticated
unpublish: $authenticated

View File

@@ -90,7 +90,7 @@ packages:
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish/publish packages
# allow all known users to publish/unpublish packages
# (anyone can register by default, remember?)
publish: $authenticated
unpublish: $authenticated

View File

@@ -88,7 +88,7 @@ packages:
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish/publish packages
# allow all known users to publish/unpublish packages
# (anyone can register by default, remember?)
publish: $authenticated
unpublish: $authenticated

View File

@@ -90,7 +90,7 @@ packages:
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish/publish packages
# allow all known users to publish/unpublish packages
# (anyone can register by default, remember?)
publish: $authenticated
unpublish: $authenticated

View File

@@ -5,12 +5,13 @@ internal features.
#### VERDACCIO_LEGACY_ALGORITHM
Allows to define the specific algorithm for the token
signature which by default is `aes-256-ctr`
Allows to define the specific algorithm for the token signature which by default is `aes-256-ctr`. The algorithm must be supported by `crypto.createCipheriv` and `crypto.createDecipheriv`.
Read more here: https://nodejs.org/api/crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv_options
#### VERDACCIO_LEGACY_ENCRYPTION_KEY
By default, the token stores in the database, but using this variable allows to get it from memory
By default, the token stores in the database, but using this variable allows to get it from memory, the length must be 32 characters otherwise will throw an error.
Read more here: https://nodejs.org/api/crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv_options
#### VERDACCIO_PUBLIC_URL

View File

@@ -1,14 +1,14 @@
# Migration guide from Verdaccio 5 to Verdaccio 6
# Migration Guide from Verdaccio 5 to Verdaccio 6
Notes regarding breaking changes for next major release.
> This list might growth over the development.
> This list might growth over the course of development.
## Breaking changes
## Breaking Changes
### New node-api interface [#2165](https://github.com/verdaccio/verdaccio/pull/2165)
If you are using the node-api, the new structure is Promise based and less arguments.
If you are using the `node-api`, the new structure is Promise based and less arguments.
```js
import { runServer } from '@verdaccio/node-api';
@@ -22,7 +22,7 @@ app.listen(4000, (event) => {
});
```
### allow other password hashing algorithms [#1917](https://github.com/verdaccio/verdaccio/pull/1917)
### Allow other password hashing algorithms [#1917](https://github.com/verdaccio/verdaccio/pull/1917)
The current implementation of the `htpasswd` module supports multiple hash formats on verify, but only `crypt` on sign in.
`crypt` is an insecure old format, so to improve the security of the new `verdaccio` release we introduce the support of multiple hash algorithms on sign in step.
@@ -53,21 +53,28 @@ htpasswd:
- The `experiments` configuration is renamed to `flags`. The functionality is exactly the same.
```js
flags: token: false;
search: false;
```yaml
flags:
token: false;
search: false;
```
- The `self_path` property from the config file is being removed in favor of `config_file` full path.
- Refactor `config` module, better types and utilities
### legacy token signature by removing crypto.createDecipher is deprecated [#1953](https://github.com/verdaccio/verdaccio/pull/1953)
### Legacy token signature by removing crypto.createDecipher is deprecated [#1953](https://github.com/verdaccio/verdaccio/pull/1953)
- Replace signature handler for legacy tokens by removing deprecated crypto.createDecipher by createCipheriv
- **The new signature invalidates all previous tokens generated by Verdaccio 5 or previous versions**.
- The secret key must have 32 characters long
> Remediation, update `.verdaccio-db.json` secret field with a secret key with 32 characters.
### Legacy token secret length
If the migration to v6 include an update to node 22 or higher, be aware that token secrets with a length other than 32 are not
supported anymore. A new secret will be generated. See [docs](https://verdaccio.org/docs/6.x/configuration#legacy-token-signature)
for more details.
#### New environment variables
Introduce environment variables for legacy tokens.

View File

@@ -7,18 +7,18 @@
### Commands Tested
| cmd | npm6 | npm7 | npm8 | npm9 | npm10 | pnpm6 | pnpm7 | yarn1 | yarn2 | yarn3 | yarn4 |
| --------- | ---- | ---- | ---- | ---- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
| publish | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| audit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| deprecate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| ping | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| star | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| stars | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| dist-tag | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| cmd | npm6 | npm7 | npm8 | npm9 | npm10 | pnpm8 | pnpm9 (beta) | yarn1 | yarn2 | yarn3 | yarn4 |
| --------- | ---- | ---- | ---- | ---- | ----- | ----- | ------------ | ----- | ----- | ----- | ----- |
| publish | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| audit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| deprecate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| ping | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| star | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| stars | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
| dist-tag | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
> notes:
>

View File

@@ -5,16 +5,16 @@
"main": "./build/index.js",
"types": "./build/index.d.ts",
"devDependencies": {
"@verdaccio/config": "workspace:7.0.0-next-7.11",
"@verdaccio/core": "workspace:7.0.0-next-7.11",
"@verdaccio/types": "workspace:12.0.0-next.2",
"@verdaccio/config": "workspace:7.0.0-next-7.16",
"@verdaccio/core": "workspace:7.0.0-next-7.16",
"@verdaccio/types": "workspace:12.0.0-next-7.3",
"debug": "4.3.4",
"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:7.0.0-next-7.11"
"verdaccio": "workspace:7.0.0-next-7.16"
},
"scripts": {
"test": "jest",

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "10.4.0"
"npm": "10.5.0"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "9.9.2"
"npm": "9.9.3"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "9.9.2"
"npm": "9.9.3"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "9.9.2"
"npm": "9.9.3"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "9.9.2"
"npm": "9.9.3"
},
"scripts": {
"test": "jest"

View File

@@ -1,63 +0,0 @@
# @verdaccio/e2e-cli-pnpm6
## 1.0.1
### Patch Changes
- 351aeeaa8: fix(deps): @verdaccio/utils should be a prod dep of local-storage
- Updated dependencies [351aeeaa8]
- Updated dependencies [d167f92e1]
- Updated dependencies [c383eb68c]
- @verdaccio/test-cli-commons@1.1.0
## 1.0.1-6-next.7
### Patch Changes
- Updated dependencies [c383eb68]
- @verdaccio/test-cli-commons@1.1.0-6-next.7
## 1.0.1-6-next.6
### Patch Changes
- Updated dependencies [d167f92e]
- @verdaccio/test-cli-commons@1.1.0-6-next.6
## 1.0.1-6-next.5
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.5
## 1.0.1-6-next.4
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.4
## 1.0.1-6-next.3
### Patch Changes
- 351aeeaa: fix(deps): @verdaccio/utils should be a prod dep of local-storage
- Updated dependencies [351aeeaa]
- @verdaccio/test-cli-commons@1.0.1-6-next.3
## 1.0.1-6-next.2
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.2
## 1.0.1-6-next.1
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.1
## 1.0.1-6-next.0
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.0

View File

@@ -1,45 +0,0 @@
import { addRegistry, initialSetup, prepareGenericEmptyProject } from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('audit a package', () => {
jest.setTimeout(10000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test.each([['verdaccio-memory', '@verdaccio/cli']])(
'should audit a package %s',
async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0-patch',
registry.port,
registry.getToken(),
registry.getRegistryUrl(),
{ jquery: '3.6.1' }
);
// install is required to create package lock file
await pnpm({ cwd: tempFolder }, 'install', ...addRegistry(registry.getRegistryUrl()));
const resp = await pnpm(
{ cwd: tempFolder },
'audit',
'--json',
...addRegistry(registry.getRegistryUrl())
);
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.metadata).toBeDefined();
expect(parsedBody.actions).toBeDefined();
expect(parsedBody.advisories).toBeDefined();
expect(parsedBody.muted).toBeDefined();
}
);
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,12 +0,0 @@
{
"private": true,
"name": "@verdaccio/e2e-cli-pnpm6",
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"pnpm": "^6.35.1"
},
"scripts": {
"test": "jest"
}
}

View File

@@ -1,14 +0,0 @@
import { SpawnOptions } from 'child_process';
import { join } from 'path';
import { exec } from '@verdaccio/test-cli-commons';
function getCommand() {
return join(__dirname, './node_modules/.bin/pnpm');
}
function pnpm(options: SpawnOptions, ...args: string[]) {
return exec(options, getCommand(), args);
}
export { pnpm };

View File

@@ -1,3 +0,0 @@
{
"extends": "../../../.babelrc"
}

View File

@@ -1,7 +0,0 @@
{
"rules": {
"no-console": 0,
"@typescript-eslint/no-var-requires": 0,
"@typescript-eslint/explicit-member-accessibility": 0
}
}

View File

@@ -1,63 +0,0 @@
# @verdaccio/e2e-cli-pnpm7
## 1.0.1
### Patch Changes
- 351aeeaa8: fix(deps): @verdaccio/utils should be a prod dep of local-storage
- Updated dependencies [351aeeaa8]
- Updated dependencies [d167f92e1]
- Updated dependencies [c383eb68c]
- @verdaccio/test-cli-commons@1.1.0
## 1.0.1-6-next.7
### Patch Changes
- Updated dependencies [c383eb68]
- @verdaccio/test-cli-commons@1.1.0-6-next.7
## 1.0.1-6-next.6
### Patch Changes
- Updated dependencies [d167f92e]
- @verdaccio/test-cli-commons@1.1.0-6-next.6
## 1.0.1-6-next.5
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.5
## 1.0.1-6-next.4
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.4
## 1.0.1-6-next.3
### Patch Changes
- 351aeeaa: fix(deps): @verdaccio/utils should be a prod dep of local-storage
- Updated dependencies [351aeeaa]
- @verdaccio/test-cli-commons@1.0.1-6-next.3
## 1.0.1-6-next.2
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.2
## 1.0.1-6-next.1
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.1
## 1.0.1-6-next.0
### Patch Changes
- @verdaccio/test-cli-commons@1.0.1-6-next.0

View File

@@ -1,115 +0,0 @@
import {
addRegistry,
initialSetup,
pnpmUtils,
prepareGenericEmptyProject,
} from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('deprecate a package', () => {
jest.setTimeout(20000);
let registry;
async function deprecate(tempFolder, packageVersion, registry, message) {
await pnpm(
{ cwd: tempFolder },
'deprecate',
packageVersion,
message,
'--json',
...addRegistry(registry.getRegistryUrl())
);
}
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test.each([['@verdaccio/deprecated-1']])(
'should deprecate a single package %s',
async (pkgName) => {
const message = 'some message';
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
// deprecate one version
await deprecate(tempFolder, `${pkgName}@1.0.0`, registry, message);
// verify is deprecated
const infoBody = await pnpmUtils.getInfoVersions(pnpm, `${pkgName}`, registry);
expect(infoBody.name).toEqual(pkgName);
expect(infoBody.deprecated).toEqual(message);
}
);
test.each([['@verdaccio/deprecated-2']])('should un-deprecate a package %s', async (pkgName) => {
const message = 'some message';
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
// deprecate one version
await deprecate(tempFolder, `${pkgName}@1.0.0`, registry, message);
// verify is deprecated
const infoBody = await pnpmUtils.getInfoVersions(pnpm, `${pkgName}`, registry);
expect(infoBody.deprecated).toEqual(message);
// empty string is same as undeprecate
await deprecate(tempFolder, `${pkgName}@1.0.0`, registry, '');
const infoBody2 = await pnpmUtils.getInfoVersions(pnpm, `${pkgName}`, registry);
expect(infoBody2.deprecated).toBeUndefined();
});
test.each([['@verdaccio/deprecated-3']])(
'should deprecate a multiple packages %s',
async (pkgName) => {
const message = 'some message';
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
// publish 1.0.0
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
// publish 1.1.0
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
// publish 1.2.0
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
// publish 1.3.0
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
// // deprecate all version
await deprecate(tempFolder, pkgName, registry, message);
// verify is deprecated
for (let v of ['1.0.0', '1.1.0', '1.2.0', '1.3.0']) {
const infoResp = await pnpmUtils.getInfoVersions(pnpm, `${pkgName}@${v}`, registry);
expect(infoResp.deprecated).toEqual(message);
}
// publish normal version
// publish 1.4.0
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
const infoResp = await pnpmUtils.getInfoVersions(pnpm, `${pkgName}@1.4.0`, registry);
// must be not deprecated
expect(infoResp.deprecated).toBeUndefined();
}
);
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,91 +0,0 @@
import {
addRegistry,
initialSetup,
pnpmUtils,
prepareGenericEmptyProject,
} from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('publish a package', () => {
jest.setTimeout(20000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test.each([['@foo/foo', 'foo']])('should list dist-tags for %s', async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry, ['--tag', 'beta']);
const resp2 = await pnpm(
{ cwd: tempFolder },
'dist-tag',
'ls',
'--json',
...addRegistry(registry.getRegistryUrl())
);
expect(resp2.stdout).toEqual('beta: 1.1.0latest: 1.0.0');
});
test.each([['@verdaccio/bar']])('should remove tag with dist-tags for %s', async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry, ['--tag', 'beta']);
const resp2 = await pnpm(
{ cwd: tempFolder },
'dist-tag',
'rm',
`${pkgName}@1.1.0`,
'beta',
...addRegistry(registry.getRegistryUrl())
);
expect(resp2.stdout).toEqual('-beta: @verdaccio/bar@1.1.0');
});
test.each([['@verdaccio/five']])(
'should add tag to package and version with dist-tags for %s',
async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
await pnpmUtils.bumbUp(pnpm, tempFolder, registry);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
const resp2 = await pnpm(
{ cwd: tempFolder },
'dist-tag',
'add',
`${pkgName}@1.1.0`,
'alfa',
...addRegistry(registry.getRegistryUrl())
);
expect(resp2.stdout).toEqual(`+alfa: ${pkgName}@1.1.0`);
}
);
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,31 +0,0 @@
import { addRegistry, initialSetup } from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('install a package', () => {
jest.setTimeout(10000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test('should run pnpm info json body', async () => {
const resp = await pnpm(
{},
'info',
'verdaccio',
'--json',
...addRegistry(registry.getRegistryUrl())
);
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.name).toEqual('verdaccio');
expect(parsedBody.dependencies).toBeDefined();
});
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,36 +0,0 @@
import { addRegistry, initialSetup, prepareGenericEmptyProject } from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('install a project packages', () => {
jest.setTimeout(80000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test('should run npm install json body', async () => {
const { tempFolder } = await prepareGenericEmptyProject(
'something',
'1.0.0-patch',
registry.port,
registry.getToken(),
registry.getRegistryUrl(),
{ react: '18.2.0' }
);
const resp = await pnpm(
{ cwd: tempFolder },
'install',
'--reporter=default',
...addRegistry(registry.getRegistryUrl())
);
expect(resp.stdout).toMatch(/react/);
});
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,3 +0,0 @@
const config = require('../jest.config');
module.exports = { ...config };

View File

@@ -1,24 +0,0 @@
import { addRegistry, initialSetup } from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('ping registry', () => {
jest.setTimeout(10000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test('should ping registry', async () => {
const resp = await pnpm({}, 'ping', '--json', ...addRegistry(registry.getRegistryUrl()));
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.registry).toEqual(registry.getRegistryUrl() + '/');
});
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,41 +0,0 @@
import { addRegistry, initialSetup, prepareGenericEmptyProject } from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('install a package', () => {
jest.setTimeout(10000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test.each([['verdaccio-memory', 'verdaccio', '@verdaccio/foo', '@verdaccio/some-foo']])(
'should publish a package %s',
async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0-patch',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
const resp = await pnpm(
{ cwd: tempFolder },
'publish',
'--json',
...addRegistry(registry.getRegistryUrl())
);
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.name).toEqual(pkgName);
expect(parsedBody.files).toBeDefined();
expect(parsedBody.files).toBeDefined();
}
);
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,33 +0,0 @@
import { addRegistry, initialSetup } from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('search a package', () => {
jest.setTimeout(10000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test('should search a package', async () => {
const resp = await pnpm(
{},
'search',
'@verdaccio/cli',
'--json',
...addRegistry(registry.getRegistryUrl())
);
const parsedBody = JSON.parse(resp.stdout as string);
const pkgFind = parsedBody.find((item) => {
return item.name === '@verdaccio/cli';
});
expect(pkgFind.name).toEqual('@verdaccio/cli');
});
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,89 +0,0 @@
import {
addRegistry,
initialSetup,
pnpmUtils,
prepareGenericEmptyProject,
} from '@verdaccio/test-cli-commons';
import { pnpm } from './utils';
describe('star a package', () => {
jest.setTimeout(20000);
let registry;
beforeAll(async () => {
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
});
test.each([['@verdaccio/foo']])('should star a package %s', async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0-patch',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
const resp = await pnpm(
{ cwd: tempFolder },
'star',
pkgName,
...addRegistry(registry.getRegistryUrl())
);
expect(resp.stdout).toEqual(`${pkgName}`);
});
test.each([['@verdaccio/bar']])('should unstar a package %s', async (pkgName) => {
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0-patch',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
const resp = await pnpm(
{ cwd: tempFolder },
'star',
pkgName,
...addRegistry(registry.getRegistryUrl())
);
expect(resp.stdout).toEqual(`${pkgName}`);
const resp1 = await pnpm(
{ cwd: tempFolder },
'unstar',
pkgName,
...addRegistry(registry.getRegistryUrl())
);
expect(resp1.stdout).toEqual(`${pkgName}`);
});
test('should list stars of a user %s', async () => {
const pkgName = '@verdaccio/stars';
const { tempFolder } = await prepareGenericEmptyProject(
pkgName,
'1.0.0-patch',
registry.port,
registry.getToken(),
registry.getRegistryUrl()
);
await pnpmUtils.publish(pnpm, tempFolder, pkgName, registry);
await pnpm({ cwd: tempFolder }, 'star', pkgName, ...addRegistry(registry.getRegistryUrl()));
const resp = await pnpm(
{ cwd: tempFolder },
'stars',
...addRegistry(registry.getRegistryUrl())
);
// side effects: this result is affected the the package published in the previous step
expect(resp.stdout).toEqual(`@verdaccio/foo@verdaccio/stars`);
});
afterAll(async () => {
registry.stop();
});
});

View File

@@ -1,8 +0,0 @@
{
"extends": "../../../tsconfig.reference.json",
"references": [
{
"path": "../cli-commons"
}
]
}

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"pnpm": "^8.0.0-alpha.0"
"pnpm": "8.15.5"
},
"scripts": {
"test": "jest"

View File

@@ -1,10 +1,10 @@
{
"private": true,
"name": "@verdaccio/e2e-cli-pnpm7",
"name": "@verdaccio/e2e-cli-pnpm9",
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"pnpm": "^7.27.1"
"pnpm": "9.0.0-alpha.10"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"yarn": "1.22.21"
"yarn": "1.22.22"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"@yarnpkg/cli-dist": "3.8.0"
"@yarnpkg/cli-dist": "3.8.1"
},
"scripts": {
"test": "jest"

View File

@@ -3,7 +3,7 @@
"name": "@verdaccio/e2e-cli-yarn4",
"version": "1.0.1",
"dependencies": {
"@yarnpkg/cli-dist": "4.1.0",
"@yarnpkg/cli-dist": "4.1.1",
"@verdaccio/test-cli-commons": "workspace:1.1.0"
},
"scripts": {

View File

@@ -3,9 +3,9 @@
"name": "@verdaccio/e2e-ui",
"version": "2.0.0",
"devDependencies": {
"verdaccio": "workspace:7.0.0-next-7.11",
"@verdaccio/core": "workspace:7.0.0-next-7.11",
"@verdaccio/config": "workspace:7.0.0-next-7.11",
"verdaccio": "workspace:7.0.0-next-7.16",
"@verdaccio/core": "workspace:7.0.0-next-7.16",
"@verdaccio/config": "workspace:7.0.0-next-7.16",
"@verdaccio/test-helper": "workspace:3.0.0-next-7.2",
"debug": "4.3.4",
"cypress": "^13.6.0",

View File

@@ -1,7 +1,7 @@
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-Frame-Options = "SAMEORIGIN"
X-XSS-Protection = "1; mode=block"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "no-referrer"

View File

@@ -1,5 +1,74 @@
# @verdaccio/api
## 7.0.0-next-7.16
### Patch Changes
- Updated dependencies [e5624e1]
- Updated dependencies [5bfab62]
- @verdaccio/store@7.0.0-next-7.16
- @verdaccio/logger@7.0.0-next-7.16
- @verdaccio/middleware@7.0.0-next-7.16
- @verdaccio/auth@7.0.0-next-7.16
- @verdaccio/core@7.0.0-next-7.16
- @verdaccio/config@7.0.0-next-7.16
- @verdaccio/utils@7.0.0-next-7.16
## 7.0.0-next-7.15
### Patch Changes
- Updated dependencies [7400830]
- Updated dependencies [bd8703e]
- @verdaccio/store@7.0.0-next-7.15
- @verdaccio/core@7.0.0-next-7.15
- @verdaccio/config@7.0.0-next-7.15
- @verdaccio/auth@7.0.0-next-7.15
- @verdaccio/logger@7.0.0-next-7.15
- @verdaccio/middleware@7.0.0-next-7.15
- @verdaccio/utils@7.0.0-next-7.15
## 7.0.0-next-7.14
### Patch Changes
- Updated dependencies [b0946b2]
- Updated dependencies [f967a69]
- Updated dependencies [4dc62a8]
- Updated dependencies [253cc13]
- @verdaccio/middleware@7.0.0-next-7.14
- @verdaccio/store@7.0.0-next-7.14
- @verdaccio/auth@7.0.0-next-7.14
- @verdaccio/core@7.0.0-next-7.14
- @verdaccio/config@7.0.0-next-7.14
- @verdaccio/utils@7.0.0-next-7.14
- @verdaccio/logger@7.0.0-next-7.14
## 7.0.0-next-7.13
### Patch Changes
- Updated dependencies [a99a4bb]
- @verdaccio/config@7.0.0-next-7.13
- @verdaccio/auth@7.0.0-next-7.13
- @verdaccio/middleware@7.0.0-next-7.13
- @verdaccio/store@7.0.0-next-7.13
- @verdaccio/logger@7.0.0-next-7.13
- @verdaccio/core@7.0.0-next-7.13
- @verdaccio/utils@7.0.0-next-7.13
## 7.0.0-next-7.12
### Patch Changes
- @verdaccio/store@7.0.0-next-7.12
- @verdaccio/core@7.0.0-next-7.12
- @verdaccio/config@7.0.0-next-7.12
- @verdaccio/auth@7.0.0-next-7.12
- @verdaccio/middleware@7.0.0-next-7.12
- @verdaccio/utils@7.0.0-next-7.12
- @verdaccio/logger@7.0.0-next-7.12
## 7.0.0-next-7.11
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/api",
"version": "7.0.0-next-7.11",
"version": "7.0.0-next-7.16",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -38,25 +38,25 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/auth": "workspace:7.0.0-next-7.11",
"@verdaccio/config": "workspace:7.0.0-next-7.11",
"@verdaccio/core": "workspace:7.0.0-next-7.11",
"@verdaccio/logger": "workspace:7.0.0-next-7.11",
"@verdaccio/middleware": "workspace:7.0.0-next-7.11",
"@verdaccio/store": "workspace:7.0.0-next-7.11",
"@verdaccio/utils": "workspace:7.0.0-next-7.11",
"@verdaccio/auth": "workspace:7.0.0-next-7.16",
"@verdaccio/config": "workspace:7.0.0-next-7.16",
"@verdaccio/core": "workspace:7.0.0-next-7.16",
"@verdaccio/logger": "workspace:7.0.0-next-7.16",
"@verdaccio/middleware": "workspace:7.0.0-next-7.16",
"@verdaccio/store": "workspace:7.0.0-next-7.16",
"@verdaccio/utils": "workspace:7.0.0-next-7.16",
"abortcontroller-polyfill": "1.7.5",
"body-parser": "1.20.2",
"cookies": "0.9.0",
"debug": "4.3.4",
"express": "4.18.2",
"express": "4.19.2",
"lodash": "4.17.21",
"mime": "2.6.0",
"semver": "7.6.0"
},
"devDependencies": {
"@verdaccio/test-helper": "workspace:3.0.0-next-7.2",
"@verdaccio/types": "workspace:12.0.0-next.2",
"@verdaccio/types": "workspace:12.0.0-next-7.3",
"mockdate": "3.0.5",
"nock": "13.5.1",
"supertest": "6.3.4"

View File

@@ -67,7 +67,7 @@ export default function (route: Router, auth: Auth, storage: Storage): void {
const { package: pkgName, filename } = req.params;
const abort = new AbortController();
try {
const stream = (await storage.getTarballNext(pkgName, filename, {
const stream = (await storage.getTarball(pkgName, filename, {
signal: abort.signal,
// TODO: review why this param
// enableRemote: true,

View File

@@ -50,12 +50,13 @@ export default function (route, auth: Auth, storage: Storage): void {
from = parseInt(from, 10) || 0;
try {
debug('storage search initiated');
data = await storage.search({
query,
url,
abort,
});
debug('stream finish');
debug('storage items tota: %o', data.length);
const checkAccessPromises: searchUtils.SearchItemPkg[] = await Promise.all(
data.map((pkgItem) => {
return checkAccess(pkgItem, auth, req.remote_user);

View File

@@ -1,5 +1,73 @@
# @verdaccio/auth
## 7.0.0-next-7.16
### Patch Changes
- @verdaccio/logger@7.0.0-next-7.16
- @verdaccio/loaders@7.0.0-next-7.16
- verdaccio-htpasswd@12.0.0-next-7.16
- @verdaccio/core@7.0.0-next-7.16
- @verdaccio/config@7.0.0-next-7.16
- @verdaccio/utils@7.0.0-next-7.16
- @verdaccio/signature@7.0.0-next-7.5
## 7.0.0-next-7.15
### Minor Changes
- bd8703e: feat: add migrateToSecureLegacySignature and remove enhancedLegacySignature property
### Patch Changes
- Updated dependencies [bd8703e]
- @verdaccio/core@7.0.0-next-7.15
- @verdaccio/signature@7.0.0-next-7.5
- @verdaccio/config@7.0.0-next-7.15
- @verdaccio/loaders@7.0.0-next-7.15
- @verdaccio/logger@7.0.0-next-7.15
- verdaccio-htpasswd@12.0.0-next-7.15
- @verdaccio/utils@7.0.0-next-7.15
## 7.0.0-next-7.14
### Patch Changes
- 4dc62a8: fix: adduser error message grammar (@tobbe in #4586)
- Updated dependencies [b6d5652]
- @verdaccio/signature@7.0.0-next-7.4
- @verdaccio/core@7.0.0-next-7.14
- @verdaccio/config@7.0.0-next-7.14
- @verdaccio/loaders@7.0.0-next-7.14
- verdaccio-htpasswd@12.0.0-next-7.14
- @verdaccio/utils@7.0.0-next-7.14
- @verdaccio/logger@7.0.0-next-7.14
## 7.0.0-next-7.13
### Patch Changes
- Updated dependencies [a99a4bb]
- @verdaccio/config@7.0.0-next-7.13
- @verdaccio/loaders@7.0.0-next-7.13
- verdaccio-htpasswd@12.0.0-next-7.13
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/logger@7.0.0-next-7.13
- @verdaccio/core@7.0.0-next-7.13
- @verdaccio/utils@7.0.0-next-7.13
## 7.0.0-next-7.12
### Patch Changes
- @verdaccio/core@7.0.0-next-7.12
- @verdaccio/config@7.0.0-next-7.12
- @verdaccio/loaders@7.0.0-next-7.12
- verdaccio-htpasswd@12.0.0-next-7.12
- @verdaccio/utils@7.0.0-next-7.12
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/logger@7.0.0-next-7.12
## 7.0.0-next-7.11
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/auth",
"version": "7.0.0-next-7.11",
"version": "7.0.0-next-7.16",
"description": "logger",
"main": "./build/index.js",
"types": "./build/index.d.ts",
@@ -38,21 +38,21 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.11",
"@verdaccio/config": "workspace:7.0.0-next-7.11",
"@verdaccio/loaders": "workspace:7.0.0-next-7.11",
"@verdaccio/logger": "workspace:7.0.0-next-7.11",
"@verdaccio/signature": "workspace:7.0.0-next.3",
"@verdaccio/utils": "workspace:7.0.0-next-7.11",
"@verdaccio/core": "workspace:7.0.0-next-7.16",
"@verdaccio/config": "workspace:7.0.0-next-7.16",
"@verdaccio/loaders": "workspace:7.0.0-next-7.16",
"@verdaccio/logger": "workspace:7.0.0-next-7.16",
"@verdaccio/signature": "workspace:7.0.0-next-7.5",
"@verdaccio/utils": "workspace:7.0.0-next-7.16",
"debug": "4.3.4",
"lodash": "4.17.21",
"verdaccio-htpasswd": "workspace:12.0.0-next-7.11"
"verdaccio-htpasswd": "workspace:12.0.0-next-7.16"
},
"devDependencies": {
"express": "4.18.2",
"express": "4.19.2",
"supertest": "6.3.4",
"@verdaccio/middleware": "workspace:7.0.0-next-7.11",
"@verdaccio/types": "workspace:12.0.0-next.2"
"@verdaccio/middleware": "workspace:7.0.0-next-7.16",
"@verdaccio/types": "workspace:12.0.0-next-7.3"
},
"funding": {
"type": "opencollective",

View File

@@ -13,7 +13,6 @@ import {
pluginUtils,
warningUtils,
} from '@verdaccio/core';
import '@verdaccio/core';
import { asyncLoadPlugin } from '@verdaccio/loaders';
import { logger } from '@verdaccio/logger';
import {
@@ -21,6 +20,7 @@ import {
aesEncryptDeprecated,
parseBasicPayload,
signPayload,
utils as signatureUtils,
} from '@verdaccio/signature';
import {
AllowAccess,
@@ -239,7 +239,7 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
password,
function (err: VerdaccioError | null, ok?: boolean | string): void {
if (err) {
debug('the user %o could not being added. Error: %o', user, err?.message);
debug('the user %o could not be added. Error: %o', user, err?.message);
return cb(err);
}
if (ok) {
@@ -481,14 +481,9 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
next: Function
): void {
debug('handle legacy api middleware');
debug('api middleware secret %o', typeof secret === 'string');
debug('api middleware has a secret? %o', typeof secret === 'string');
debug('api middleware authorization %o', typeof authorization === 'string');
const credentials: any = getMiddlewareCredentials(
security,
secret,
authorization,
this.config?.getEnhancedLegacySignature()
);
const credentials: any = getMiddlewareCredentials(security, secret, authorization);
debug('api middleware credentials %o', credentials?.name);
if (credentials) {
const { user, password } = credentials;
@@ -588,13 +583,12 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
* Encrypt a string.
*/
public aesEncrypt(value: string): string | void {
// enhancedLegacySignature enables modern aes192 algorithm signature
if (this.config?.getEnhancedLegacySignature()) {
debug('signing with enhaced aes legacy');
if (this.secret.length === signatureUtils.TOKEN_VALID_LENGTH) {
debug('signing with enhanced aes legacy');
const token = aesEncrypt(value, this.secret);
return token;
} else {
debug('signing with enhaced aes deprecated legacy');
debug('signing with enhanced aes deprecated legacy');
// deprecated aes (legacy) signature, only must be used for legacy version
const token = aesEncryptDeprecated(Buffer.from(value), this.secret).toString('base64');
return token;

View File

@@ -1,66 +0,0 @@
import buildDebug from 'debug';
import _ from 'lodash';
import { TOKEN_BASIC, TOKEN_BEARER } from '@verdaccio/core';
import { aesDecrypt, parseBasicPayload } from '@verdaccio/signature';
import { Security } from '@verdaccio/types';
import { AuthMiddlewarePayload } from './types';
import {
convertPayloadToBase64,
isAESLegacy,
parseAuthTokenHeader,
verifyJWTPayload,
} from './utils';
const debug = buildDebug('verdaccio:auth:utils');
export function parseAESCredentials(authorizationHeader: string, secret: string) {
debug('parseAESCredentials');
const { scheme, token } = parseAuthTokenHeader(authorizationHeader);
// basic is deprecated and should not be enforced
// basic is currently being used for functional test
if (scheme.toUpperCase() === TOKEN_BASIC.toUpperCase()) {
debug('legacy header basic');
const credentials = convertPayloadToBase64(token).toString();
return credentials;
} else if (scheme.toUpperCase() === TOKEN_BEARER.toUpperCase()) {
debug('legacy header bearer');
const credentials = aesDecrypt(token, secret);
return credentials;
}
}
export function getMiddlewareCredentials(
security: Security,
secretKey: string,
authorizationHeader: string
): AuthMiddlewarePayload {
debug('getMiddlewareCredentials');
// comment out for debugging purposes
if (isAESLegacy(security)) {
debug('is legacy');
const credentials = parseAESCredentials(authorizationHeader, secretKey);
if (!credentials) {
debug('parse legacy credentials failed');
return;
}
const parsedCredentials = parseBasicPayload(credentials);
if (!parsedCredentials) {
debug('parse legacy basic payload credentials failed');
return;
}
return parsedCredentials;
}
const { scheme, token } = parseAuthTokenHeader(authorizationHeader);
debug('is jwt');
if (_.isString(token) && scheme.toUpperCase() === TOKEN_BEARER.toUpperCase()) {
return verifyJWTPayload(token, secretKey);
}
}

View File

@@ -40,12 +40,8 @@ export function parseAuthTokenHeader(authorizationHeader: string): AuthTokenHead
return { scheme, token };
}
export function parseAESCredentials(
authorizationHeader: string,
secret: string,
enhanced: boolean
) {
debug('parseAESCredentials');
export function parseAESCredentials(authorizationHeader: string, secret: string) {
debug('parseAESCredentials init');
const { scheme, token } = parseAuthTokenHeader(authorizationHeader);
// basic is deprecated and should not be enforced
@@ -57,27 +53,29 @@ export function parseAESCredentials(
return credentials;
} else if (scheme.toUpperCase() === TOKEN_BEARER.toUpperCase()) {
debug('legacy header bearer');
debug('legacy header enhanced?', enhanced);
const credentials = enhanced
? aesDecrypt(token.toString(), secret)
: // FUTURE: once deprecated legacy is removed this logic won't be longer need it
aesDecryptDeprecated(convertPayloadToBase64(token), secret).toString('utf-8');
return credentials;
debug('secret length %o', secret.length);
const isLegacyUnsecure = secret.length > 32;
debug('is legacy unsecure %o', isLegacyUnsecure);
if (isLegacyUnsecure) {
debug('legacy unsecure enabled');
return aesDecryptDeprecated(convertPayloadToBase64(token), secret).toString('utf-8');
} else {
debug('legacy secure enabled');
return aesDecrypt(token.toString(), secret);
}
}
}
export function getMiddlewareCredentials(
security: Security,
secretKey: string,
authorizationHeader: string,
enhanced: boolean = true
authorizationHeader: string
): AuthMiddlewarePayload {
debug('getMiddlewareCredentials');
debug('getMiddlewareCredentials init');
// comment out for debugging purposes
if (isAESLegacy(security)) {
debug('is legacy');
const credentials = parseAESCredentials(authorizationHeader, secretKey, enhanced);
const credentials = parseAESCredentials(authorizationHeader, secretKey);
if (!credentials) {
debug('parse legacy credentials failed');
return;

View File

@@ -558,9 +558,10 @@ describe('AuthTest', () => {
const getServer = async function (auth) {
const app = express();
app.use(express.json({ strict: false, limit: '10mb' }));
app.use(auth.apiJWTmiddleware());
// @ts-expect-error
app.use(errorReportingMiddleware(logger));
app.use(auth.apiJWTmiddleware());
app.get('/*', (req, res, next) => {
if ((req as $RequestExtend).remote_user.error) {
next(new Error((req as $RequestExtend).remote_user.error));
@@ -575,6 +576,7 @@ describe('AuthTest', () => {
app.use(final);
return app;
};
describe('legacy signature', () => {
describe('error cases', () => {
test('should handle invalid auth token', async () => {
@@ -599,16 +601,14 @@ describe('AuthTest', () => {
});
});
describe('deprecated legacy handling forceEnhancedLegacySignature=false', () => {
describe('deprecated legacy handling', () => {
test('should handle valid auth token', async () => {
const payload = 'juan:password';
// const token = await signPayload(remoteUser, '12345');
const config: Config = new AppConfig(
{ ...authProfileConf },
{ forceEnhancedLegacySignature: false }
);
const config: Config = new AppConfig({ ...authProfileConf });
// intended to force key generator (associated with mocks above)
config.checkSecretKey(undefined);
// 64 characters secret long
config.checkSecretKey('35fabdd29b820d39125e76e6d85cc294');
const auth = new Auth(config);
await auth.init();
const token = auth.aesEncrypt(payload) as string;
@@ -622,10 +622,7 @@ describe('AuthTest', () => {
test('should handle invalid auth token', async () => {
const payload = 'juan:password';
const config: Config = new AppConfig(
{ ...authPluginFailureConf },
{ forceEnhancedLegacySignature: false }
);
const config: Config = new AppConfig({ ...authPluginFailureConf });
// intended to force key generator (associated with mocks above)
config.checkSecretKey(undefined);
const auth = new Auth(config);
@@ -689,8 +686,7 @@ describe('AuthTest', () => {
{
...authProfileConf,
...{ security: { api: { jwt: { sign: { expiresIn: '29d' } } } } },
},
{ forceEnhancedLegacySignature: false }
}
);
// intended to force key generator (associated with mocks above)
config.checkSecretKey(undefined);
@@ -698,7 +694,6 @@ describe('AuthTest', () => {
await auth.init();
const token = (await auth.jwtEncrypt(
createRemoteUser('jwt_user', [ROLES.ALL]),
// @ts-expect-error
config.security.api.jwt.sign
)) as string;
const app = await getServer(auth);

View File

@@ -1,5 +1,52 @@
# @verdaccio/cli
## 7.0.0-next-7.16
### Patch Changes
- @verdaccio/logger@7.0.0-next-7.16
- @verdaccio/node-api@7.0.0-next-7.16
- @verdaccio/core@7.0.0-next-7.16
- @verdaccio/config@7.0.0-next-7.16
## 7.0.0-next-7.15
### Patch Changes
- Updated dependencies [bd8703e]
- @verdaccio/core@7.0.0-next-7.15
- @verdaccio/node-api@7.0.0-next-7.15
- @verdaccio/config@7.0.0-next-7.15
- @verdaccio/logger@7.0.0-next-7.15
## 7.0.0-next-7.14
### Patch Changes
- @verdaccio/node-api@7.0.0-next-7.14
- @verdaccio/core@7.0.0-next-7.14
- @verdaccio/config@7.0.0-next-7.14
- @verdaccio/logger@7.0.0-next-7.14
## 7.0.0-next-7.13
### Patch Changes
- Updated dependencies [a99a4bb]
- @verdaccio/config@7.0.0-next-7.13
- @verdaccio/node-api@7.0.0-next-7.13
- @verdaccio/logger@7.0.0-next-7.13
- @verdaccio/core@7.0.0-next-7.13
## 7.0.0-next-7.12
### Patch Changes
- @verdaccio/node-api@7.0.0-next-7.12
- @verdaccio/core@7.0.0-next-7.12
- @verdaccio/config@7.0.0-next-7.12
- @verdaccio/logger@7.0.0-next-7.12
## 7.0.0-next-7.11
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/cli",
"version": "7.0.0-next-7.11",
"version": "7.0.0-next-7.16",
"author": {
"name": "Juan Picado",
"email": "juanpicado19@gmail.com"
@@ -43,10 +43,10 @@
"start": "ts-node src/index.ts"
},
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.11",
"@verdaccio/config": "workspace:7.0.0-next-7.11",
"@verdaccio/logger": "workspace:7.0.0-next-7.11",
"@verdaccio/node-api": "workspace:7.0.0-next-7.11",
"@verdaccio/core": "workspace:7.0.0-next-7.16",
"@verdaccio/config": "workspace:7.0.0-next-7.16",
"@verdaccio/logger": "workspace:7.0.0-next-7.16",
"@verdaccio/node-api": "workspace:7.0.0-next-7.16",
"clipanion": "3.2.1",
"envinfo": "7.11.0",
"kleur": "4.1.5",

View File

@@ -1,5 +1,46 @@
# @verdaccio/config
## 7.0.0-next-7.16
### Patch Changes
- @verdaccio/core@7.0.0-next-7.16
- @verdaccio/utils@7.0.0-next-7.16
## 7.0.0-next-7.15
### Minor Changes
- bd8703e: feat: add migrateToSecureLegacySignature and remove enhancedLegacySignature property
### Patch Changes
- Updated dependencies [bd8703e]
- @verdaccio/core@7.0.0-next-7.15
- @verdaccio/utils@7.0.0-next-7.15
## 7.0.0-next-7.14
### Patch Changes
- @verdaccio/core@7.0.0-next-7.14
- @verdaccio/utils@7.0.0-next-7.14
## 7.0.0-next-7.13
### Patch Changes
- a99a4bb: fix config builder erroring when passed partial config
- @verdaccio/core@7.0.0-next-7.13
- @verdaccio/utils@7.0.0-next-7.13
## 7.0.0-next-7.12
### Patch Changes
- @verdaccio/core@7.0.0-next-7.12
- @verdaccio/utils@7.0.0-next-7.12
## 7.0.0-next-7.11
### Minor Changes

View File

@@ -1,5 +1,74 @@
# @verdaccio/config
## Overview
The `@verdaccio/config` package provides a powerful configuration builder constructor for programmatically creating configuration objects for Verdaccio, a lightweight private npm proxy registry. With this package, users can easily manage various configuration aspects such as package access, uplinks, security settings, authentication, logging, and storage options.
## Installation
You can install via npm:
```bash
npm install @verdaccio/config
```
## Usage
To start using `@verdaccio/config`, import the `ConfigBuilder` class and begin constructing your configuration object:
## `ConfigBuilder` constructor
The `ConfigBuilder` class is a helper configuration builder constructor used to programmatically create configuration objects for testing or other purposes.
```typescript
import { ConfigBuilder } from '@verdaccio/config';
// Create a new configuration builder instance
const config = ConfigBuilder.build({ security: { api: { legacy: false } } });
// Add package access configuration
configBuilder.addPackageAccess('@scope/*', { access: 'read', publish: 'write' });
// Add an uplink configuration
configBuilder.addUplink('npmjs', { url: 'https://registry.npmjs.org/' });
// Add security configuration
configBuilder.addSecurity({ allow_offline: true });
// Get the configuration object
const config = configBuilder.getConfig();
// Get the configuration yaml text
const config = configBuilder.getAsYaml();
```
### Methods
- `addPackageAccess(pattern: string, pkgAccess: PackageAccessYaml)`: Adds package access configuration.
- `addUplink(id: string, uplink: UpLinkConf)`: Adds an uplink configuration.
- `addSecurity(security: Partial<Security>)`: Adds security configuration.
- `addAuth(auth: Partial<AuthConf>)`: Adds authentication configuration.
- `addLogger(log: LoggerConfItem)`: Adds logger configuration.
- `addStorage(storage: string | object)`: Adds storage configuration.
- `getConfig(): ConfigYaml`: Retrieves the configuration object.
- `getAsYaml(): string`: Retrieves the configuration object as YAML format.
## `getDefaultConfig`
This method is available in the package's index and retrieves the default configuration object.
```typescript
import { getDefaultConfig } from '@verdaccio/config';
const defaultConfig = getDefaultConfig();
```
## Other Methods
- `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
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/config",
"version": "7.0.0-next-7.11",
"version": "7.0.0-next-7.16",
"description": "logger",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -38,8 +38,8 @@
"build": "pnpm run build:js && pnpm run build:types"
},
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.11",
"@verdaccio/utils": "workspace:7.0.0-next-7.11",
"@verdaccio/core": "workspace:7.0.0-next-7.16",
"@verdaccio/utils": "workspace:7.0.0-next-7.16",
"debug": "4.3.4",
"js-yaml": "4.1.0",
"lodash": "4.17.21",

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