Compare commits

...

133 Commits

Author SHA1 Message Date
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
Juan Picado
2c9fe963ff chore: update versions (next-7) (#4525)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-03 19:22:16 +01:00
renovate[bot]
31844e2e77 fix(deps): update dependency semver to v7.6.0 (#4524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 19:13:10 +01:00
dependabot[bot]
605cff9099 chore(deps): bump github/codeql-action from 3.24.0 to 3.24.5 (#4520)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.0 to 3.24.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e8893c57a1...47b3d888fe)

---
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-03 19:08:15 +01:00
Juan Picado
c9962fe1d5 feat: forbidden user interface (#4523)
* feat: forbidden user interface

* Delete App.stories.tsx

* Update package.json

* Delete package.svg

* fix
2024-03-03 19:06:39 +01:00
Juan Picado
4a81ed791a Delete .netlify directory 2024-03-03 14:09:03 +01:00
Juan Picado
8783e3a88a chore: update website deployment (#4320)
* test

* Update website.yml

* Update website.yml

* test2

* Update package.json

* Update package.json

* Update package.json

* clean up

* Update website.yml

* remove dependency
2024-03-03 13:49:00 +01:00
Gweesin Chan
7034c358d5 docs: fix typos in CONTRIBUTING (#4521) 2024-03-02 10:40:51 +01:00
verdacciobot
f09f30cada chore: updated static data 2024-02-29 00:12:05 +00:00
verdacciobot
03acf73a56 chore: updated static data 2024-02-26 00:12:56 +00:00
Juan Picado
dabf77d32d website: update banners url 2024-02-24 20:52:02 +01:00
verdacciobot
fbcc36fbb6 chore: updated static data 2024-02-22 00:12:51 +00:00
Juan Picado
66e4c89d3e chore: update versions (next-7) (#4515)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-20 22:01:58 +01:00
Juan Picado
521040847c fix: ui dialog break pages on open due remark error (#4514)
* fix: ui dialog break pages on open due remark error

* Update pnpm-lock.yaml
2024-02-20 21:41:04 +01:00
verdacciobot
c8b70a5be4 chore: updated static data 2024-02-19 00:13:12 +00:00
Juan Picado
a90b19302f chore: website update logos 2024-02-18 21:38:43 +01:00
Juan Picado
1bae2c431a chore: add ui tests (#4512)
* chore: ui test coverage

* ui test coverage

* add tests

* add dep
2024-02-18 21:08:17 +01:00
renovate[bot]
82ae08e3c8 fix(deps): update all package managers (master) (#4511)
* fix(deps): update all package managers

* fix tests

* test

* improve ci

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-02-18 11:33:07 +01:00
verdacciobot
bf3ae08646 chore: updated static data 2024-02-15 00:12:33 +00:00
Marc Bernard
e4e1171af8 docs: fix typos in readme (#4506) 2024-02-14 07:16:34 +01:00
Marc Bernard
8ace3245ff docs: add example for integrating GitHub registry with uplinks (#4505) 2024-02-13 15:52:29 +01:00
dependabot[bot]
487e2f77fe chore(deps): bump actions/setup-node from 4.0.1 to 4.0.2 (#4501)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](b39b52d121...60edb5dd54)

---
updated-dependencies:
- dependency-name: actions/setup-node
  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-02-13 08:15:45 +01:00
Marc Bernard
1d96983c24 fix: remove version from website title (#4504) 2024-02-13 06:46:23 +01:00
Juan Picado
03173212df chore: update versions (next-7) (#4503)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-12 20:43:58 +01:00
Marc Bernard
c807f0c4fb fix: store readme when publishing locally (#4493)
* fix: store readme when publishing locally

* Update actions test

* Update spicy-birds-flow.md
2024-02-12 13:50:58 +01:00
verdacciobot
2446a11db5 chore: updated static data 2024-02-12 00:12:40 +00:00
Juan Picado
dd952ec055 chore: update versions (next-7) (#4474)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-11 23:16:30 +01:00
Marc Bernard
3323599268 fix: render READMEs with correct font and highlighting (#4494) 2024-02-11 18:05:48 +01:00
Juan Picado
d4d137f664 chore: add pqina as sponsor website 2024-02-11 17:44:31 +01:00
Juan Picado
ec9647b6ce Update package.spec.ts 2024-02-11 17:08:45 +01:00
Juan Picado
b8618e6e97 chore: flaky test proxy error handler 2024-02-11 16:58:41 +01:00
Juan Picado
50eb7b2ca4 chore: flaky test local storage (#4497)
* chore: flaky test local storage

* fix test
2024-02-11 16:30:26 +01:00
Juan Picado
6bae1c0739 chore: fix flaky test 2024-02-11 15:31:59 +01:00
verdacciobot
817075685b chore: updated static data 2024-02-08 00:12:10 +00:00
dependabot[bot]
e5f924c19c chore(deps): bump github/codeql-action from 3.23.2 to 3.24.0 (#4492)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.23.2 to 3.24.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b7bf0a3ed3...e8893c57a1)

---
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-02-05 21:46:37 +01:00
dependabot[bot]
3ed2104471 chore(deps): bump treosh/lighthouse-ci-action from 10.1.0 to 11.4.0 (#4491)
Bumps [treosh/lighthouse-ci-action](https://github.com/treosh/lighthouse-ci-action) from 10.1.0 to 11.4.0.
- [Release notes](https://github.com/treosh/lighthouse-ci-action/releases)
- [Commits](03becbfc54...1b0e7c3327)

---
updated-dependencies:
- dependency-name: treosh/lighthouse-ci-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-02-05 21:46:29 +01:00
verdacciobot
0f3a4da825 chore: updated static data 2024-02-05 00:13:35 +00:00
renovate[bot]
b638695bd8 chore(deps): update marocchino/sticky-pull-request-comment digest to 331f8f5 (#4488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 10:10:43 +01:00
renovate[bot]
71d5326930 chore(deps): replace dependency npm-run-all with npm-run-all2 5.0.0 (#4487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 10:10:29 +01:00
verdacciobot
8755f01a97 chore: updated static data 2024-02-01 00:13:14 +00:00
renovate[bot]
d540bc6647 chore(deps): update all test dependencies (#4481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 21:35:48 +01:00
renovate[bot]
2c29445faf chore(deps): update babel monorepo to v7.23.9 (#4477)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 21:35:35 +01:00
Juan Picado
119df261cc Update renovate.json 2024-01-29 21:34:48 +01:00
Juan Picado
2c66d49da7 Update renovate.json 2024-01-29 21:30:52 +01:00
Juan Picado
8b3563d151 Update renovate.json 2024-01-29 21:29:43 +01:00
dependabot[bot]
e83af641ba chore(deps): bump github/codeql-action from 2.23.2 to 3.23.2 (#4483) 2024-01-29 17:41:36 +01:00
verdacciobot
b7ee3c4096 chore: updated static data 2024-01-29 00:12:40 +00:00
renovate[bot]
575facc5c3 chore(deps): update dependency webpack to v5.90.0 (#4482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 13:45:34 +01:00
Juan Picado
f22dca8d32 Update renovate.json 2024-01-27 13:09:35 +01:00
renovate[bot]
2453be40b4 chore(deps): update github/codeql-action digest to 2f93e43 (#4475)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 12:42:56 +01:00
renovate[bot]
735814dfdc chore(deps): update typescript dependencies (#4478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 12:42:44 +01:00
renovate[bot]
15e0417878 fix(deps): update material-ui monorepo to v5.15.6 (#4479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 12:42:36 +01:00
verdacciobot
7bc60b7177 chore: updated static data 2024-01-25 00:13:14 +00:00
Juan Picado
74cd588828 fix: bug on change password npm profile (#4473)
* fix: bug on change password npm profile

* add new case
2024-01-24 23:14:38 +01:00
renovate[bot]
8380b8e980 fix(deps): update all test dependencies (#4443)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 09:04:35 +01:00
dependabot[bot]
2afac3cb80 chore(deps): bump github/codeql-action from 2.23.1 to 3.23.1 (#4470)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.23.1 to 3.23.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4759df8df7...0b21cf2492)

---
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-01-22 19:05:01 +01:00
Juan Picado
c366af5370 Update ui-components.yml 2024-01-22 08:11:54 +01:00
verdacciobot
3fdff8321b chore: updated static data 2024-01-22 00:13:41 +00:00
renovate[bot]
b06e8f584f chore(deps): update actions/upload-artifact digest to a8a3f3a (#4466) 2024-01-21 12:54:42 +01:00
renovate[bot]
0f7271cddf chore(deps): update dependency sass to v1.70.0 (#4462)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-21 09:09:41 +01:00
dependabot[bot]
20cbf5b3bd chore(deps): bump actions/upload-artifact from 3.1.3 to 4.1.0 (#4441)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.1.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](a8a3f3ad30...1eb3cb2b3e)

---
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-01-21 09:07:15 +01:00
renovate[bot]
d45bf93501 chore(deps): update github/codeql-action digest to 4759df8 (#4460)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 16:40:25 +01:00
renovate[bot]
7f0161370b fix(deps): update material-ui monorepo to v5.15.5 (#4461) 2024-01-20 15:46:38 +01:00
dependabot[bot]
f1ca952b8b chore(deps): bump github/codeql-action from 2.23.1 to 3.23.1 (#4459)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.23.1 to 3.23.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](4759df8df7...0b21cf2492)

---
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-01-20 15:04:27 +01:00
Juan Picado
b6150b63aa Update renovate.json 2024-01-20 14:27:34 +01:00
renovate[bot]
5f83b328a2 chore(deps): update dependency css-loader to v6.9.1 (#4458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 14:14:03 +01:00
renovate[bot]
11e71ce8d9 chore(deps): update github/codeql-action digest to 4759df8 (#4451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 14:12:34 +01:00
renovate[bot]
3685a982cd fix(deps): update dependency js-base64 to v3.7.6 (#4456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 14:12:16 +01:00
renovate[bot]
1f936defc7 fix(deps): update dependency usehooks-ts to v2.9.5 (#4457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 14:12:06 +01:00
Juan Picado
fcc1ca51ae Update renovate.json 2024-01-20 14:03:04 +01:00
renovate[bot]
2acf0d4cbb chore(deps): update typescript dependencies (master) (#4442)
* chore(deps): update typescript dependencies

* Update proxy.ts

* Update request.ts

* Update local-fs.test.ts

* Update renovate.json

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-01-20 13:59:24 +01:00
renovate[bot]
3d368fc456 chore(deps): update dependency nodemon to v3.0.3 (#4454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 13:09:30 +01:00
renovate[bot]
a21dbc7447 chore(deps): update dependency @crowdin/cli to v3.16.1 (#4452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 12:38:23 +01:00
verdacciobot
f9982c5fda chore: updated static data 2024-01-18 00:12:50 +00:00
Juan Picado
cea53128d8 Update renovate.json 2024-01-15 07:25:55 +01:00
Juan Picado
f599e24668 Update renovate.json 2024-01-15 07:21:06 +01:00
verdacciobot
6d6f4d7833 chore: updated static data 2024-01-15 00:13:49 +00:00
renovate[bot]
5baf74bbf7 chore(deps): update dependency nock to v13.5.0 (#4429)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 20:48:20 +01:00
Juan Picado
4fc7fc6bcb update doc 2024-01-14 20:35:17 +01:00
renovate[bot]
1b8b74c364 fix(deps): update dependency sonic-boom to v3.8.0 (#4393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 20:29:09 +01:00
renovate[bot]
c7fba8f8bb fix(deps): update material-ui monorepo to v5.15.4 (master) (#4419)
* fix(deps): update material-ui monorepo to v5.15.4

* remove snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-01-14 20:24:33 +01:00
renovate[bot]
a919c26da5 chore(deps): update dependency supertest to v6.3.4 (#4425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 18:05:50 +01:00
renovate[bot]
61eff4c007 fix(deps): update dependency npm to v10.3.0 (#4421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 17:50:53 +01:00
renovate[bot]
269ff273e5 chore(deps): update actions/cache digest to e12d46a (#4406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 13:10:27 +01:00
renovate[bot]
ff7761ddf1 chore(deps): update babel monorepo to v7.23.8 (#4400)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 13:10:15 +01:00
renovate[bot]
874cdd0249 chore(deps): update dependency css-loader to v6.9.0 (#4420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 12:56:25 +01:00
renovate[bot]
0aa7cf5c63 chore(deps): update dependency @testing-library/dom to v9.3.4 (master) (#4401)
* chore(deps): update dependency @testing-library/dom to v9.3.4

* Update htpasswd.test.ts

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-01-14 12:56:15 +01:00
renovate[bot]
6feb2a8b1d fix(deps): update dependency @crowdin/crowdin-api-client to v1.29.5 (#4414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 12:41:24 +01:00
renovate[bot]
cb3ebe575f fix(deps): update dependency usehooks-ts to v2.9.4 (#4416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 12:36:48 +01:00
Juan Picado
beb9ca2eea Update ui-components.yml 2024-01-14 12:25:35 +01:00
Juan Picado
282f9ce2b0 Update ui-components.yml 2024-01-14 12:24:42 +01:00
Juan Picado
4782bdd5e3 chore: update versions (next-7) (#4417)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-14 10:56:23 +01:00
Juan Picado
07a8dd3cd2 changeset release 2024-01-14 10:22:21 +01:00
Juan Picado
4f70a46585 changeset release 2024-01-14 10:20:39 +01:00
Juan Picado
172691ef1d update changeet 2024-01-14 10:17:05 +01:00
renovate[bot]
2dbfde9b7d fix(deps): update dependency react-hook-form to v7.49.3 (#4415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 09:53:06 +01:00
renovate[bot]
44017ff2da chore(deps): update dependency style-loader to v3.3.4 (#4412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 09:31:07 +01:00
renovate[bot]
6faecee7e6 fix(deps): update all linting dependencies (#4413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-14 09:30:55 +01:00
renovate[bot]
3d94001b49 chore(deps): update dependency @types/validator to v13.11.8 (#4410) 2024-01-13 17:39:52 +01:00
renovate[bot]
5351356cb7 chore(deps): update dependency mini-css-extract-plugin to v2.7.7 (#4411) 2024-01-13 17:35:28 +01:00
renovate[bot]
bf6343e3c7 fix(deps): update dependency usehooks-ts to v2.9.3 (#4395) 2024-01-13 17:11:11 +01:00
renovate[bot]
8ab1cf1bc0 chore(deps): update all linting dependencies (#4405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 21:45:22 +01:00
renovate[bot]
e63722a7a6 chore(deps): update dependency @types/node to v20.11.0 (#4391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 13:23:44 +01:00
verdacciobot
6c1d2fca6a chore: updated static data 2024-01-11 00:12:50 +00:00
renovate[bot]
c65f9fefc2 chore(deps): update github/codeql-action digest to 8b7fcbf (#4399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 22:39:38 +01:00
verdacciobot
66f9a17189 chore: updated static data 2024-01-08 00:13:14 +00:00
Juan Picado
49a1fc11c2 docs: update website 6.x 2024-01-07 11:44:42 +01:00
314 changed files with 46304 additions and 10256 deletions

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,7 @@
---
'@verdaccio/ui-theme': minor
'@verdaccio/ui-components': minor
'@verdaccio/config': minor
---
feat: forbidden user interface

View File

@@ -1,6 +1,6 @@
{
"mode": "pre",
"tag": "next",
"tag": "next-7",
"initialVersions": {
"@verdaccio/test-cli-commons": "1.1.0",
"@verdaccio/e2e-cli-npm6": "1.0.1",
@@ -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,21 +55,33 @@
"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",
"breezy-mayflies-pull",
"chilled-carrots-guess",
"eight-squids-judge",
"eighty-lobsters-study",
"good-cups-train",
"long-jars-collect",
"old-turkeys-heal",
"olive-bananas-wink",
"perfect-chairs-act",
"pink-apples-nail",
"real-socks-vanish",
"shiny-worms-retire",
"shy-carrots-compare",
"shy-garlics-cry",
"silent-shirts-knock",
"slow-wasps-glow",
"spicy-birds-flow",
"strange-points-repair",
"thirty-toes-swim",
"weak-fans-explain",
"wild-otters-talk",
"young-donuts-own"
]
}

View File

@@ -0,0 +1,5 @@
---
'verdaccio': patch
---
chore: test release

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,6 @@
---
'@verdaccio/store': patch
'@verdaccio/test-helper': patch
---
fix: store readme when publishing locally

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
---
fix: render READMEs with correct font and highlighting

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
---
fix: ui dialog break pages on open due remark error

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/api': patch
---
fix: bug on change password npm profile

View File

@@ -20,21 +20,21 @@ jobs:
if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
steps:
- name: checkout code repository
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
env:
NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
- name: install pnpm
run: npm i pnpm@8.9.0 -g
env:
NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
- name: Install pnpm
run: |
corepack enable
corepack install
- name: setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER

View File

@@ -18,9 +18,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -36,7 +36,7 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -47,14 +47,14 @@ jobs:
name: Lint
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # 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@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -71,14 +71,14 @@ jobs:
name: Format
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # 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@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -100,14 +100,14 @@ jobs:
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
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@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -126,13 +126,13 @@ jobs:
runs-on: windows-latest
name: UI Test E2E
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # 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@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # 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,9 +30,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -43,7 +46,7 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -54,16 +57,16 @@ jobs:
name: Lint
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -79,16 +82,16 @@ jobs:
name: Format
needs: prepare
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -109,16 +112,16 @@ jobs:
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -137,15 +140,15 @@ jobs:
name: synchronize translations
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # 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@9bb56186c3b09b4f86b1c65136769dd318469633 # 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@1500a131381b66de0c52ac28abb13cd79f4b7ecc # v2
uses: github/codeql-action/init@3ab4101902695724f9365a384f86c1074d94e18c # 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@1500a131381b66de0c52ac28abb13cd79f4b7ecc # v2
uses: github/codeql-action/autobuild@3ab4101902695724f9365a384f86c1074d94e18c # 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@1500a131381b66de0c52ac28abb13cd79f4b7ecc # v2
uses: github/codeql-action/analyze@3ab4101902695724f9365a384f86c1074d94e18c # v2

View File

@@ -16,13 +16,13 @@ jobs:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: npm setup

View File

@@ -13,13 +13,13 @@ jobs:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: npm setup

View File

@@ -23,7 +23,7 @@ jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # tag=v1
- uses: docker/setup-buildx-action@v1
with:

View File

@@ -3,6 +3,9 @@ name: E2E CLI
on: [pull_request]
permissions:
contents: read
concurrency:
group: e2e-ci-${{ github.ref }}
cancel-in-progress: true
jobs:
prepare:
runs-on: ubuntu-latest
@@ -15,9 +18,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -31,7 +34,7 @@ jobs:
- name: Install
run: pnpm install --reporter=silence --ignore-scripts --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -41,16 +44,16 @@ jobs:
needs: [prepare]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node 16
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -62,7 +65,7 @@ jobs:
- name: build
run: pnpm build
- name: Cache packages
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
id: cache-packages
with:
path: ./packages/
@@ -80,7 +83,7 @@ jobs:
e2e-cli-npm:
needs: [prepare, build]
strategy:
fail-fast: false
fail-fast: false
matrix:
pkg:
[
@@ -94,15 +97,15 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # 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
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -111,6 +114,50 @@ 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@ab5e6d0c87105b4c9c2047343972218f562e4319 # 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@9bb56186c3b09b4f86b1c65136769dd318469633 # 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/
@@ -123,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@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # 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:
@@ -184,15 +186,15 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # 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
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -201,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@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
- uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}

View File

@@ -3,6 +3,9 @@ name: E2E UI
on: [pull_request]
permissions:
contents: read
concurrency:
group: e2e-ui-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
@@ -15,9 +18,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm

View File

@@ -19,11 +19,11 @@ jobs:
name: Run script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: 18.x
- name: install pnpm

View File

@@ -1,19 +1,9 @@
name: UI Components
on:
on:
workflow_dispatch:
pull_request:
branches-ignore:
- 'renovate/*'
- 'dependabot/*'
paths:
- .github/workflows/ui-components.yml
- 'packages/ui-components/**'
- 'package.json'
- 'pnpm-workspace.yaml'
- 'pnpm-lock.yaml'
schedule:
- cron: '0 0 * * 1'
- cron: '0 0 * * *'
permissions:
contents: read # to fetch code (actions/checkout)
@@ -32,15 +22,15 @@ jobs:
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Use Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Cache pnpm modules
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
env:
cache-name: cache-pnpm-modules
with:
@@ -60,24 +50,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,13 +2,6 @@ name: Verdaccio Website CI
on:
workflow_dispatch:
pull_request:
branches-ignore:
- 'renovate/*'
- 'dependabot/*'
paths:
- 'website/**'
- './.github/workflows/website.yml'
schedule:
- cron: '0 0 * * *'
@@ -34,10 +27,10 @@ jobs:
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3
- name: Node
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -51,7 +44,7 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -62,94 +55,21 @@ jobs:
- name: Build Translations percentage
run: pnpm --filter @verdaccio/crowdin-translations build
- name: Cache Docusaurus Build
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v3
with:
path: website/node_modules/.cache/webpack
key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: cache/webpack-${{github.ref}}
# Will deploy to production on:
# 1st: When a push occurs on master branch
# 2nd: When we force the worflow dispatch through the UI
- name: Build Production
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.event_name == 'workflow_dispatch'
env:
CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
SENTRY_KEY: ${{ secrets.SENTRY_KEY }}
CONTEXT: production
run: pnpm --filter @verdaccio/website netlify:build:production
- name: 🔥 Deploy Production Netlify
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
uses: semoal/action-netlify-deploy@1a53f098745bf78555d11b436f5ee3af87e6b566
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
netlify-site-id: ${{ secrets.NETLIFY_SITE_ID }}
build-dir: './website/build'
# Will deploy to Preview URL, only when a pull request is open with changes on the website
- name: Build Deployment Preview
run: pnpm --filter @verdaccio/website netlify:build
- name: Deploy to Netlify
env:
CONTEXT: deploy-preview
run: pnpm --filter ...@verdaccio/website netlify:build:deployPreview
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
run: pnpm --filter ...@verdaccio/website netlify:deploy
- name: 🤖 Deploy Preview Netlify
if: github.repository == 'verdaccio/verdaccio'
uses: semoal/action-netlify-deploy@1a53f098745bf78555d11b436f5ee3af87e6b566
id: netlify_preview
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_SITE_ID }}
build-dir: './website/build'
- name: Audit preview URL with Lighthouse
if: github.repository == 'verdaccio/verdaccio'
id: lighthouse_audit
uses: treosh/lighthouse-ci-action@03becbfc543944dd6e7534f7ff768abb8a296826 # tag=10.1.0
with:
urls: |
${{ steps.netlify_preview.outputs.preview-url }}
uploadArtifacts: true
temporaryPublicStorage: true
- name: Format lighthouse score
id: format_lighthouse_score
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const result = ${{ steps.lighthouse_audit.outputs.manifest }}[0].summary
const links = ${{ steps.lighthouse_audit.outputs.links }}
const formatResult = (res) => Math.round((res * 100))
Object.keys(result).forEach(key => result[key] = formatResult(result[key]))
const score = res => res >= 90 ? '🟢' : res >= 50 ? '🟠' : '🔴'
const comment = [
`⚡️ [Lighthouse report](${Object.values(links)[0]}) for the changes in this PR:`,
'| Category | Score |',
'| --- | --- |',
`| ${score(result.performance)} Performance | ${result.performance} |`,
`| ${score(result.accessibility)} Accessibility | ${result.accessibility} |`,
`| ${score(result['best-practices'])} Best practices | ${result['best-practices']} |`,
`| ${score(result.seo)} SEO | ${result.seo} |`,
' ',
`*Lighthouse ran on [${Object.keys(links)[0]}](${Object.keys(links)[0]})*`
].join('\n')
core.setOutput("comment", comment);
- name: Add comment to PR
if: github.repository == 'verdaccio/verdaccio'
id: comment_to_pr
uses: marocchino/sticky-pull-request-comment@efaaab3fd41a9c3de579aba759d2552635e590fd # v2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
number: ${{ github.event.issue.number }}
delete: true
header: lighthouse
message: |
${{ steps.format_lighthouse_score.outputs.comment }}

View File

@@ -1,10 +0,0 @@
module.exports = {
onPreBuild: async ({ utils: { build, run } }) => {
try {
await run.command("npm install -g pnpm")
await run.command("pnpm install --ignore-scripts --frozen-lockfile")
} catch (error) {
return build.failBuild(error)
}
}
}

View File

@@ -1,2 +0,0 @@
name: netlify-plugin-pnpm
inputs: []

View File

@@ -78,14 +78,14 @@ pnpm build
pnpm test
```
Verdaccio is a mono repository. To run the tests for for a specific package:
Verdaccio is a mono repository. To run the tests for a specific package:
```shell
cd packages/store
pnpm test
```
or an specific test in that package:
or a specific test in that package:
```shell
pnpm test test/merge.dist.tags.spec.ts
@@ -129,7 +129,7 @@ The user interface is split in two packages, the `/packages/plugins/ui-theme` an
Go to `/packages/ui-component` and run `pnpm watch` to enable _babel_ in watch mode, every change on the components will be hot reloaded in combination with the `pnpm start` command.
Any change on the server packages, must be build independently (server do not has hot reload, `pnpm start` should be triggered again).
Any change on the server packages, must be build independently (server does not have hot reload, `pnpm start` should be triggered again).
Any interaction with the server should be done through the port `8000` eg: `npm login --registry http://localhost:8000` .
@@ -142,7 +142,7 @@ Any interaction with the server should be done through the port `8000` eg: `npm
#### Debugging compiled code {#debugging-compiled-code}
Currently you can only run pre-compiled packages in debug mode. To enable debug
Currently, you can only run pre-compiled packages in debug mode. To enable debug
while running add the `verdaccio` namespace using the `DEBUG` environment
variable, like this:
@@ -164,7 +164,7 @@ of the output is sent to the logger module.
#### Testing your changes in a local registry {#testing-local-registry}
Once you have perform your changes in the code base, the build and tests passes you can publish a local version:
Once you have performed your changes in the code base, the build and tests passes you can publish a local version:
- Ensure you have built all modules by running `pnpm build` (or the one you have modified)
- Run `pnpm local:publish:release` to launch a local registry and publish all packages into it. This command will be alive until server is killed (Control Key + C)
@@ -181,7 +181,7 @@ npm i -g verdaccio --registry=http://localhost:4873
verdaccio
```
If you perform more changes in the source code, repeat this process, there is not _hot reloading_ support.
If you perform more changes in the source code, repeat this process, there is no _hot reloading_ support.
## Feature Request {#feature-request}
@@ -208,7 +208,7 @@ a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues),
> **NOTE: Verdaccio still does not support all npm commands. Some were not
> considered important and others have not been requested yet.**
### What's is not considered a bug?
### What is not considered a bug?
- _Third party integrations_: proxies integrations, external plugins
- _Package managers_: If a package manager does not support a specific command
@@ -272,7 +272,7 @@ information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)
#### Caveats
Feel free to commit as much times you want in your branch, but keep on mind on
Feel free to commit as many times you want in your branch, but keep on mind on
this repository we `git squash` on merge by default, as we like to maintain a
clean git history.
@@ -359,7 +359,7 @@ The last step is to confirm your changeset or abort the operation:
🦋 info /Users/user/verdaccio.clone/.changeset/light-scissors-smell.md
```
Once the changeset is added (all will have an unique name) you can freely edit
Once the changeset is added (all will have a unique name) you can freely edit
using markdown, adding additional information, code snippets or whatever else
you consider to be relevant.
@@ -395,7 +395,7 @@ For adding a new **language** on the UI follow these steps:
1. Ensure the **language** has been enabled, must be visible in the `crowdin` platform.
2. Find in the explorer the file `en.US.json` in the path `packages/plugins/ui-theme/src/i18n/crowdin/ui.json` and complete the translations, **not need to find approval on this**.
3. Into the project, add a new field into `packages/plugins/ui-theme/src/i18n/crowdin/ui.json` file, in the section `lng`, the new language, eg: `{ lng: {korean:"Korean"}}`. (This file is English based, once the PR has been merged, this string will be available in crowdin for translate to the targeted language).
4. Add the language, [flag icon](https://www.npmjs.com/package/country-flag-icons), and the menu key fort he new language eg: `menuKey: 'lng.korean'` to the file `packages/plugins/ui-theme/src/i18n/enabledLanguages.ts`.
4. Add the language, [flag icon](https://www.npmjs.com/package/country-flag-icons), and the menu key for the new language eg: `menuKey: 'lng.korean'` to the file `packages/plugins/ui-theme/src/i18n/enabledLanguages.ts`.
5. For local testing, read `packages/plugins/ui-theme/src/i18n/ABOUT_TRANSLATIONS.md`.
6. Add a `changeset` file, see more info below.

View File

@@ -1,4 +1,4 @@
[![BannerUK](https://cdn.verdaccio.dev/readme/banner-uk.svg)](https://donate.redcrossredcrescent.org/ua/donate/~my-donation?_cv=1)
[![BannerHelp](https://cdn.verdaccio.dev/readme/banner-uk.svg)](https://u24.gov.ua)
> Verdaccio stands for **peace**, stop the war, we will be yellow / blue 🇺🇦 until that happens.
@@ -85,9 +85,31 @@ npm install --location=global 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 do a long support donation - **and your logo will be on this section of the readme.**
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.**
**[Donate](https://github.com/sponsors/verdaccio)** 💵👍🏻 starting from _$1/month_ or just one single contribution.
@@ -113,7 +135,7 @@ If you want to use a modified version of some 3rd-party package (for example, yo
### E2E Testing
Verdaccio has proved to be a lightweight registry that can be
booted in a couple of seconds, fast enough for any CI. Many open source projects use verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **babel.js**, **angular-cli** or **docusaurus**. You can read more in [here](https://verdaccio.org/docs/e2e).
booted in a couple of seconds, fast enough for any CI. Many open source projects use Verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **babel.js**, **angular-cli** or **docusaurus**. You can read more in [here](https://verdaccio.org/docs/e2e).
Furthermore, here few examples how to start:
@@ -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">
@@ -200,7 +222,7 @@ docker pull verdaccio/verdaccio:nightly-master
Available as [tags](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
### Running verdaccio using Docker
### Running Verdaccio using Docker
To run the docker container:
@@ -212,35 +234,35 @@ Docker examples are available [in this repository](https://github.com/verdaccio/
## Compatibility
Verdaccio aims to support all features of a standard npm client that make sense to support in private repository. Unfortunately, it isn't always possible.
Verdaccio aims to support all features of a standard npm client that make sense to support in a private repository. Unfortunately, it isn't always possible.
### Basic features
- Installing packages (npm install, npm upgrade, etc.) - **supported**
- Publishing packages (npm publish) - **supported**
- Installing packages (`npm install`, `npm update`, etc.) - **supported**
- Publishing packages (`npm publish`) - **supported**
### Advanced package control
- Unpublishing packages (npm unpublish) - **supported**
- Tagging (npm tag) - **supported**
- Deprecation (npm deprecate) - **supported**
- Unpublishing packages (`npm unpublish`) - **supported**
- Tagging (`npm dist-tag`) - **supported**
- Deprecation (`npm deprecate`) - **supported**
### User management
- Registering new users (npm adduser {newuser}) - **supported**
- Change password (npm profile set password) - **supported**
- Transferring ownership (npm owner add {user} {pkg}) - not supported, _PR-welcome_
- Token (npm token) - **supported**
- Registering new users (`npm adduser {newuser}`) - **supported**
- Change password (`npm profile set password`) - **supported**
- Transferring ownership (`npm owner add {user} {pkg}`) - not supported, _PR-welcome_
- Token (`npm token`) - **supported**
### Miscellany
### Miscellaneous
- Searching (npm search) - **supported** (cli / browser)
- Ping (npm ping) - **supported**
- Starring (npm star, npm unstar, npm stars) - **supported**
- Searching (`npm search`) - **supported** (cli / browser)
- Ping (`npm ping`) - **supported**
- Starring (`npm star`, `npm unstar`, `npm stars`) - **supported**
### Security
- npm/yarn audit - **supported**
- Audit (`npm/yarn audit`) - **supported**
## Report a vulnerability
@@ -269,7 +291,7 @@ Thanks to the following companies to help us to achieve our goals providing free
| ![priscilawebdev](https://avatars2.githubusercontent.com/u/29228205?s=120&v=4) | ![DanielRuf](https://avatars3.githubusercontent.com/u/827205?s=120&v=4) |
| [@priscilawebdev](https://twitter.com/priscilawebdev) | [@DanielRufde](https://twitter.com/DanielRufde) |
You can find and chat with then over Discord, click [here](http://chat.verdaccio.org) or follow them at _Twitter_.
You can find and chat with them over Discord, click [here](http://chat.verdaccio.org) or follow them at _Twitter_.
## Who is using Verdaccio?
@@ -323,7 +345,7 @@ This project exists thanks to all the people who contribute. [[Contribute](CONTR
### FAQ / Contact / Troubleshoot
If you have any issue you can try the following options, do no desist to ask or check our issues database, perhaps someone has asked already what you are looking for.
If you have any issue you can try the following options. Do no hesitate to ask or check our issues database. Perhaps someone has asked already what you are looking for.
- [Blog](https://verdaccio.org/blog/)
- [Donations](https://github.com/sponsors/verdaccio)

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

@@ -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,8 +5,8 @@
"main": "./build/index.js",
"types": "./build/index.d.ts",
"devDependencies": {
"@verdaccio/config": "workspace:7.0.0-next.6",
"@verdaccio/core": "workspace:7.0.0-next.6",
"@verdaccio/config": "workspace:7.0.0-next-7.13",
"@verdaccio/core": "workspace:7.0.0-next-7.13",
"@verdaccio/types": "workspace:12.0.0-next.2",
"debug": "4.3.4",
"fs-extra": "11.2.0",
@@ -14,7 +14,7 @@
"got": "11.8.6",
"js-yaml": "4.1.0",
"lodash": "4.17.21",
"verdaccio": "workspace:7.0.0-next.6"
"verdaccio": "workspace:7.0.0-next-7.13"
},
"scripts": {
"test": "jest",

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "10.2.5"
"npm": "10.4.0"
},
"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,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,12 +0,0 @@
{
"private": true,
"name": "@verdaccio/e2e-cli-pnpm7",
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"pnpm": "^7.27.1"
},
"scripts": {
"test": "jest"
}
}

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-pnpm6",
"name": "@verdaccio/e2e-cli-pnpm9",
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"pnpm": "^6.35.1"
"pnpm": "9.0.0-alpha.10"
},
"scripts": {
"test": "jest"

View File

@@ -18,7 +18,7 @@ describe('audit a package yarn 2', () => {
{
packageName: '@scope/name',
version: '1.0.0',
dependencies: { jquery: '3.0.0' },
dependencies: { aaa: 'latest' },
devDependencies: {},
}
);
@@ -27,6 +27,9 @@ describe('audit a package yarn 2', () => {
test('should run yarn npm audit info json body', async () => {
await yarn(projectFolder, 'install');
// this might fails if the dependency used above has vulnerabilities
// always try to use ar real dependency that does not have such issues
// yarn berry uses exit 1 if has error https://github.com/yarnpkg/berry/pull/4358
const resp = await yarn(projectFolder, 'npm', 'audit', '--json');
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.advisories).toBeDefined();

View File

@@ -12,13 +12,13 @@ describe('audit a package yarn 3', () => {
registry = setup.registry;
await registry.init();
const { tempFolder } = await yarnModernUtils.prepareYarnModernProject(
'yarn-2',
'yarn-3',
registry.getRegistryUrl(),
getYarnCommand(),
{
packageName: '@scope/name',
version: '1.0.0',
dependencies: { jquery: '3.0.0' },
dependencies: { aaa: 'latest' },
devDependencies: {},
}
);
@@ -27,6 +27,9 @@ describe('audit a package yarn 3', () => {
test('should run yarn npm audit info json body', async () => {
await yarn(projectFolder, 'install');
// this might fails if the dependency used above has vulnerabilities
// always try to use ar real dependency that does not have such issues
// yarn berry uses exit 1 if has error https://github.com/yarnpkg/berry/pull/4358
const resp = await yarn(projectFolder, 'npm', 'audit', '--json');
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.advisories).toBeDefined();

View File

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

View File

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

View File

@@ -8,6 +8,12 @@
- Check sidebar
- Check protected packages works
## Running test locally
- Ensure no other verdaccio server is running, cypress will spawn it's own registry instance
- To run all test: `pnpm test`
- To run single test: `pnpm test -- --spec 'cypress/e2e/home.cy.ts'`
## Contribute
More tests could be added to verify UI works as expected.

View File

@@ -13,6 +13,10 @@ export default defineConfig({
runMode: 5,
openMode: 0,
},
// Enable this to see debug screenshots on test failure
// screenshotOnRunFailure: true,
// Enable this to see debug video on test failure
// video: true,
e2e: {
setupNodeEvents(on) {
on('before:run', async () => {

View File

@@ -32,4 +32,49 @@ describe('home spec', () => {
cy.visit(`${ctx.url}/-/web/detail/@verdaccio/not-found`);
cy.getByTestId('404').contains(`Sorry, we couldn't find it.`);
});
it('should open dialog settings tabs are present', () => {
cy.visit(ctx.url);
cy.getByTestId('header--tooltip-settings').click();
cy.contains('Package Managers');
cy.contains('Translations');
});
it('should close dialog settings tabs are present', () => {
cy.visit(ctx.url);
cy.getByTestId('header--tooltip-settings').click();
cy.get('#registryInfo--dialog-close').click();
// check for content at the dialog should not be there
cy.get('#panel1a-header').should('not.exist');
});
it('should expand npm dialog registry details', () => {
cy.visit(ctx.url);
cy.getByTestId('header--tooltip-settings').click();
cy.get('#panel1a-header').click();
cy.contains(/npm set registry/);
cy.contains(/npm adduser --registry/);
cy.contains(/npm profile set password/);
});
it('should expand pnpm dialog registry details', () => {
cy.visit(ctx.url);
cy.getByTestId('header--tooltip-settings').click();
cy.get('#panel3a-header').click();
cy.contains(/pnpm set registry/);
cy.contains(/pnpm adduser --registry/);
cy.contains(/pnpm profile set password/);
});
it('should expand yarn dialog registry details', () => {
cy.visit(ctx.url);
cy.getByTestId('header--tooltip-settings').click();
cy.get('#panel2a-header').click();
// some initial explanation
cy.contains(/Yarn classic configuration differs from Yarn/);
// smoke test matches, (this is deelpy tested in the unit test)
cy.contains(/.yarnrc.yml/);
cy.contains(/npmRegistryServer:/);
});
});

View File

@@ -3,10 +3,10 @@
"name": "@verdaccio/e2e-ui",
"version": "2.0.0",
"devDependencies": {
"verdaccio": "workspace:7.0.0-next.6",
"@verdaccio/core": "workspace:7.0.0-next.6",
"@verdaccio/config": "workspace:7.0.0-next.6",
"@verdaccio/test-helper": "workspace:3.0.0-next.1",
"verdaccio": "workspace:7.0.0-next-7.13",
"@verdaccio/core": "workspace:7.0.0-next-7.13",
"@verdaccio/config": "workspace:7.0.0-next-7.13",
"@verdaccio/test-helper": "workspace:3.0.0-next-7.2",
"debug": "4.3.4",
"cypress": "^13.6.0",
"get-port": "5.1.1"

View File

@@ -4,7 +4,7 @@ module.exports = {
'^.+\\.(js|ts)$': 'babel-jest',
},
verbose: false,
collectCoverage: true,
collectCoverage: false,
coverageReporters: ['text', 'html'],
collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!**/partials/**', '!**/fixture/**'],
coveragePathIgnorePatterns: ['node_modules', 'fixtures'],

View File

@@ -1,27 +1,7 @@
[build]
command = "pnpm build"
publish = "build/"
[build.environment]
NPM_FLAGS="--prefix=/dev/null"
NODE_VERSION = "14"
[context.production]
command = "pnpm netlify:build:production"
[context.deploy-preview]
command = "pnpm netlify:build:deployPreview"
[context.branch-deploy]
command = "pnpm netlify:build:deployPreview"
[[plugins]]
package = "../.netlify/netlify-plugin-pnpm"
[[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

@@ -15,12 +15,12 @@
"url": "https://opencollective.com/verdaccio"
},
"devDependencies": {
"@babel/cli": "7.23.4",
"@babel/core": "7.23.7",
"@babel/cli": "7.23.9",
"@babel/core": "7.23.9",
"@babel/eslint-parser": "7.23.3",
"@babel/node": "7.22.19",
"@babel/node": "7.23.9",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-decorators": "7.23.7",
"@babel/plugin-proposal-decorators": "7.23.9",
"@babel/plugin-proposal-export-namespace-from": "7.18.9",
"@babel/plugin-proposal-function-sent": "7.23.3",
"@babel/plugin-proposal-json-strings": "7.18.6",
@@ -32,41 +32,43 @@
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/plugin-syntax-import-meta": "7.10.4",
"@babel/plugin-transform-async-to-generator": "7.23.3",
"@babel/plugin-transform-classes": "7.23.5",
"@babel/plugin-transform-runtime": "7.23.7",
"@babel/preset-env": "7.23.7",
"@babel/plugin-transform-classes": "7.23.8",
"@babel/plugin-transform-runtime": "7.23.9",
"@babel/preset-env": "7.23.9",
"@babel/preset-react": "7.23.3",
"@babel/preset-typescript": "7.23.3",
"@babel/register": "7.23.7",
"@babel/runtime": "7.23.7",
"@babel/runtime": "7.23.9",
"@changesets/changelog-github": "0.5.0",
"@changesets/cli": "2.27.1",
"@changesets/get-dependents-graph": "1.3.6",
"@crowdin/cli": "3.16.0",
"@crowdin/cli": "3.16.1",
"@dianmora/contributors": "5.0.0",
"@emotion/react": "11.10.6",
"@emotion/styled": "11.10.6",
"@testing-library/dom": "9.3.3",
"@testing-library/jest-dom": "6.2.0",
"@testing-library/react": "14.1.2",
"@testing-library/dom": "9.3.4",
"@testing-library/jest-dom": "6.4.2",
"@testing-library/user-event": "14.5.2",
"aria-query": "5.1.3",
"@testing-library/react": "14.2.1",
"@trivago/prettier-plugin-sort-imports": "4.3.0",
"@types/body-parser": "1.19.5",
"@types/connect": "3.4.38",
"@types/cookiejar": "2.1.5",
"@types/debug": "4.1.12",
"@types/express": "4.17.21",
"@types/express-serve-static-core": "4.17.41",
"@types/express-serve-static-core": "4.17.42",
"@types/http-errors": "2.0.4",
"@types/jest": "29.5.11",
"@types/jsonwebtoken": "9.0.5",
"@types/lodash": "4.14.202",
"@types/mime": "3.0.4",
"@types/minimatch": "5.1.2",
"@types/node": "20.10.6",
"@types/node-fetch": "2.6.10",
"@types/node": "20.11.7",
"@types/node-fetch": "2.6.11",
"@types/qs": "6.9.11",
"@types/range-parser": "1.2.7",
"@types/react": "18.2.47",
"@types/react": "18.2.48",
"@types/react-dom": "18.2.18",
"@types/react-router-dom": "5.3.3",
"@types/react-virtualized": "9.21.29",
@@ -77,11 +79,11 @@
"@types/superagent": "4.1.24",
"@types/supertest": "2.0.16",
"@types/testing-library__jest-dom": "6.0.0",
"@types/validator": "13.11.7",
"@types/validator": "13.11.8",
"@types/webpack": "5.28.5",
"@types/webpack-env": "1.18.4",
"@typescript-eslint/eslint-plugin": "6.18.0",
"@typescript-eslint/parser": "6.18.0",
"@typescript-eslint/eslint-plugin": "6.19.1",
"@typescript-eslint/parser": "6.19.1",
"@verdaccio/crowdin-translations": "workspace:*",
"@verdaccio/eslint-config": "workspace:*",
"@verdaccio/types": "workspace:*",
@@ -108,17 +110,17 @@
"jest-junit": "16.0.0",
"kleur": "4.1.5",
"lint-staged": "11.2.6",
"nock": "13.4.0",
"nodemon": "3.0.2",
"npm-run-all": "4.1.5",
"prettier": "3.1.1",
"nock": "13.5.1",
"nodemon": "3.0.3",
"npm-run-all2": "5.0.2",
"prettier": "3.2.2",
"react": "18.2.0",
"react-dom": "18.2.0",
"rimraf": "5.0.5",
"selfsigned": "2.4.1",
"supertest": "6.3.3",
"supertest": "6.3.4",
"ts-node": "10.9.2",
"typescript": "5.2.2",
"typescript": "5.3.3",
"undici-types": "5.28.2",
"update-ts-references": "3.2.1",
"verdaccio-audit": "workspace:*",
@@ -135,7 +137,7 @@
"docker": "docker build -t verdaccio/verdaccio:local . --no-cache",
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"",
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\"",
"lint": "eslint --max-warnings 100 \"**/*.{js,jsx,ts,tsx}\"",
"lint": "eslint --max-warnings 70 \"**/*.{js,jsx,ts,tsx}\"",
"test": "pnpm --filter \"./packages/**\" test",
"test:e2e:cli": "pnpm --filter ...@verdaccio/e2e-cli-* test -- --coverage=false",
"test:e2e:ui": "pnpm --filter ...@verdaccio/e2e-ui test",

View File

@@ -1,5 +1,93 @@
# @verdaccio/api
## 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
- Updated dependencies [c9962fe]
- @verdaccio/config@7.0.0-next-7.11
- @verdaccio/auth@7.0.0-next-7.11
- @verdaccio/middleware@7.0.0-next-7.11
- @verdaccio/store@7.0.0-next-7.11
- @verdaccio/core@7.0.0-next-7.11
- @verdaccio/utils@7.0.0-next-7.11
- @verdaccio/logger@7.0.0-next-7.11
## 7.0.0-next-7.10
### Patch Changes
- @verdaccio/core@7.0.0-next-7.10
- @verdaccio/config@7.0.0-next-7.10
- @verdaccio/auth@7.0.0-next-7.10
- @verdaccio/middleware@7.0.0-next-7.10
- @verdaccio/store@7.0.0-next-7.10
- @verdaccio/utils@7.0.0-next-7.10
- @verdaccio/logger@7.0.0-next-7.10
## 7.0.0-next-7.9
### Patch Changes
- Updated dependencies [c807f0c]
- @verdaccio/store@7.0.0-next-7.9
- @verdaccio/core@7.0.0-next-7.9
- @verdaccio/config@7.0.0-next-7.9
- @verdaccio/auth@7.0.0-next-7.9
- @verdaccio/middleware@7.0.0-next-7.9
- @verdaccio/utils@7.0.0-next-7.9
- @verdaccio/logger@7.0.0-next-7.9
## 7.0.0-next-7.8
### Patch Changes
- 74cd588: fix: bug on change password npm profile
- @verdaccio/core@7.0.0-next-7.8
- @verdaccio/config@7.0.0-next-7.8
- @verdaccio/auth@7.0.0-next-7.8
- @verdaccio/middleware@7.0.0-next-7.8
- @verdaccio/store@7.0.0-next-7.8
- @verdaccio/utils@7.0.0-next-7.8
- @verdaccio/logger@7.0.0-next-7.8
## 7.0.0-next-7.7
### Patch Changes
- @verdaccio/core@7.0.0-next-7.7
- @verdaccio/config@7.0.0-next-7.7
- @verdaccio/auth@7.0.0-next-7.7
- @verdaccio/middleware@7.0.0-next-7.7
- @verdaccio/store@7.0.0-next-7.7
- @verdaccio/utils@7.0.0-next-7.7
- @verdaccio/logger@7.0.0-next-7.7
## 7.0.0-next.6
### Patch Changes

View File

@@ -1,10 +1,3 @@
const config = require('../../jest/config');
module.exports = Object.assign({}, config, {
coverageThreshold: {
global: {
// FIXME: increase to 90
lines: 60,
},
},
});
module.exports = Object.assign({}, config, {});

View File

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

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

@@ -81,15 +81,17 @@ export default function (route: Router, auth: Auth, config: Config): void {
/* eslint new-cap:off */
}
if (_.isEmpty(password.old)) {
return next(errorUtils.getBadRequest('old password is required'));
}
auth.changePassword(
name,
password.old,
password.new,
(err, isUpdated): $NextFunctionVer => {
if (_.isNull(err) === false) {
return next(
errorUtils.getCode(err.status, err.message) || errorUtils.getConflict(err.message)
);
return next(errorUtils.getForbidden(err.message));
}
if (isUpdated) {

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

@@ -0,0 +1,27 @@
auth:
htpasswd:
file: ./htpasswd-profile
web:
enable: true
title: verdaccio
uplinks:
log: { type: stdout, format: pretty, level: trace }
packages:
'@*/*':
access: $all
publish: $all
unpublish: $all
proxy: npmjs
'verdaccio':
access: $all
publish: $all
'**':
access: $all
publish: $all
unpublish: $all
proxy: npmjs
_debug: true

View File

@@ -10,7 +10,7 @@ auth:
uplinks:
ver:
url: https://registry.verdaccio.org
url: https://registry.npmjs.org
security:
api:

View File

@@ -7,7 +7,7 @@ web:
uplinks:
ver:
url: https://registry.verdaccio.org
url: https://registry.npmjs.org
log: { type: stdout, format: pretty, level: trace }

View File

@@ -26,8 +26,8 @@ describe('package', () => {
});
test.each([
['foo', 'foo-1.0.0.tgz'],
['@scope/foo', 'foo-1.0.0.tgz'],
['foo2', 'foo2-1.0.0.tgz'],
['@scope/foo2', 'foo2-1.0.0.tgz'],
])('should fails if tarball does not exist', async (pkg, fileName) => {
await publishVersion(app, pkg, '1.0.1');
return await supertest(app)

View File

@@ -0,0 +1,111 @@
import supertest from 'supertest';
import { HEADERS, HEADER_TYPE, HTTP_STATUS, TOKEN_BEARER } from '@verdaccio/core';
import { buildToken } from '@verdaccio/utils';
import { createUser, initializeServer } from './_helper';
describe('profile ', () => {
describe('get profile ', () => {
test('should return Unauthorized if header token is missing', async () => {
const app = await initializeServer('profile.yaml');
return supertest(app)
.get('/-/npm/v1/user')
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.UNAUTHORIZED);
});
test('should return user details', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.get('/-/npm/v1/user')
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.OK);
});
});
describe('post profile ', () => {
test('should return Unauthorized if header token is missing', async () => {
const app = await initializeServer('profile.yaml');
return supertest(app)
.post('/-/npm/v1/user')
.send({})
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.UNAUTHORIZED);
});
test('should return handle to short new password', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.post('/-/npm/v1/user')
.send({ password: { new: '_' } })
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.UNAUTHORIZED);
});
test('should return handle to missing old password', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.post('/-/npm/v1/user')
.send({ password: { new: 'fooooo', old: undefined } })
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.BAD_REQUEST);
});
test('should return handle to missing password', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.post('/-/npm/v1/user')
.send({ another: '_' })
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.INTERNAL_ERROR);
});
test('should return handle change password', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.post('/-/npm/v1/user')
.send({ password: { new: 'good password_.%#@$@#$@#', old: 'test' } })
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.OK);
});
test('should return handle change password failure', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.post('/-/npm/v1/user')
.send({ password: { new: 'good password_.%#@$@#$@#', old: 'test_do_not_match' } })
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.FORBIDDEN);
});
test('should handle tfa ( two factor auth) disabled', async () => {
const app = await initializeServer('profile.yaml');
const credentials = { name: 'test', password: 'test' };
const response = await createUser(app, credentials.name, credentials.password);
return supertest(app)
.post('/-/npm/v1/user')
.send({ tfa: '_' })
.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, response.body.token))
.expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HTTP_STATUS.SERVICE_UNAVAILABLE);
});
});
});

View File

@@ -1,5 +1,91 @@
# @verdaccio/auth
## 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
- Updated dependencies [c9962fe]
- @verdaccio/config@7.0.0-next-7.11
- @verdaccio/loaders@7.0.0-next-7.11
- verdaccio-htpasswd@12.0.0-next-7.11
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/core@7.0.0-next-7.11
- @verdaccio/utils@7.0.0-next-7.11
- @verdaccio/logger@7.0.0-next-7.11
## 7.0.0-next-7.10
### Patch Changes
- @verdaccio/core@7.0.0-next-7.10
- @verdaccio/config@7.0.0-next-7.10
- @verdaccio/loaders@7.0.0-next-7.10
- verdaccio-htpasswd@12.0.0-next-7.10
- @verdaccio/utils@7.0.0-next-7.10
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/logger@7.0.0-next-7.10
## 7.0.0-next-7.9
### Patch Changes
- @verdaccio/core@7.0.0-next-7.9
- @verdaccio/config@7.0.0-next-7.9
- @verdaccio/loaders@7.0.0-next-7.9
- verdaccio-htpasswd@12.0.0-next-7.9
- @verdaccio/utils@7.0.0-next-7.9
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/logger@7.0.0-next-7.9
## 7.0.0-next-7.8
### Patch Changes
- @verdaccio/core@7.0.0-next-7.8
- @verdaccio/config@7.0.0-next-7.8
- @verdaccio/loaders@7.0.0-next-7.8
- verdaccio-htpasswd@12.0.0-next-7.8
- @verdaccio/utils@7.0.0-next-7.8
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/logger@7.0.0-next-7.8
## 7.0.0-next-7.7
### Patch Changes
- @verdaccio/core@7.0.0-next-7.7
- @verdaccio/config@7.0.0-next-7.7
- @verdaccio/loaders@7.0.0-next-7.7
- verdaccio-htpasswd@12.0.0-next-7.7
- @verdaccio/utils@7.0.0-next-7.7
- @verdaccio/signature@7.0.0-next.3
- @verdaccio/logger@7.0.0-next-7.7
## 7.0.0-next.6
### Patch Changes

View File

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

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 () => {

View File

@@ -1,5 +1,70 @@
# @verdaccio/cli
## 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
- Updated dependencies [c9962fe]
- @verdaccio/config@7.0.0-next-7.11
- @verdaccio/node-api@7.0.0-next-7.11
- @verdaccio/core@7.0.0-next-7.11
- @verdaccio/logger@7.0.0-next-7.11
## 7.0.0-next-7.10
### Patch Changes
- @verdaccio/core@7.0.0-next-7.10
- @verdaccio/config@7.0.0-next-7.10
- @verdaccio/node-api@7.0.0-next-7.10
- @verdaccio/logger@7.0.0-next-7.10
## 7.0.0-next-7.9
### Patch Changes
- @verdaccio/node-api@7.0.0-next-7.9
- @verdaccio/core@7.0.0-next-7.9
- @verdaccio/config@7.0.0-next-7.9
- @verdaccio/logger@7.0.0-next-7.9
## 7.0.0-next-7.8
### Patch Changes
- @verdaccio/node-api@7.0.0-next-7.8
- @verdaccio/core@7.0.0-next-7.8
- @verdaccio/config@7.0.0-next-7.8
- @verdaccio/logger@7.0.0-next-7.8
## 7.0.0-next-7.7
### Patch Changes
- @verdaccio/core@7.0.0-next-7.7
- @verdaccio/config@7.0.0-next-7.7
- @verdaccio/node-api@7.0.0-next-7.7
- @verdaccio/logger@7.0.0-next-7.7
## 7.0.0-next.6
### Patch Changes

View File

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

View File

@@ -1,5 +1,59 @@
# @verdaccio/config
## 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
- c9962fe: feat: forbidden user interface
### Patch Changes
- @verdaccio/core@7.0.0-next-7.11
- @verdaccio/utils@7.0.0-next-7.11
## 7.0.0-next-7.10
### Patch Changes
- @verdaccio/core@7.0.0-next-7.10
- @verdaccio/utils@7.0.0-next-7.10
## 7.0.0-next-7.9
### Patch Changes
- @verdaccio/core@7.0.0-next-7.9
- @verdaccio/utils@7.0.0-next-7.9
## 7.0.0-next-7.8
### Patch Changes
- @verdaccio/core@7.0.0-next-7.8
- @verdaccio/utils@7.0.0-next-7.8
## 7.0.0-next-7.7
### Patch Changes
- @verdaccio/core@7.0.0-next-7.7
- @verdaccio/utils@7.0.0-next-7.7
## 7.0.0-next.6
### Patch 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.6",
"version": "7.0.0-next-7.13",
"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.6",
"@verdaccio/utils": "workspace:7.0.0-next.6",
"@verdaccio/core": "workspace:7.0.0-next-7.13",
"@verdaccio/utils": "workspace:7.0.0-next-7.13",
"debug": "4.3.4",
"js-yaml": "4.1.0",
"lodash": "4.17.21",

View File

@@ -19,8 +19,7 @@ export default class ConfigBuilder {
private config: ConfigYaml;
public constructor(config?: Partial<ConfigYaml>) {
// @ts-ignore
this.config = config ?? { uplinks: {}, packages: {}, security: {} };
this.config = merge(config, { uplinks: {}, packages: {}, security: {} });
}
public static build(config?: Partial<ConfigYaml>): ConfigBuilder {

View File

@@ -82,7 +82,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

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