Compare commits
413 Commits
@verdaccio
...
@verdaccio
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14032d160b | ||
|
|
b6d565209f | ||
|
|
4b4a37c07b | ||
|
|
24bec8ded0 | ||
|
|
b0946b2a3b | ||
|
|
3293c9a281 | ||
|
|
6a83040351 | ||
|
|
253cc1348f | ||
|
|
1367f02897 | ||
|
|
dc8be6df8b | ||
|
|
6cf165b405 | ||
|
|
da50542de1 | ||
|
|
1bae121dc2 | ||
|
|
4ac3aead4f | ||
|
|
86283342f9 | ||
|
|
40c004c234 | ||
|
|
e8b016aca5 | ||
|
|
42f226e6b3 | ||
|
|
2520a74ac3 | ||
|
|
dbade09407 | ||
|
|
4dc62a8365 | ||
|
|
eb9bbb4313 | ||
|
|
d411c20570 | ||
|
|
86a99684a3 | ||
|
|
2bf41a480e | ||
|
|
824b43fb43 | ||
|
|
c1385d7655 | ||
|
|
f967a69ad3 | ||
|
|
d5d96f0868 | ||
|
|
386f19753f | ||
|
|
a0e4fc9fa0 | ||
|
|
c9e7c141e8 | ||
|
|
17cf072329 | ||
|
|
1456bdd4a7 | ||
|
|
ffb6de3777 | ||
|
|
e32e737018 | ||
|
|
a0b65a82d0 | ||
|
|
717fe79fe0 | ||
|
|
1ae8f23110 | ||
|
|
3d9847736a | ||
|
|
31a927a236 | ||
|
|
af3f7c4797 | ||
|
|
542f9d3760 | ||
|
|
c20adc8ae5 | ||
|
|
93c49bd36d | ||
|
|
41eb167943 | ||
|
|
ba53d1edc8 | ||
|
|
a99a4bb1b3 | ||
|
|
ff1bd1ab7d | ||
|
|
9db15542dc | ||
|
|
9e3085d107 | ||
|
|
51b0f2f4da | ||
|
|
755b49bceb | ||
|
|
db4b669cfb | ||
|
|
3f93858452 | ||
|
|
6fbbc40aa0 | ||
|
|
4aa4aceafa | ||
|
|
487976bd53 | ||
|
|
f7930684f4 | ||
|
|
a8e906f935 | ||
|
|
70095c994d | ||
|
|
2aa94c3390 | ||
|
|
a542aafda2 | ||
|
|
56713db9a3 | ||
|
|
cce258e4d4 | ||
|
|
87c16127b4 | ||
|
|
bed68b2ceb | ||
|
|
5328b6cb05 | ||
|
|
16954c3b85 | ||
|
|
1e63e05dc0 | ||
|
|
8ecf7adf29 | ||
|
|
2c9fe963ff | ||
|
|
31844e2e77 | ||
|
|
605cff9099 | ||
|
|
c9962fe1d5 | ||
|
|
4a81ed791a | ||
|
|
8783e3a88a | ||
|
|
7034c358d5 | ||
|
|
f09f30cada | ||
|
|
03acf73a56 | ||
|
|
dabf77d32d | ||
|
|
fbcc36fbb6 | ||
|
|
66e4c89d3e | ||
|
|
521040847c | ||
|
|
c8b70a5be4 | ||
|
|
a90b19302f | ||
|
|
1bae2c431a | ||
|
|
82ae08e3c8 | ||
|
|
bf3ae08646 | ||
|
|
e4e1171af8 | ||
|
|
8ace3245ff | ||
|
|
487e2f77fe | ||
|
|
1d96983c24 | ||
|
|
03173212df | ||
|
|
c807f0c4fb | ||
|
|
2446a11db5 | ||
|
|
dd952ec055 | ||
|
|
3323599268 | ||
|
|
d4d137f664 | ||
|
|
ec9647b6ce | ||
|
|
b8618e6e97 | ||
|
|
50eb7b2ca4 | ||
|
|
6bae1c0739 | ||
|
|
817075685b | ||
|
|
e5f924c19c | ||
|
|
3ed2104471 | ||
|
|
0f3a4da825 | ||
|
|
b638695bd8 | ||
|
|
71d5326930 | ||
|
|
8755f01a97 | ||
|
|
d540bc6647 | ||
|
|
2c29445faf | ||
|
|
119df261cc | ||
|
|
2c66d49da7 | ||
|
|
8b3563d151 | ||
|
|
e83af641ba | ||
|
|
b7ee3c4096 | ||
|
|
575facc5c3 | ||
|
|
f22dca8d32 | ||
|
|
2453be40b4 | ||
|
|
735814dfdc | ||
|
|
15e0417878 | ||
|
|
7bc60b7177 | ||
|
|
74cd588828 | ||
|
|
8380b8e980 | ||
|
|
2afac3cb80 | ||
|
|
c366af5370 | ||
|
|
3fdff8321b | ||
|
|
b06e8f584f | ||
|
|
0f7271cddf | ||
|
|
20cbf5b3bd | ||
|
|
d45bf93501 | ||
|
|
7f0161370b | ||
|
|
f1ca952b8b | ||
|
|
b6150b63aa | ||
|
|
5f83b328a2 | ||
|
|
11e71ce8d9 | ||
|
|
3685a982cd | ||
|
|
1f936defc7 | ||
|
|
fcc1ca51ae | ||
|
|
2acf0d4cbb | ||
|
|
3d368fc456 | ||
|
|
a21dbc7447 | ||
|
|
f9982c5fda | ||
|
|
cea53128d8 | ||
|
|
f599e24668 | ||
|
|
6d6f4d7833 | ||
|
|
5baf74bbf7 | ||
|
|
4fc7fc6bcb | ||
|
|
1b8b74c364 | ||
|
|
c7fba8f8bb | ||
|
|
a919c26da5 | ||
|
|
61eff4c007 | ||
|
|
269ff273e5 | ||
|
|
ff7761ddf1 | ||
|
|
874cdd0249 | ||
|
|
0aa7cf5c63 | ||
|
|
6feb2a8b1d | ||
|
|
cb3ebe575f | ||
|
|
beb9ca2eea | ||
|
|
282f9ce2b0 | ||
|
|
4782bdd5e3 | ||
|
|
07a8dd3cd2 | ||
|
|
4f70a46585 | ||
|
|
172691ef1d | ||
|
|
2dbfde9b7d | ||
|
|
44017ff2da | ||
|
|
6faecee7e6 | ||
|
|
3d94001b49 | ||
|
|
5351356cb7 | ||
|
|
bf6343e3c7 | ||
|
|
8ab1cf1bc0 | ||
|
|
e63722a7a6 | ||
|
|
6c1d2fca6a | ||
|
|
c65f9fefc2 | ||
|
|
66f9a17189 | ||
|
|
49a1fc11c2 | ||
|
|
d575eb9356 | ||
|
|
a7745bf9df | ||
|
|
f1d219e48c | ||
|
|
bdd55eacf9 | ||
|
|
22d9802be0 | ||
|
|
e14b064a38 | ||
|
|
1c5106ec6f | ||
|
|
4d9632424d | ||
|
|
e1efd79b60 | ||
|
|
54260206f3 | ||
|
|
851950a0fc | ||
|
|
ddd74ef0fc | ||
|
|
968b59962c | ||
|
|
36cdc5c091 | ||
|
|
869576ae57 | ||
|
|
d32ce71866 | ||
|
|
16cb6348c9 | ||
|
|
f5b9d20859 | ||
|
|
ba7c7577c7 | ||
|
|
fcfa14fa9b | ||
|
|
224ddd91d7 | ||
|
|
297ae86677 | ||
|
|
11a1276281 | ||
|
|
a347c3e934 | ||
|
|
6dba80e3cb | ||
|
|
9e6acdbdcc | ||
|
|
3a0eab511f | ||
|
|
5bec47859c | ||
|
|
2673bccdd8 | ||
|
|
0b5bd2ba92 | ||
|
|
37825bfe77 | ||
|
|
f047cc8c25 | ||
|
|
5f8e361262 | ||
|
|
b537d0d5dd | ||
|
|
56442b8d03 | ||
|
|
34ae4ef638 | ||
|
|
ed5d78e0fe | ||
|
|
922b37f200 | ||
|
|
c8c40a2cf5 | ||
|
|
0d1205c951 | ||
|
|
2e711dabaf | ||
|
|
806bcdf46e | ||
|
|
f2959a370b | ||
|
|
419eb8861b | ||
|
|
6652bbacb3 | ||
|
|
e3b82ae391 | ||
|
|
a9491acbde | ||
|
|
7680323d2d | ||
|
|
7fb1714cb3 | ||
|
|
898abdc714 | ||
|
|
c38a321168 | ||
|
|
d8097b8030 | ||
|
|
a7e0dbb753 | ||
|
|
0f3df248f8 | ||
|
|
7b579b3337 | ||
|
|
fd47fab9a8 | ||
|
|
17cd8d4f36 | ||
|
|
b22a3467c5 | ||
|
|
17e1479be5 | ||
|
|
5e4c768228 | ||
|
|
22cf912483 | ||
|
|
a2343d751b | ||
|
|
88a91bdfc7 | ||
|
|
10be85cb7e | ||
|
|
0ad768d01c | ||
|
|
655bcceb0f | ||
|
|
a730961df7 | ||
|
|
2ecf69cc86 | ||
|
|
c01b9de325 | ||
|
|
b3f12c99b1 | ||
|
|
e885cb126d | ||
|
|
ec895bba79 | ||
|
|
74a8598355 | ||
|
|
8c0058a9cf | ||
|
|
d8ef641c76 | ||
|
|
c456d2e482 | ||
|
|
49aa66e480 | ||
|
|
d68392b102 | ||
|
|
fb53818a47 | ||
|
|
c80d26d926 | ||
|
|
c02f2cb725 | ||
|
|
d6b00b8074 | ||
|
|
1749efbd49 | ||
|
|
56c5e20007 | ||
|
|
e4a0231b6c | ||
|
|
c198c01488 | ||
|
|
2cee1a5801 | ||
|
|
d0b7647443 | ||
|
|
d0ac8155ee | ||
|
|
58cd9fd647 | ||
|
|
7262c10093 | ||
|
|
2f85f85bb0 | ||
|
|
8030e8d5d0 | ||
|
|
34c8e141b7 | ||
|
|
c6e5a67fd8 | ||
|
|
baa3f84e42 | ||
|
|
30d4e59a97 | ||
|
|
df37f5d205 | ||
|
|
31005bc8b9 | ||
|
|
d5f7bdba0a | ||
|
|
c42f2d06bc | ||
|
|
995355f9c7 | ||
|
|
00fb00894c | ||
|
|
e309047a77 | ||
|
|
ba6a098bbe | ||
|
|
2bed2788df | ||
|
|
ccb8317b65 | ||
|
|
6e7c215613 | ||
|
|
beb949e5a6 | ||
|
|
a2b08766a5 | ||
|
|
cda54ec4da | ||
|
|
d4ab275799 | ||
|
|
b593588c02 | ||
|
|
d6bd489129 | ||
|
|
ed3518ee24 | ||
|
|
c3e97fb6dd | ||
|
|
03314c15c5 | ||
|
|
3a47c6d6a9 | ||
|
|
5e49905394 | ||
|
|
9d601c9e34 | ||
|
|
c9b9a84ecb | ||
|
|
9604732736 | ||
|
|
05608eb4e1 | ||
|
|
33530632d6 | ||
|
|
bb83a1a733 | ||
|
|
3c04696dd1 | ||
|
|
fdab6b8c89 | ||
|
|
46915b0d10 | ||
|
|
e5d4e91e21 | ||
|
|
4718b7c2d4 | ||
|
|
f63e216f20 | ||
|
|
843bf8009c | ||
|
|
cf5c359ab9 | ||
|
|
aca5212a4f | ||
|
|
c8c7e5641f | ||
|
|
0abdb8f301 | ||
|
|
6741d7ed80 | ||
|
|
5e83d76b22 | ||
|
|
b92528e1c8 | ||
|
|
0a7b39908a | ||
|
|
c43e1be2c0 | ||
|
|
2f17367d21 | ||
|
|
001896ecfb | ||
|
|
3159458282 | ||
|
|
b8d6311c48 | ||
|
|
ab5bd360e4 | ||
|
|
238f6aeb92 | ||
|
|
8cca64bd4f | ||
|
|
a491baaa4c | ||
|
|
793dcd54c0 | ||
|
|
58daf3c9bd | ||
|
|
c07ed76dc6 | ||
|
|
db83206753 | ||
|
|
e585965389 | ||
|
|
b1e1cfbd8f | ||
|
|
9cffa22bd2 | ||
|
|
541ec22536 | ||
|
|
2af11ee8e3 | ||
|
|
12fd19d3dd | ||
|
|
87f5598070 | ||
|
|
fda7ff26e9 | ||
|
|
b313e56f75 | ||
|
|
667f705c0e | ||
|
|
5e850af59b | ||
|
|
4e31fdf651 | ||
|
|
326ec28930 | ||
|
|
afce58da48 | ||
|
|
277ca7ee71 | ||
|
|
a07ff6350e | ||
|
|
851eb5541f | ||
|
|
c5831f3479 | ||
|
|
7dd4494c2d | ||
|
|
4136fc2e49 | ||
|
|
287983c1c0 | ||
|
|
0b7f5a7e22 | ||
|
|
cc4c113b0d | ||
|
|
56f728c312 | ||
|
|
bf16931eef | ||
|
|
789a2b2020 | ||
|
|
f93a5181f4 | ||
|
|
9395365d65 | ||
|
|
0bda2c6fde | ||
|
|
4912d31387 | ||
|
|
422bf8dba5 | ||
|
|
77764b11a9 | ||
|
|
795df2bf9a | ||
|
|
e5d71046e9 | ||
|
|
22212eeea1 | ||
|
|
faf5895db4 | ||
|
|
0fbc09d7da | ||
|
|
54582b0594 | ||
|
|
a188439abc | ||
|
|
cca9308d0f | ||
|
|
ffbb890600 | ||
|
|
4d53066fac | ||
|
|
98852b400d | ||
|
|
7085c0b075 | ||
|
|
85e640d8d8 | ||
|
|
8d00ca9029 | ||
|
|
6b4603feaa | ||
|
|
8ffdb6623c | ||
|
|
cdeca77f4b | ||
|
|
14f8469d1b | ||
|
|
82d34ae4dc | ||
|
|
400e4e6428 | ||
|
|
c4e89143f3 | ||
|
|
1627957276 | ||
|
|
357f39b78a | ||
|
|
17087ffa97 | ||
|
|
acdf96aa33 | ||
|
|
95674ecf69 | ||
|
|
3a200ee37f | ||
|
|
c6400203cf | ||
|
|
46ef5f0532 | ||
|
|
491c788845 | ||
|
|
e4e7fcea3a | ||
|
|
461d95cef3 | ||
|
|
aedb209520 | ||
|
|
376eb53788 | ||
|
|
c922b83775 | ||
|
|
312bc100ff | ||
|
|
8004ebd445 | ||
|
|
dd551fd110 | ||
|
|
e626f3bc70 | ||
|
|
42660c164d | ||
|
|
eaea6ca2e8 | ||
|
|
4c58a46b43 | ||
|
|
33cf14740d | ||
|
|
56c082ab0a | ||
|
|
6d860074ec | ||
|
|
f04de5103c | ||
|
|
750d4e54fa | ||
|
|
047e2b78b7 | ||
|
|
bf394dd5d1 | ||
|
|
436a639cb1 | ||
|
|
2748471a4b |
6
.changeset/eighty-lobsters-study.md
Normal file
6
.changeset/eighty-lobsters-study.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
'@verdaccio/ui-components': patch
|
||||
---
|
||||
|
||||
feat: versions filter by semver range
|
||||
6
.changeset/good-cups-train.md
Normal file
6
.changeset/good-cups-train.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/search': patch
|
||||
'@verdaccio/search-indexer': patch
|
||||
---
|
||||
|
||||
refactor: search package
|
||||
6
.changeset/itchy-mangos-wink.md
Normal file
6
.changeset/itchy-mangos-wink.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/middleware': patch
|
||||
'@verdaccio/url': patch
|
||||
---
|
||||
|
||||
Improved TS types for renderHTML() and related functions (by @tobbe in #4605)
|
||||
5
.changeset/long-moles-attend.md
Normal file
5
.changeset/long-moles-attend.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/search-indexer': patch
|
||||
---
|
||||
|
||||
fix: remove node engine restriction
|
||||
7
.changeset/olive-bananas-wink.md
Normal file
7
.changeset/olive-bananas-wink.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@verdaccio/store': patch
|
||||
'@verdaccio/tarball': patch
|
||||
---
|
||||
|
||||
- Fixes polynomial regular expression when determining the file name of tarball
|
||||
- Add tests for extracting tarball name
|
||||
7
.changeset/pink-apples-nail.md
Normal file
7
.changeset/pink-apples-nail.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': minor
|
||||
'@verdaccio/ui-components': minor
|
||||
'@verdaccio/config': minor
|
||||
---
|
||||
|
||||
feat: forbidden user interface
|
||||
5
.changeset/pink-balloons-leave.md
Normal file
5
.changeset/pink-balloons-leave.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/local-storage': patch
|
||||
---
|
||||
|
||||
chore: reduce log to info if database is not found
|
||||
@@ -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,17 +55,41 @@
|
||||
"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",
|
||||
"itchy-mangos-wink",
|
||||
"long-jars-collect",
|
||||
"long-moles-attend",
|
||||
"old-turkeys-heal",
|
||||
"olive-bananas-wink",
|
||||
"perfect-chairs-act",
|
||||
"pink-apples-nail",
|
||||
"pink-balloons-leave",
|
||||
"quick-buses-scream",
|
||||
"real-socks-vanish",
|
||||
"sharp-wolves-carry",
|
||||
"shiny-worms-retire",
|
||||
"weak-fans-explain"
|
||||
"shy-carrots-compare",
|
||||
"shy-garlics-cry",
|
||||
"silent-shirts-knock",
|
||||
"slow-wasps-glow",
|
||||
"spicy-birds-flow",
|
||||
"strange-points-repair",
|
||||
"thirty-toes-swim",
|
||||
"unlucky-cycles-sparkle",
|
||||
"weak-fans-explain",
|
||||
"wicked-kiwis-check",
|
||||
"wicked-worms-wash",
|
||||
"wild-otters-talk",
|
||||
"young-donuts-own"
|
||||
]
|
||||
}
|
||||
|
||||
5
.changeset/quick-buses-scream.md
Normal file
5
.changeset/quick-buses-scream.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/store': patch
|
||||
---
|
||||
|
||||
fix: avoid warning "time for version x already exists"
|
||||
5
.changeset/real-socks-vanish.md
Normal file
5
.changeset/real-socks-vanish.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'verdaccio': patch
|
||||
---
|
||||
|
||||
chore: test release
|
||||
5
.changeset/sharp-wolves-carry.md
Normal file
5
.changeset/sharp-wolves-carry.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/signature': minor
|
||||
---
|
||||
|
||||
support for createCipher backward compatible
|
||||
14
.changeset/shy-carrots-compare.md
Normal file
14
.changeset/shy-carrots-compare.md
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
'@verdaccio/server': minor
|
||||
'@verdaccio/test-helper': minor
|
||||
'@verdaccio/types': minor
|
||||
'@verdaccio/middleware': minor
|
||||
'@verdaccio/core': minor
|
||||
'@verdaccio/signature': minor
|
||||
'@verdaccio/url': minor
|
||||
'@verdaccio/config': minor
|
||||
'@verdaccio/auth': minor
|
||||
'@verdaccio/api': minor
|
||||
---
|
||||
|
||||
refactor: auth with legacy sign support
|
||||
5
.changeset/shy-garlics-cry.md
Normal file
5
.changeset/shy-garlics-cry.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/signature': patch
|
||||
---
|
||||
|
||||
chore: export signature options type
|
||||
5
.changeset/silent-shirts-knock.md
Normal file
5
.changeset/silent-shirts-knock.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/config': patch
|
||||
---
|
||||
|
||||
fix config builder erroring when passed partial config
|
||||
5
.changeset/slow-wasps-glow.md
Normal file
5
.changeset/slow-wasps-glow.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/logger-prettify': patch
|
||||
---
|
||||
|
||||
Avoid displaying "prettify pipeline error" if there is no error
|
||||
6
.changeset/spicy-birds-flow.md
Normal file
6
.changeset/spicy-birds-flow.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/store': patch
|
||||
'@verdaccio/test-helper': patch
|
||||
---
|
||||
|
||||
fix: store readme when publishing locally
|
||||
6
.changeset/strange-points-repair.md
Normal file
6
.changeset/strange-points-repair.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
'@verdaccio/ui-components': patch
|
||||
---
|
||||
|
||||
fix: render READMEs with correct font and highlighting
|
||||
6
.changeset/thirty-toes-swim.md
Normal file
6
.changeset/thirty-toes-swim.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
'@verdaccio/ui-components': patch
|
||||
---
|
||||
|
||||
fix: ui dialog break pages on open due remark error
|
||||
5
.changeset/unlucky-cycles-sparkle.md
Normal file
5
.changeset/unlucky-cycles-sparkle.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/local-storage': patch
|
||||
---
|
||||
|
||||
fix: error when writing tarball (missing folder)
|
||||
5
.changeset/wicked-kiwis-check.md
Normal file
5
.changeset/wicked-kiwis-check.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/auth': patch
|
||||
---
|
||||
|
||||
fix: adduser error message grammar (@tobbe in #4586)
|
||||
6
.changeset/wicked-worms-wash.md
Normal file
6
.changeset/wicked-worms-wash.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/store': patch
|
||||
'@verdaccio/tarball': patch
|
||||
---
|
||||
|
||||
feat: add tarball details for published packages
|
||||
5
.changeset/wild-otters-talk.md
Normal file
5
.changeset/wild-otters-talk.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/api': patch
|
||||
---
|
||||
|
||||
fix: bug on change password npm profile
|
||||
5
.changeset/young-donuts-own.md
Normal file
5
.changeset/young-donuts-own.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/config': patch
|
||||
---
|
||||
|
||||
chore(config): increase test coverage
|
||||
10
.github/workflows/changesets.yml
vendored
10
.github/workflows/changesets.yml
vendored
@@ -25,16 +25,16 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: setup node.js
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=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@latest-8 -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
|
||||
|
||||
24
.github/workflows/ci-windows.yml
vendored
24
.github/workflows/ci-windows.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
@@ -29,14 +29,10 @@ jobs:
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -49,12 +45,12 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=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@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -73,12 +69,12 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=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@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -102,12 +98,12 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node ${{ matrix.node_version }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=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@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -127,12 +123,12 @@ jobs:
|
||||
name: UI Test E2E
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=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@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
|
||||
87
.github/workflows/ci.yml
vendored
87
.github/workflows/ci.yml
vendored
@@ -14,6 +14,9 @@ on:
|
||||
- 'pnpm-workspace.yaml'
|
||||
permissions:
|
||||
contents: read
|
||||
concurrency:
|
||||
group: ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
@@ -25,30 +28,30 @@ jobs:
|
||||
ports:
|
||||
- 4873:4873
|
||||
env:
|
||||
NODE_ENV: production
|
||||
NODE_ENV: production
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
pnpm-
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Node
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack install
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
pnpm-
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
name: Lint
|
||||
@@ -56,20 +59,20 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
corepack install
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: set store
|
||||
run: |
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --ignore-scripts
|
||||
- name: Lint
|
||||
@@ -81,50 +84,50 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
corepack install
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: set store
|
||||
run: |
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --ignore-scripts
|
||||
- name: Lint
|
||||
run: pnpm format:check
|
||||
test:
|
||||
needs: [format, lint]
|
||||
needs: [prepare]
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
node_version: [18, 20]
|
||||
node_version: [18, 20, 21]
|
||||
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node ${{ matrix.node_version }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: ${{ matrix.node_version }}
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
corepack prepare
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: set store
|
||||
run: |
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --ignore-scripts --registry http://localhost:4873
|
||||
- name: build
|
||||
@@ -135,23 +138,23 @@ jobs:
|
||||
needs: [test]
|
||||
runs-on: ubuntu-latest
|
||||
name: synchronize translations
|
||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
|
||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio') || github.event_name == 'workflow_dispatch'
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
corepack install
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: set store
|
||||
run: |
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
## we need scripts, pupetter downloads aditional content
|
||||
run: pnpm install --registry http://localhost:4873
|
||||
|
||||
6
.github/workflows/codeql-analysis.yml
vendored
6
.github/workflows/codeql-analysis.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@fdcae64e1484d349b3366718cdfef3d404390e85 # v2
|
||||
uses: github/codeql-action/init@c7f9125735019aa87cfc361530512d50ea439c71 # 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@fdcae64e1484d349b3366718cdfef3d404390e85 # v2
|
||||
uses: github/codeql-action/autobuild@c7f9125735019aa87cfc361530512d50ea439c71 # 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@fdcae64e1484d349b3366718cdfef3d404390e85 # v2
|
||||
uses: github/codeql-action/analyze@c7f9125735019aa87cfc361530512d50ea439c71 # v2
|
||||
|
||||
17
.github/workflows/docker-proxy-apache-e2e.yml
vendored
17
.github/workflows/docker-proxy-apache-e2e.yml
vendored
@@ -12,7 +12,8 @@ jobs:
|
||||
docker:
|
||||
timeout-minutes: 10
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: --max_old_space_size=4096
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
@@ -21,15 +22,21 @@ jobs:
|
||||
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build
|
||||
|
||||
- name: Install node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version-file: '.nvmrc'
|
||||
- name: npm setup
|
||||
run: |
|
||||
npm config set fetch-retries="10"
|
||||
npm config set fetch-retry-factor="50"
|
||||
npm config set fetch-retry-mintimeout="20000"
|
||||
npm config set fetch-retry-maxtimeout="80000"
|
||||
- name: verdaccio cli
|
||||
run: npm install -g verdaccio --registry http://localhost
|
||||
- name: gastby cli
|
||||
run: npm install -g gatsby-cli --registry http://localhost
|
||||
- name: netlify cli
|
||||
run: npm install -g netlify-cli --registry http://localhost
|
||||
# - name: netlify cli
|
||||
# run: npm install -g netlify-cli --registry http://localhost
|
||||
- name: angular cli
|
||||
run: npm install -g @angular/cli --registry http://localhost
|
||||
|
||||
|
||||
13
.github/workflows/docker-proxy-nginx-e2e.yml
vendored
13
.github/workflows/docker-proxy-nginx-e2e.yml
vendored
@@ -9,7 +9,8 @@ jobs:
|
||||
docker:
|
||||
timeout-minutes: 10
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: --max_old_space_size=4096
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
@@ -18,12 +19,12 @@ jobs:
|
||||
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build
|
||||
|
||||
- name: Install node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: 18
|
||||
node-version-file: '.nvmrc'
|
||||
- name: npm setup
|
||||
run: |
|
||||
npm config set fetch-retries="5"
|
||||
npm config set fetch-retries="10"
|
||||
npm config set fetch-retry-factor="50"
|
||||
npm config set fetch-retry-mintimeout="20000"
|
||||
npm config set fetch-retry-maxtimeout="80000"
|
||||
@@ -31,8 +32,8 @@ jobs:
|
||||
run: npm install -g verdaccio --registry http://localhost
|
||||
- name: gastby cli
|
||||
run: npm install -g gatsby-cli --registry http://localhost
|
||||
- name: netlify cli
|
||||
run: npm install -g netlify-cli --registry http://localhost
|
||||
#- name: netlify cli
|
||||
# run: npm install -g netlify-cli --registry http://localhost
|
||||
- name: angular cli
|
||||
run: npm install -g @angular/cli --registry http://localhost
|
||||
|
||||
|
||||
1
.github/workflows/docker-publish.yml
vendored
1
.github/workflows/docker-publish.yml
vendored
@@ -22,6 +22,7 @@ permissions:
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'verdaccio/verdaccio'
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # tag=v1
|
||||
|
||||
176
.github/workflows/e2e-ci.yml
vendored
176
.github/workflows/e2e-ci.yml
vendored
@@ -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,50 +18,54 @@ jobs:
|
||||
env:
|
||||
NODE_ENV: production
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@latest-8 -g
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --reporter=silence --ignore-scripts --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
pnpm-
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --reporter=silence --ignore-scripts --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
pnpm-
|
||||
build:
|
||||
needs: [prepare]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node 16
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=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
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm recursive install --reporter=silence --registry http://localhost:4873
|
||||
- name: build
|
||||
run: pnpm build
|
||||
- name: Cache packages
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
id: cache-packages
|
||||
with:
|
||||
path: ./packages/
|
||||
@@ -73,32 +80,41 @@ jobs:
|
||||
# key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
|
||||
# restore-keys: |
|
||||
# test-
|
||||
e2e-cli:
|
||||
e2e-cli-npm:
|
||||
needs: [prepare, build]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
fail-fast: false
|
||||
matrix:
|
||||
pkg: [npm6, npm7, npm8, npm9, npm10, pnpm6, pnpm7, pnpm8, yarn1, yarn2, yarn3, yarn4]
|
||||
node: [16, 18, 19]
|
||||
pkg:
|
||||
[
|
||||
npm6,
|
||||
npm7,
|
||||
npm8,
|
||||
npm9,
|
||||
npm10
|
||||
]
|
||||
node: [20, 21]
|
||||
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@latest-8 -g
|
||||
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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
|
||||
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@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ./packages/
|
||||
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
|
||||
@@ -107,6 +123,96 @@ jobs:
|
||||
# path: ./e2e/
|
||||
# key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
|
||||
- name: build e2e
|
||||
run: pnpm --filter @verdaccio/test-cli-commons build
|
||||
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@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
pkg:
|
||||
[
|
||||
yarn1,
|
||||
yarn2,
|
||||
yarn3,
|
||||
yarn4
|
||||
]
|
||||
node: [20, 21]
|
||||
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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 --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
|
||||
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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}}
|
||||
|
||||
|
||||
11
.github/workflows/e2e-ui.yml
vendored
11
.github/workflows/e2e-ui.yml
vendored
@@ -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
|
||||
@@ -17,20 +20,20 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
- name: Use Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
corepack enable
|
||||
corepack prepare
|
||||
- name: Install
|
||||
run: pnpm install --reporter=silence --registry http://localhost:4873
|
||||
- name: build
|
||||
run: pnpm build
|
||||
- name: Test UI
|
||||
run: pnpm test:e2e:ui
|
||||
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3
|
||||
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v3
|
||||
with:
|
||||
name: videos
|
||||
path: /home/runner/work/verdaccio/verdaccio/e2e/ui/cypress/videos
|
||||
|
||||
5
.github/workflows/static-data.yml
vendored
5
.github/workflows/static-data.yml
vendored
@@ -18,12 +18,13 @@ jobs:
|
||||
prepare:
|
||||
name: Run script
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'verdaccio/verdaccio'
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: 18.x
|
||||
- name: install pnpm
|
||||
@@ -45,7 +46,7 @@ jobs:
|
||||
- name: format
|
||||
run: pnpm format
|
||||
- name: Commit & Push changes
|
||||
uses: actions-js/push@156f2b10c3aa000c44dbe75ea7018f32ae999772 # tag=v1.4
|
||||
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # tag=v1.5
|
||||
with:
|
||||
github_token: ${{ secrets.TOKEN_VERDACCIOBOT_GITHUB }}
|
||||
message: "chore: updated static data"
|
||||
|
||||
44
.github/workflows/ui-components.yml
vendored
44
.github/workflows/ui-components.yml
vendored
@@ -1,14 +1,9 @@
|
||||
name: UI Components
|
||||
|
||||
on:
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/ui-components.yml
|
||||
- 'packages/ui-components/**'
|
||||
- 'package.json'
|
||||
- 'pnpm-workspace.yaml'
|
||||
- 'pnpm-lock.yaml'
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
@@ -24,18 +19,19 @@ jobs:
|
||||
pull-requests: write # to comment on pull-requests
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'verdaccio/verdaccio'
|
||||
env:
|
||||
NODE_OPTIONS: --max_old_space_size=4096
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
|
||||
- name: Use Node
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Cache pnpm modules
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
env:
|
||||
cache-name: cache-pnpm-modules
|
||||
with:
|
||||
@@ -47,7 +43,7 @@ jobs:
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack prepare --activate pnpm@latest-8
|
||||
corepack prepare --activate pnpm@8.9.0
|
||||
- name: Install
|
||||
run: pnpm install
|
||||
- name: Build storybook
|
||||
@@ -55,24 +51,8 @@ jobs:
|
||||
- name: Copy public content
|
||||
# the msw.js worker is need it at the storybook-static folder in production
|
||||
run: cp -R packages/ui-components/public/* packages/ui-components/storybook-static
|
||||
- name: 🔥 Deploy Production UI Netlify
|
||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
|
||||
uses: verdaccio/action-netlify-deploy@1c086d59169edeec9254672c7de17d2ceac3928f # v2.0.0
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
netlify-site-id: ${{ secrets.NETLIFY_UI_SITE_ID }}
|
||||
build-dir: './packages/ui-components/storybook-static'
|
||||
- name: 🤖 Deploy Preview UI Components Netlify
|
||||
if: github.repository == 'verdaccio/verdaccio'
|
||||
uses: semoal/action-netlify-deploy@1a53f098745bf78555d11b436f5ee3af87e6b566
|
||||
id: netlify_preview_ui
|
||||
with:
|
||||
draft: true
|
||||
comment-on-pull-request: true
|
||||
github-deployment-is-production: false
|
||||
github-deployment-is-transient: true
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
netlify-site-id: ${{ secrets.NETLIFY_UI_SITE_ID }}
|
||||
build-dir: './packages/ui-components/storybook-static'
|
||||
- name: Deploy to Netlify
|
||||
env:
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_UI_SITE_ID }}
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
run: pnpm --filter ...@verdaccio/ui-components netlify:ui:deploy
|
||||
|
||||
134
.github/workflows/website.yml
vendored
134
.github/workflows/website.yml
vendored
@@ -2,10 +2,6 @@ name: Verdaccio Website CI
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'website/**'
|
||||
- './.github/workflows/website.yml'
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
@@ -20,125 +16,61 @@ jobs:
|
||||
pull-requests: write # to comment on pull-requests
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'verdaccio/verdaccio'
|
||||
name: setup verdaccio
|
||||
services:
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:5
|
||||
ports:
|
||||
- 4873:4873
|
||||
env:
|
||||
NODE_ENV: production
|
||||
env:
|
||||
NODE_OPTIONS: --max_old_space_size=4096
|
||||
steps:
|
||||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
|
||||
|
||||
- name: Use Node 16
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # tag=v3
|
||||
- name: Node
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Cache pnpm modules
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
env:
|
||||
cache-name: cache-pnpm-modules
|
||||
node-version-file: '.nvmrc'
|
||||
- name: Install pnpm
|
||||
run: |
|
||||
corepack enable
|
||||
corepack install
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm install --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-
|
||||
|
||||
- uses: pnpm/action-setup@d882d12c64e032187b2edb46d3a0d003b7a43598 # tag=v2.4.0
|
||||
with:
|
||||
version: latest-8
|
||||
run_install: |
|
||||
- recursive: true
|
||||
args: [--frozen-lockfile]
|
||||
pnpm-
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
- name: Build Translations percentage
|
||||
run: pnpm --filter @verdaccio/crowdin-translations build
|
||||
- name: Cache Docusaurus Build
|
||||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3
|
||||
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # 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 # tag=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 }}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
name: netlify-plugin-pnpm
|
||||
inputs: []
|
||||
15
.prettierrc
Normal file
15
.prettierrc
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"endOfLine": "lf",
|
||||
"useTabs": false,
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": true,
|
||||
"bracketSpacing": true,
|
||||
"trailingComma": "es5",
|
||||
"semi": true,
|
||||
"plugins": ["@trivago/prettier-plugin-sort-imports"],
|
||||
"importOrder": ["^@verdaccio/(.*)$", "^[./]"],
|
||||
"importOrderSeparation": true,
|
||||
"importOrderParserPlugins": ["typescript", "classProperties", "jsx"],
|
||||
"importOrderSortSpecifiers": true
|
||||
}
|
||||
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
@@ -1,13 +1,10 @@
|
||||
// Place your settings in this file to overwrite default and user settings.
|
||||
{
|
||||
"files.exclude": {
|
||||
"**/.nyc_output": true,
|
||||
"**/build": false,
|
||||
"**/coverage": true,
|
||||
".idea": true,
|
||||
"storage_default_storage": true,
|
||||
".yarn": true
|
||||
},
|
||||
"editor.formatOnSave": true,
|
||||
"typescript.tsdk": "node_modules/typescript/lib"
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ The Verdaccio project is split into several areas, the first three hosted in the
|
||||
|
||||
## Prepare local setup {#local-setup}
|
||||
|
||||
**Note**: The size of the Verdaccio project is quite significant. Unzipped it is about 33 MB. However, a full build with all node_modules installed takes about **2.8 GB** of disk space (~190k files)!
|
||||
|
||||
Verdaccio uses [pnpm](https://pnpm.io) as the package manager for development in this repository.
|
||||
|
||||
If you are using pnpm for the first time the [pnpm configuration documentation](https://pnpm.io/configuring) may be useful to avoid any potential problems with the following steps.
|
||||
@@ -41,61 +43,70 @@ package-lock=false
|
||||
|
||||
This setting would cause the `pnpm install` command to install incorrect versions of package dependencies and the subsequent `pnpm build` step would likely fail.
|
||||
|
||||
To begin your development setup, please install the latest version of pnpm globally:
|
||||
We use [corepack](https://github.com/nodejs/corepack) to install and use a specific (latest) version of pnpm. Please run the following commands which is use a specific version on Node.js and configure it to use a specific version of pnpm. The version of pnpm is specified in the `package.json` file in `packageManager` field.
|
||||
|
||||
```shell
|
||||
nvm install
|
||||
corepack enable
|
||||
```
|
||||
npm i -g pnpm@latest-8
|
||||
|
||||
`pnpm` version will be updated mainly by the maintainers but if you would like to set it to a specific version, you can do so by running the following command:
|
||||
|
||||
> `packageManager` at the `package.json` defines the default version to be used.
|
||||
|
||||
```shell
|
||||
corepack prepare
|
||||
```
|
||||
|
||||
With pnpm installed, the first step is installing all dependencies:
|
||||
|
||||
```
|
||||
```shell
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### Building the project
|
||||
|
||||
To build the project run
|
||||
Each package is independent, dependencies must be build first, run:
|
||||
|
||||
```
|
||||
```shell
|
||||
pnpm build
|
||||
```
|
||||
|
||||
### Running test
|
||||
|
||||
```
|
||||
```shell
|
||||
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
|
||||
```
|
||||
|
||||
or a single test unit:
|
||||
|
||||
```
|
||||
```shell
|
||||
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple'
|
||||
```
|
||||
|
||||
Coverage reporting is enabled by default, but you can turn it off to speed up
|
||||
test runs:
|
||||
|
||||
```
|
||||
```shell
|
||||
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple' --coverage=false
|
||||
```
|
||||
|
||||
You can enable increased [`debug`](https://www.npmjs.com/package/debug) output:
|
||||
|
||||
```
|
||||
```shell
|
||||
DEBUG=verdaccio:* pnpm test
|
||||
```
|
||||
|
||||
@@ -108,11 +119,22 @@ More details in the debug section
|
||||
We use [`debug`](https://www.npmjs.com/package/debug) to add helpful debugging
|
||||
output to the code. Each package has it owns namespace.
|
||||
|
||||
#### Useful Scripts
|
||||
#### Developing with local server
|
||||
|
||||
To run the application from the source code, ensure the project has been built with `pnpm build`, once this is done, there are few commands that helps to run server:
|
||||
|
||||
- `pnpm start`: Runs server on port `8000` and UI on port `4873`. This is particularly useful if you want to contribute to the UI, since it runs with hot reload.
|
||||
The command `pnpm start` runs web server on port `8000` and user interface (webpack-server) on port `4873`. This is particularly useful if you want to contribute to the UI, since it runs with hot reload. The request to the server are proxy through webpack proxy support through the port `4873`.
|
||||
|
||||
The user interface is split in two packages, the `/packages/plugins/ui-theme` and the `/packages/ui-components`. The `ui-components` package uses _storybook_ in order to develop component, but if you need to reload ui components with `ui-theme` do the following.
|
||||
|
||||
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 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` .
|
||||
|
||||
#### Useful commands
|
||||
|
||||
- `pnpm debug`: Run the server in debug mode `--inspect`. UI runs too but without hot reload. For automatic break use `pnpm debug:break`.
|
||||
- `pnpm debug:fastify`: To contribute on the [fastify migration](https://github.com/verdaccio/verdaccio/discussions/2155) this is a temporary command for such purpose.
|
||||
- `pnpm website`: Build the website, for more commands to run the _website_, run `cd website` and then `pnpm serve`, website will run on port `3000`.
|
||||
@@ -120,18 +142,18 @@ To run the application from the source code, ensure the project has been built w
|
||||
|
||||
#### 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:
|
||||
|
||||
```
|
||||
```shell
|
||||
DEBUG=verdaccio:* node packages/verdaccio/debug/bootstrap.js
|
||||
```
|
||||
|
||||
You can filter this output to just the packages you're interested in using
|
||||
namespaces:
|
||||
|
||||
```
|
||||
```shell
|
||||
DEBUG=verdaccio:plugin:* node packages/verdaccio/debug/bootstrap.js
|
||||
```
|
||||
|
||||
@@ -142,24 +164,24 @@ 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 build all modules (or the one you have modified)
|
||||
- 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)
|
||||
|
||||
```
|
||||
```shell
|
||||
pnpm build
|
||||
pnpm local:publish:release
|
||||
```
|
||||
|
||||
The last step consist on install globally the package from the local registry which runs on the default port (4873).
|
||||
|
||||
```
|
||||
```shell
|
||||
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}
|
||||
|
||||
@@ -186,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
|
||||
@@ -220,7 +242,7 @@ Questions can be asked via [Discord](https://discord.gg/7qWJxBf)
|
||||
|
||||
## Development Guidelines {#development-guidelines}
|
||||
|
||||
It's recommended use a UNIX system for local development, Windows should works fine for development, but is not daily tested could not be perfect. To ensure a fast code review and merge, please follow the next guidelines:
|
||||
It's recommended use a UNIX system for local development, Windows dev local support is not being tested and might not work. To ensure a fast code review and merge, please follow the next guidelines:
|
||||
|
||||
Any contribution gives you the right to be part of this organization as _collaborator_ and your avatar will be automatically added to the [contributors page](https://verdaccio.org/contributors).
|
||||
|
||||
@@ -250,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.
|
||||
|
||||
@@ -285,7 +307,7 @@ contribution to get merged (unless it does not affect functionality or
|
||||
user-facing content, eg: docs, readme, adding test or typo/lint fixes). To
|
||||
create a changeset please run:
|
||||
|
||||
```
|
||||
```shell
|
||||
pnpm changeset
|
||||
```
|
||||
|
||||
@@ -337,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.
|
||||
|
||||
@@ -364,6 +386,8 @@ All translations are provided by the **[crowdin](http://crowdin.com)** platform,
|
||||
|
||||
If you want to contribute by adding translations, create an account (GitHub could be used as fast alternative), in the platform you can contribute to two areas, the website or improve User Interface translations.
|
||||
|
||||
> Languages with less the 40% of translations available are excluded by the build system.
|
||||
|
||||
If a language is not listed, ask for it in the [Discord](https://discord.gg/7qWJxBf) channel #contribute channel.
|
||||
|
||||
For adding a new **language** on the UI follow these steps:
|
||||
@@ -371,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.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:18-alpine as builder
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:21-alpine as builder
|
||||
|
||||
ENV NODE_ENV=development \
|
||||
VERDACCIO_BUILD_REGISTRY=https://registry.npmjs.org
|
||||
@@ -11,7 +11,7 @@ RUN apk --no-cache add openssl ca-certificates wget && \
|
||||
|
||||
WORKDIR /opt/verdaccio-build
|
||||
COPY . .
|
||||
RUN npm -g i pnpm@latest-8 && \
|
||||
RUN npm -g i pnpm@8.9.0 && \
|
||||
pnpm config set registry $VERDACCIO_BUILD_REGISTRY && \
|
||||
pnpm install --frozen-lockfile --ignore-scripts && \
|
||||
rm -Rf test && \
|
||||
@@ -20,7 +20,7 @@ RUN npm -g i pnpm@latest-8 && \
|
||||
# NODE_ENV=production pnpm install --frozen-lockfile --ignore-scripts
|
||||
# RUN pnpm install --prod --ignore-scripts
|
||||
|
||||
FROM node:18-alpine
|
||||
FROM node:21-alpine
|
||||
LABEL maintainer="https://github.com/verdaccio/verdaccio"
|
||||
|
||||
ENV VERDACCIO_APPDIR=/opt/verdaccio \
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Verdaccio contributors
|
||||
Copyright (c) 2024 Verdaccio contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
73
README.md
73
README.md
@@ -1,4 +1,4 @@
|
||||
[](https://donate.redcrossredcrescent.org/ua/donate/~my-donation?_cv=1)
|
||||
[](https://u24.gov.ua)
|
||||
|
||||
> Verdaccio stands for **peace**, stop the war, we will be yellow / blue 🇺🇦 until that happens.
|
||||
|
||||
@@ -33,7 +33,6 @@ Google Cloud Storage** or create your own plugin.
|
||||
[](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
|
||||
[](https://crowdin.com/project/verdaccio)
|
||||
|
||||
[](https://twitter.com/verdaccio_npm)
|
||||
[](https://github.com/verdaccio/verdaccio/stargazers)
|
||||
[](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)
|
||||
|
||||
@@ -44,7 +43,7 @@ Google Cloud Storage** or create your own plugin.
|
||||
Install with npm:
|
||||
|
||||
```bash
|
||||
npm install --location=global verdaccio@next
|
||||
npm install -g verdaccio@next
|
||||
```
|
||||
|
||||
With `yarn`
|
||||
@@ -80,15 +79,37 @@ Furthermore, you can read the [**Debugging Guidelines**](https://github.com/verd
|
||||
You can develop your own [plugins](https://verdaccio.org/docs/plugins) with the [verdaccio generator](https://github.com/verdaccio/generator-verdaccio-plugin). Installing [Yeoman](https://yeoman.io/) is required.
|
||||
|
||||
```
|
||||
npm install --location=global yo
|
||||
npm install --location=global generator-verdaccio-plugin
|
||||
npm install -g yo
|
||||
npm install -g generator-verdaccio-plugin
|
||||
```
|
||||
|
||||
Learn more [here](https://verdaccio.org/docs/dev-plugins) how to develop plugins. Share your plugins with the community.
|
||||
|
||||
## Integration Tests
|
||||
|
||||
In our compatibility testing project, we're dedicated to ensuring that your favorite commands work seamlessly across different versions of npm, pnpm, and Yarn. From publishing packages to managing dependencies.
|
||||
Our goal is to give you the confidence to use your preferred package manager without any issues. So dive in, check out our matrix, and see how your commands fare across the board!
|
||||
|
||||
[Learn or contribute here](https://github.com/verdaccio/verdaccio/tree/master/e2e/cli)
|
||||
|
||||
### Commands
|
||||
|
||||
| cmd | npm6 | npm7 | npm8 | npm9 | npm10 | pnpm8 | pnpm9 (beta) | yarn1 | yarn2 | yarn3 | yarn4 |
|
||||
| --------- | ---- | ---- | ---- | ---- | ----- | ----- | ------------ | ----- | ----- | ----- | ----- |
|
||||
| publish | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| audit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||
| install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| deprecate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
|
||||
| ping | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
|
||||
| search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
|
||||
| star | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
|
||||
| stars | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
|
||||
| dist-tag | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
|
||||
|
||||
## Donations
|
||||
|
||||
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider 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.
|
||||
|
||||
@@ -114,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:
|
||||
|
||||
@@ -124,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">
|
||||
@@ -201,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:
|
||||
|
||||
@@ -213,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
|
||||
|
||||
@@ -270,7 +291,7 @@ Thanks to the following companies to help us to achieve our goals providing free
|
||||
|  |  |
|
||||
| [@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?
|
||||
|
||||
@@ -324,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)
|
||||
|
||||
@@ -34,7 +34,7 @@ Note that time-frame and processes are subject to each program’s 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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -91,8 +91,8 @@ class LocalMemory {
|
||||
(_this$data = this.data) === null || _this$data === void 0
|
||||
? void 0
|
||||
: (_this$data$list = _this$data.list) === null || _this$data$list === void 0
|
||||
? void 0
|
||||
: _this$data$list.length
|
||||
? void 0
|
||||
: _this$data$list.length
|
||||
);
|
||||
return Promise.resolve(
|
||||
(_this$data2 = this.data) === null || _this$data2 === void 0 ? void 0 : _this$data2.list
|
||||
|
||||
@@ -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:
|
||||
>
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
"main": "./build/index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"devDependencies": {
|
||||
"@verdaccio/config": "workspace:7.0.0-next.3",
|
||||
"@verdaccio/core": "workspace:7.0.0-next.3",
|
||||
"@verdaccio/types": "workspace:12.0.0-next.1",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.14",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.14",
|
||||
"@verdaccio/types": "workspace:12.0.0-next.2",
|
||||
"debug": "4.3.4",
|
||||
"fs-extra": "10.1.0",
|
||||
"fs-extra": "11.2.0",
|
||||
"get-port": "5.1.1",
|
||||
"got": "11.8.6",
|
||||
"js-yaml": "4.1.0",
|
||||
"get-port": "5.1.1",
|
||||
"lodash": "4.17.21",
|
||||
"verdaccio": "workspace:7.0.0-next.3"
|
||||
"verdaccio": "workspace:7.0.0-next-7.14"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest",
|
||||
|
||||
@@ -31,12 +31,13 @@ export async function exec(options: SpawnOptions, cmd, args): Promise<ExecOutput
|
||||
}
|
||||
|
||||
const childProcess = spawn(cmd, args, spawnOptions);
|
||||
// @ts-ignore
|
||||
const rl = createInterface({ input: childProcess.stdout });
|
||||
if (childProcess.stdout) {
|
||||
const rl = createInterface({ input: childProcess.stdout });
|
||||
|
||||
rl.on('line', function (line) {
|
||||
stdout += line;
|
||||
});
|
||||
rl.on('line', function (line) {
|
||||
stdout += line;
|
||||
});
|
||||
}
|
||||
|
||||
const err = new Error(`Running "${cmd} ${args.join(' ')}" returned error code `);
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -45,14 +46,9 @@ export async function exec(options: SpawnOptions, cmd, args): Promise<ExecOutput
|
||||
resolve({ stdout, stderr });
|
||||
} else {
|
||||
err.message += `${error}...\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}\n`;
|
||||
return reject({ stdout, stderr: err });
|
||||
const errorObj = { stdout, stderr: err };
|
||||
return reject(errorObj);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function silentNpm(...args): Promise<ExecOutput> {
|
||||
debug('run silent npm %o', args);
|
||||
// @ts-ignore
|
||||
return exec({ silent: true }, 'npm', args);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import { join } from 'path';
|
||||
import { fileUtils } from '@verdaccio/core';
|
||||
|
||||
export function createProject(projectName: string) {
|
||||
// @ts-ignore
|
||||
const tempRootFolder = global.__namespace.getItem('dir-suite-root');
|
||||
const verdaccioInstall = join(tempRootFolder, projectName);
|
||||
fs.mkdirSync(verdaccioInstall);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.1",
|
||||
"dependencies": {
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0",
|
||||
"npm": "10.1.0"
|
||||
"npm": "10.5.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.1",
|
||||
"dependencies": {
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0",
|
||||
"npm": "9.7.1"
|
||||
"npm": "9.9.3"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.1",
|
||||
"dependencies": {
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0",
|
||||
"npm": "9.7.1"
|
||||
"npm": "9.9.3"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.1",
|
||||
"dependencies": {
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0",
|
||||
"npm": "9.7.1"
|
||||
"npm": "9.9.3"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.1",
|
||||
"dependencies": {
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0",
|
||||
"npm": "9.7.1"
|
||||
"npm": "9.9.3"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -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
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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 };
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"extends": "../../../.babelrc"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"rules": {
|
||||
"no-console": 0,
|
||||
"@typescript-eslint/no-var-requires": 0,
|
||||
"@typescript-eslint/explicit-member-accessibility": 0
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -1,3 +0,0 @@
|
||||
const config = require('../jest.config');
|
||||
|
||||
module.exports = { ...config };
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"extends": "../../../tsconfig.reference.json",
|
||||
"references": [
|
||||
{
|
||||
"path": "../cli-commons"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.1",
|
||||
"dependencies": {
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0",
|
||||
"yarn": "1.22.19"
|
||||
"yarn": "1.22.22"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.1"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
|
||||
@@ -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.1",
|
||||
"@verdaccio/test-cli-commons": "workspace:1.1.0"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -9,6 +9,14 @@ import { generatePackageMetadata } from '@verdaccio/test-helper';
|
||||
|
||||
let registry1;
|
||||
export default defineConfig({
|
||||
retries: {
|
||||
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 () => {
|
||||
|
||||
@@ -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:/);
|
||||
});
|
||||
});
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user