Compare commits

..

9 Commits

Author SHA1 Message Date
Juan Picado
b56fee1473 chore(release): 4.12.1 2021-05-22 08:04:52 +02:00
Juan Picado
e9068fbc8b chore: reduce to node 10 2021-05-22 08:02:55 +02:00
Juan Picado
2d13816254 chore: remove unused workflows 2021-05-22 08:02:20 +02:00
Juan Picado
6870f990c4 fix: update docker base 14.17.0 2021-05-22 08:01:57 +02:00
Juan Picado
edef457209 chore: typo 2021-05-22 07:57:09 +02:00
Juan Picado
a760e6814d fix: emit warning for upgrade 5.x and publish on previous 2021-05-22 07:55:45 +02:00
Juan Picado
e54a8871ea chore: disable latest for 4.x 2021-05-22 07:44:42 +02:00
Juan Picado
0a1c5744b8 chore: update readme 2021-04-10 20:44:13 +02:00
Juan Picado
c727ee83db chore: update docker 4.x next 2021-03-28 18:58:46 +02:00
2532 changed files with 70361 additions and 364408 deletions

245
.all-contributorsrc Normal file
View File

@@ -0,0 +1,245 @@
{
"projectName": "verdaccio",
"projectOwner": "verdaccio",
"repoType": "github",
"repoHost": "https://github.com",
"commitConvention": "none",
"files": [
"CONTRIBUTORS.md"
],
"contributors": [
{
"login": "juanpicado",
"name": "Juan Picado",
"avatar_url": "https://avatars0.githubusercontent.com/u/558752?v=4",
"profile": "https://www.linkedin.com/in/jotadeveloper/",
"contributions": [
"doc",
"code",
"infra",
"eventOrganizing",
"blog",
"maintenance"
]
},
{
"login": "sergiohgz",
"name": "Sergio Herrera",
"avatar_url": "https://avatars3.githubusercontent.com/u/14012309?v=4",
"profile": "https://github.com/sergiohgz",
"contributions": [
"infra",
"maintenance"
]
},
{
"login": "DanielRuf",
"name": "Daniel Ruf",
"avatar_url": "https://avatars1.githubusercontent.com/u/827205?v=4",
"profile": "https://daniel-ruf.de/",
"contributions": [
"security",
"infra",
"maintenance"
]
},
{
"login": "priscilawebdev",
"name": "Priscila Oliveira",
"avatar_url": "https://avatars1.githubusercontent.com/u/29228205?v=4",
"profile": "https://priscilawebdev.github.io/priscilaoliveira/",
"contributions": [
"design",
"code",
"maintenance"
]
},
{
"login": "ayusharma",
"name": "Ayush Sharma",
"avatar_url": "https://avatars0.githubusercontent.com/u/6918450?v=4",
"profile": "http://ayusharma.github.io/",
"contributions": [
"infra",
"code",
"design"
]
},
{
"login": "trentearl",
"name": "Trent Earl",
"avatar_url": "https://avatars2.githubusercontent.com/u/802857?v=4",
"profile": "https://github.com/trentearl",
"contributions": [
"code"
]
},
{
"login": "jmwilkinson",
"name": "jmwilkinson",
"avatar_url": "https://avatars0.githubusercontent.com/u/17836030?v=4",
"profile": "https://github.com/jmwilkinson",
"contributions": [
"code"
]
},
{
"login": "bufferoverflow",
"name": "Roger Meier",
"avatar_url": "https://avatars2.githubusercontent.com/u/378909?v=4",
"profile": "https://github.com/bufferoverflow",
"contributions": [
"plugin"
]
},
{
"login": "jamesgeorge007",
"name": "James George",
"avatar_url": "https://avatars2.githubusercontent.com/u/25279263?v=4",
"profile": "https://ghuser.io/jamesgeorge007",
"contributions": [
"code"
]
},
{
"login": "AvailCat",
"name": "AvailCat",
"avatar_url": "https://avatars3.githubusercontent.com/u/19658647?v=4",
"profile": "https://github.com/AvailCat",
"contributions": [
"code",
"infra",
"maintenance"
]
},
{
"login": "lgaitan",
"name": "Lucius Gaitán",
"avatar_url": "https://avatars0.githubusercontent.com/u/5970350?v=4",
"profile": "https://www.luciusgaitan.com/",
"contributions": [
"code"
]
},
{
"login": "ramonornela",
"name": "Ramon Henrique Ornelas",
"avatar_url": "https://avatars1.githubusercontent.com/u/187946?v=4",
"profile": "https://github.com/ramonornela",
"contributions": [
"code"
]
},
{
"login": "UnitedMarsupials-zz",
"name": "UnitedMarsupials-zz",
"avatar_url": "https://avatars1.githubusercontent.com/u/1486340?v=4",
"profile": "https://people.freebsd.org/~mi/resume/",
"contributions": [
"code"
]
},
{
"login": "ryan-codingintrigue",
"name": "Ryan Graham",
"avatar_url": "https://avatars0.githubusercontent.com/u/9048902?v=4",
"profile": "http://www.codingintrigue.co.uk/",
"contributions": [
"code"
]
},
{
"login": "coolsp",
"name": "coolsp",
"avatar_url": "https://avatars1.githubusercontent.com/u/1246647?v=4",
"profile": "https://github.com/coolsp",
"contributions": [
"code"
]
},
{
"login": "ashishsurana",
"name": "Ashish Surana",
"avatar_url": "https://avatars0.githubusercontent.com/u/5610944?v=4",
"profile": "http://ashishsurana.in/",
"contributions": [
"code"
]
},
{
"login": "buffaybu",
"name": "Wang Yifei",
"avatar_url": "https://avatars3.githubusercontent.com/u/2025661?v=4",
"profile": "https://github.com/buffaybu",
"contributions": [
"code"
]
},
{
"login": "lirantal",
"name": "Liran Tal",
"avatar_url": "https://avatars1.githubusercontent.com/u/316371?v=4",
"profile": "https://twitter.com/liran_tal",
"contributions": [
"code"
]
},
{
"login": "brenordr",
"name": "Breno Rodrigues",
"avatar_url": "https://avatars2.githubusercontent.com/u/19731692?v=4",
"profile": "https://github.com/brenordr",
"contributions": [
"code"
]
},
{
"login": "jachstet-sea",
"name": "jachstet-sea",
"avatar_url": "https://avatars0.githubusercontent.com/u/7993508?v=4",
"profile": "https://github.com/jachstet-sea",
"contributions": [
"code"
]
},
{
"login": "Vrtak-CZ",
"name": "Patrik Votoček",
"avatar_url": "https://avatars1.githubusercontent.com/u/112567?v=4",
"profile": "https://patrik.votocek.cz/",
"contributions": [
"code"
]
},
{
"login": "monkeywithacupcake",
"name": "jess",
"avatar_url": "https://avatars3.githubusercontent.com/u/7316730?v=4",
"profile": "https://github.com/monkeywithacupcake",
"contributions": [
"code"
]
},
{
"login": "toolsofraj",
"name": "toolsofraj",
"avatar_url": "https://avatars0.githubusercontent.com/u/2507152?v=4",
"profile": "https://github.com/toolsofraj",
"contributions": [
"code"
]
},
{
"login": "ddhp",
"name": "Jian-Chen Chen (jesse)",
"avatar_url": "https://avatars1.githubusercontent.com/u/1715380?v=4",
"profile": "https://github.com/ddhp",
"contributions": [
"translation",
"code"
]
}
],
"skipCi": true,
"contributorsPerLine": 7
}

View File

@@ -1,14 +0,0 @@
{
"presets": [
[
"@babel/env",
{
"targets": {
"node": 12
}
}
],
"@babel/typescript"
],
"ignore": ["**/*.d.ts"]
}

View File

@@ -1,8 +0,0 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/master/docs/common-questions.md)

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/ui-components': patch
'@verdaccio/ui-theme': patch
---
- fixed login state when token is expired (@ku3mi41 in #3980)

View File

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

View File

@@ -1,44 +0,0 @@
---
'@verdaccio/api': major
'@verdaccio/auth': major
'@verdaccio/cli': major
'@verdaccio/config': major
'@verdaccio/core': major
'@verdaccio/file-locking': major
'@verdaccio/tarball': major
'@verdaccio/types': major
'@verdaccio/url': major
'@verdaccio/hooks': major
'@verdaccio/loaders': major
'@verdaccio/logger': major
'@verdaccio/logger-7': major
'@verdaccio/logger-commons': major
'@verdaccio/logger-prettify': major
'@verdaccio/middleware': major
'@verdaccio/node-api': major
'verdaccio-audit': major
'verdaccio-auth-memory': major
'verdaccio-htpasswd': major
'@verdaccio/local-storage': major
'verdaccio-memory': major
'@verdaccio/ui-theme': major
'@verdaccio/proxy': major
'@verdaccio/search': major
'@verdaccio/server': major
'@verdaccio/server-fastify': major
'@verdaccio/signature': major
'@verdaccio/cli-standalone': major
'@verdaccio/store': major
'docusaurus-plugin-contributors': major
'@verdaccio/eslint-config': major
'@verdaccio/test-helper': major
'customprefix-auth': major
'@verdaccio/ui-components': major
'@verdaccio/utils': major
'verdaccio': major
'@verdaccio/web': major
'@verdaccio/website': major
'@verdaccio/local-publish': patch
---
feat!: bump to v7

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/ui-theme': patch
---
- added `onClick` prop to `Link` component in @verdaccio/ui-components. (@moglerdev in #3989)
- resolved issue in the `Package` component where the download button was incorrectly opening a new tab to the homepage. (@moglerdev in #3989)

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/cli': patch
---
chore: add config location and loglevel to startup log

View File

@@ -1,18 +0,0 @@
{
"$schema": "https://unpkg.com/@changesets/config@1.3.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [
[
"verdaccio",
"@verdaccio/cli",
"@verdaccio/core",
"@verdaccio/config",
"@verdaccio/node-api",
"@verdaccio/ui-theme"
]
],
"access": "public",
"baseBranch": "master",
"updateInternalDependencies": "patch"
}

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/middleware': patch
---
fix(middleware): custom favicon

View File

@@ -1,10 +0,0 @@
---
'@verdaccio/ui-components': minor
'@verdaccio/ui-theme': patch
'@verdaccio/types': patch
'@verdaccio/middleware': patch
'@verdaccio/config': patch
'@verdaccio/cli': patch
---
feat: complete overhaul of web user interface

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/ui-components': patch
'@verdaccio/ui-theme': patch
---
chore: fix type for country flags

View File

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

View File

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

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
---
fix: display labels for engine versions

View File

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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/middleware': patch
---
fix(middleware): link to favicon in template

View File

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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/ui-components': patch
---
chore: sync dependency defs between ui-components and ui-theme

View File

@@ -1,9 +0,0 @@
---
'@verdaccio/types': patch
'@verdaccio/config': patch
'@verdaccio/core': patch
'@verdaccio/store': patch
'@verdaccio/api': patch
---
feat: add support for npm owner

View File

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

View File

@@ -1,15 +0,0 @@
---
'@verdaccio/ui-theme': minor
'@verdaccio/ui-components': minor
---
feat: ui improvements
Some UI improvements
- download progress indicator: https://github.com/verdaccio/verdaccio/discussions/4068
- fix dark mode and readme css support https://github.com/verdaccio/verdaccio/discussions/3942 https://github.com/verdaccio/verdaccio/discussions/3467
- fix global for yarn packages and add version to the packages on copy
- feat: hide deprecated versions option
- fix: improve deprecated package style
- feat: display deprecated versions

View File

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

View File

@@ -1,5 +0,0 @@
---
'verdaccio-audit': minor
---
feat: verdaccio-audit support timeout option

View File

@@ -1,5 +0,0 @@
---
'generator-verdaccio-plugin': major
---
feat: migration to monorepo

View File

@@ -1,18 +0,0 @@
---
'@verdaccio/config': minor
'@verdaccio/core': minor
'@verdaccio/file-locking': minor
'@verdaccio/tarball': minor
'@verdaccio/url': minor
'@verdaccio/logger-7': minor
'@verdaccio/logger-commons': minor
'@verdaccio/logger-prettify': minor
'@verdaccio/middleware': minor
'verdaccio-audit': minor
'verdaccio-htpasswd': minor
'@verdaccio/search': minor
'@verdaccio/signature': minor
'@verdaccio/utils': minor
---
restore legacy support

View File

@@ -1,7 +0,0 @@
---
'@verdaccio/store': patch
'@verdaccio/tarball': patch
---
- Fixes polynomial regular expression when determining the file name of tarball
- Add tests for extracting tarball name

View File

@@ -1,36 +0,0 @@
---
'@verdaccio/api': major
'@verdaccio/auth': major
'@verdaccio/cli': major
'@verdaccio/config': major
'@verdaccio/core': major
'@verdaccio/file-locking': major
'@verdaccio/tarball': major
'@verdaccio/types': major
'@verdaccio/url': major
'@verdaccio/hooks': major
'@verdaccio/loaders': major
'@verdaccio/logger': major
'@verdaccio/logger-commons': major
'@verdaccio/logger-prettify': major
'@verdaccio/middleware': major
'@verdaccio/node-api': major
'verdaccio-audit': major
'verdaccio-auth-memory': major
'verdaccio-htpasswd': major
'@verdaccio/local-storage': major
'verdaccio-memory': major
'@verdaccio/ui-theme': major
'@verdaccio/proxy': major
'@verdaccio/search': major
'@verdaccio/server': major
'@verdaccio/server-fastify': major
'@verdaccio/signature': major
'@verdaccio/store': major
'@verdaccio/ui-components': major
'@verdaccio/utils': major
'verdaccio': major
'@verdaccio/web': major
---
update major dependencies, remove old nodejs support

View File

@@ -1,7 +0,0 @@
---
'@verdaccio/ui-theme': minor
'@verdaccio/ui-components': minor
'@verdaccio/config': minor
---
feat: forbidden user interface

View File

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

View File

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

View File

@@ -1,116 +0,0 @@
{
"mode": "pre",
"tag": "next-7",
"initialVersions": {
"@verdaccio/test-cli-commons": "1.1.0",
"@verdaccio/e2e-cli-npm6": "1.0.1",
"@verdaccio/e2e-cli-npm7": "1.0.1",
"@verdaccio/e2e-cli-npm8": "1.0.1",
"@verdaccio/e2e-cli-npm9": "1.0.1",
"@verdaccio/e2e-cli-pnpm6": "1.0.1",
"@verdaccio/e2e-cli-pnpm7": "1.0.1",
"@verdaccio/e2e-cli-pnpm8": "1.0.1",
"@verdaccio/e2e-cli-yarn1": "1.0.1",
"@verdaccio/e2e-cli-yarn2": "1.0.1",
"@verdaccio/e2e-cli-yarn3": "1.0.1",
"@verdaccio/e2e-cli-yarn4": "1.0.1",
"@verdaccio/e2e-ui": "2.0.0",
"@verdaccio/api": "6.0.0",
"@verdaccio/auth": "6.0.0",
"@verdaccio/cli": "6.0.0",
"@verdaccio/config": "6.0.0",
"@verdaccio/core": "6.0.0",
"@verdaccio/file-locking": "11.0.0",
"@verdaccio/tarball": "11.0.0",
"@verdaccio/types": "11.0.0",
"@verdaccio/url": "11.0.0",
"@verdaccio/hooks": "6.0.0",
"@verdaccio/loaders": "6.0.0",
"@verdaccio/logger": "6.0.0",
"@verdaccio/logger-7": "6.0.0",
"@verdaccio/logger-commons": "6.0.0",
"@verdaccio/logger-prettify": "6.0.0",
"@verdaccio/middleware": "6.0.0",
"@verdaccio/node-api": "6.0.0",
"verdaccio-audit": "11.0.0",
"verdaccio-auth-memory": "11.0.0",
"verdaccio-htpasswd": "11.0.0",
"@verdaccio/local-storage": "11.0.0",
"verdaccio-memory": "11.0.0",
"@verdaccio/ui-theme": "6.0.0",
"@verdaccio/proxy": "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",
"@verdaccio/cli-standalone": "6.0.0",
"@verdaccio/store": "6.0.0",
"docusaurus-plugin-contributors": "1.0.1",
"@verdaccio/eslint-config": "2.0.0",
"@verdaccio/test-helper": "2.0.0",
"@verdaccio/crowdin-translations": "1.0.0",
"customprefix-auth": "1.0.0",
"@verdaccio/ui-components": "2.0.0",
"@verdaccio/utils": "6.0.0",
"verdaccio": "6.0.0",
"@verdaccio/web": "6.0.0",
"@verdaccio/website": "5.20.2",
"@verdaccio/local-publish": "0.0.1",
"@verdaccio/search": "7.0.0-next.0",
"@verdaccio/e2e-cli-pnpm9": "1.0.1",
"generator-verdaccio-plugin": "4.1.0"
},
"changesets": [
"angry-trees-tie",
"big-cameras-invent",
"breezy-mayflies-pull",
"chilled-carrots-guess",
"chilly-rivers-chew",
"cuddly-camels-relax",
"dirty-dolphins-try",
"dirty-islands-push",
"dry-shoes-report",
"eight-icons-heal",
"eight-squids-judge",
"eighty-lobsters-study",
"fluffy-onions-act",
"good-cups-train",
"good-lions-rush",
"grumpy-pots-watch",
"itchy-mangos-wink",
"long-jars-collect",
"long-moles-attend",
"many-bees-tickle",
"nervous-fireants-design",
"old-turkeys-heal",
"olive-bananas-wink",
"perfect-chairs-act",
"pink-apples-nail",
"pink-balloons-leave",
"poor-seals-turn",
"quick-buses-scream",
"real-socks-vanish",
"rich-shrimps-check",
"sharp-wolves-carry",
"shiny-worms-retire",
"shy-carrots-compare",
"shy-garlics-cry",
"silent-shirts-knock",
"slow-wasps-glow",
"spicy-birds-flow",
"strange-points-repair",
"stupid-dancers-relate",
"ten-kids-tan",
"thin-snails-flow",
"thirty-toes-swim",
"twenty-queens-protect",
"unlucky-cycles-sparkle",
"weak-fans-explain",
"wet-balloons-give",
"wicked-kiwis-check",
"wicked-worms-wash",
"wild-otters-talk",
"witty-meals-nail",
"young-donuts-own"
]
}

View File

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

View File

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

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/types': patch
'@verdaccio/store': patch
---
fix: update fields for abbreviated manifest

View File

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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/search': patch
---
fix: keyword undefined errors

View File

@@ -1,14 +0,0 @@
---
'@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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/signature': patch
---
chore: export signature options type

View File

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

View File

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

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/store': patch
'@verdaccio/test-helper': patch
---
fix: store readme when publishing locally

View File

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

View File

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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/ui-components': patch
---
chore(ui): update babel dependencies

View File

@@ -1,6 +0,0 @@
---
'@verdaccio/config': patch
'@verdaccio/website': patch
---
fix: typo in config docs regarding check_owners

View File

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

View File

@@ -1,7 +0,0 @@
---
'@verdaccio/ui-theme': patch
'@verdaccio/ui-components': patch
'@verdaccio/types': patch
---
fix: change bundleDependencies to array

View File

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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/server': patch
---
fix: Avoid 404 error when getting favicon from root

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/api': patch
---
chore(api): update comment about route parameters

View File

@@ -1,5 +0,0 @@
---
'@verdaccio/config': patch
---
chore(config): increase test coverage

View File

@@ -8,22 +8,19 @@
.*
# you can add exceptions like in .gitignore to maintain a whitelist:
# e.g.
!.babelrc
!babel.config.js
!.eslintrc
!.prettierrc.json
!.prettierignore
!.prettierrc
!.eslintignore
!.stylelintrc
!.jest.config.js
!.jestEnvironment.js
!.yarnrc.yml
!.yarn/releases/yarn-berry.cjs
!.yarn/plugins/*
# do not copy over node_modules we will run `pnpm install` anyway
# do not copy over node_modules we will run `npm install` anyway
node_modules
website
jest
docs
contrib
docker-examples
website
systemd
# output from test runs and similar things
*.log

View File

@@ -7,7 +7,6 @@ end_of_line = lf
insert_final_newline = true
# 2 space indentation
[{.,}*.{ts,tsx,js,jsx,yml,yaml}]
[{.,}*.{js,jsx,yml,yaml}]
indent_style = space
indent_size = 2
quote_type = single

View File

@@ -1,20 +1,20 @@
**/fixtures/**
**/mock/store/**
**/partials/**
**/types/custom.d.ts
build/
node_modules
coverage/
node_modules/
static/
website/
wiki/
dist/
docs/
test/functional/store/*
docker-examples/**/lib/**/*.js
test/cli/e2e-yarn4/bin/yarn-4.0.0-rc.14.cjs
yarn.js
# storybook
packages/ui-components/storybook-static
dist.js
bundle.js
static/
flow-typed/
website/
build/
*.md
*.lock
*.yaml
Dockerfile
*.rpi
*.html
*.scss
*.png
*.jpg
*.sh
test/unit/partials/
types/custom.d.ts
docker-examples/

102
.eslintrc Normal file
View File

@@ -0,0 +1,102 @@
{
"extends": [
"eslint:recommended",
"google",
"plugin:react/recommended",
"plugin:jest/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/typescript",
"plugin:jsx-a11y/recommended",
"prettier"
],
"plugins": ["import", "jest", "jsx-a11y", "react-hooks"],
"env": {
"es6": true,
"node": true,
"jest": true
},
"globals": {
"__APP_VERSION__": true
},
"parserOptions": {
"allowImportExportEverywhere": true,
"sourceType": "module",
"ecmaVersion": 11,
"ecmaFeatures": {
"impliedStrict": true,
"jsx": true
}
},
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
},
"parser": "@typescript-eslint/parser",
"rules": {
"curly": ["error", "all"],
"react/prop-types": 0,
"jest/no-export": 0,
"jest/no-test-callback": 0,
"jest/expect-expect": 0,
"jest/no-try-expect": 0,
"jest/no-done-callback": "off",
"jest/no-conditional-expect": "off",
"keyword-spacing": "off",
"no-tabs": "off",
"no-useless-escape": "off",
"padded-blocks": "off",
"require-jsdoc": "off",
"valid-jsdoc": "off",
"import/order": ["error"],
"eol-last": "error",
"no-irregular-whitespace": "error",
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
"no-trailing-spaces": "error",
"camelcase": "off",
"guard-for-in": "error",
"new-cap": "error",
"max-len": ["error", 180],
"no-console": ["error", { "allow": ["warn"] }],
"no-constant-condition": "error",
"no-debugger": "error",
"no-empty": "error",
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-new-require": "error",
"no-undef": "error",
"no-unreachable": "error",
"no-var": "error",
"one-var": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",
"handle-callback-err": 0,
"prefer-const": 0,
"@typescript-eslint/camelcase": 0,
"@typescript-eslint/ban-ts-ignore": 0,
"@typescript-eslint/no-var-requires": 0,
"@typescript-eslint/no-inferrable-types": 0,
"@typescript-eslint/no-empty-function": 0,
"@typescript-eslint/no-this-alias": 0,
"@typescript-eslint/no-use-before-define": 0,
"@typescript-eslint/array-type": ["error"],
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/indent": 0,
"@typescript-eslint/ban-ts-comment": 0,
"@typescript-eslint/ban-types": 0,
"@typescript-eslint/explicit-module-boundary-types": 0,
// rules to fix
"no-unused-vars": ["warn", { "vars": "all", "args": "none" }],
"jest/no-identical-title": ["warn"],
"prefer-promise-reject-errors": ["warn"],
"jest/no-disabled-tests": ["warn"],
"jest/no-commented-out-tests": ["warn"],
"@typescript-eslint/prefer-optional-chain": ["warn"],
"@typescript-eslint/explicit-member-accessibility": ["warn"],
"@typescript-eslint/no-unused-vars": ["warn"]
}
}

View File

@@ -1,3 +0,0 @@
module.exports = {
extends: ['@verdaccio/eslint-config'],
};

199
.gitattributes vendored
View File

@@ -1,199 +0,0 @@
## GITATTRIBUTES FOR WEB PROJECTS
#
# These settings are for any web project.
#
# Details per file setting:
# text These files should be normalized (i.e. convert CRLF to LF).
# binary These files are binary and should be left untouched.
#
# Note that binary is a macro for -text -diff.
######################################################################
# Auto detect
## Handle line endings automatically for files detected as
## text and leave all files detected as binary untouched.
## This will handle all files NOT defined below.
* text=lf
# Source code
*.bash text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
*.coffee text eol=lf
*.css text eol=lf
*.htm text diff=html
*.html text diff=html
*.inc text eol=lf
*.ini text eol=lf
*.js text eol=lf
*.json text eol=lf
*.jsx text eol=lf
*.less text eol=lf
*.ls text eol=lf
*.map text -diff
*.od text eol=lf
*.onlydata text eol=lf
*.php text diff=php
*.pl text eol=lf
*.ps1 text eol=crlf
*.py text diff=python
*.rb text diff=ruby
*.sass text eol=lf
*.scm text eol=lf
*.scss text diff=css
*.sh text eol=lf
*.sql text eol=lf
*.styl text eol=lf
*.tag text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.xml text eol=lf
*.xhtml text diff=html
# Docker
Dockerfile text eol=lf
# Documentation
*.ipynb text eol=lf
*.markdown text eol=lf
*.md text eol=lf
*.mdwn text eol=lf
*.mdown text eol=lf
*.mkd text eol=lf
*.mkdn text eol=lf
*.mdtxt text eol=lf
*.mdtext text eol=lf
*.txt text eol=lf
AUTHORS text eol=lf
CHANGELOG text eol=lf
CHANGES text eol=lf
CONTRIBUTING text eol=lf
COPYING text eol=lf
copyright text eol=lf
*COPYRIGHT* text eol=lf
INSTALL text eol=lf
license text eol=lf
LICENSE text eol=lf
NEWS text eol=lf
readme text eol=lf
*README* text eol=lf
TODO text eol=lf
# Templates
*.dot text eol=lf
*.ejs text eol=lf
*.haml text eol=lf
*.handlebars text eol=lf
*.hbs text eol=lf
*.hbt text eol=lf
*.jade text eol=lf
*.latte text eol=lf
*.mustache text eol=lf
*.njk text eol=lf
*.phtml text eol=lf
*.tmpl text eol=lf
*.tpl text eol=lf
*.twig text eol=lf
*.vue text eol=lf
# Configs
*.cnf text eol=lf
*.conf text eol=lf
*.config text eol=lf
.editorconfig text eol=lf
.env text eol=lf
.gitattributes text eol=lf
.gitconfig text eol=lf
.htaccess text eol=lf
*.lock text -diff
package-lock.json text -diff
*.toml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
browserslist text eol=lf
Makefile text eol=lf
makefile text eol=lf
# Heroku
Procfile text eol=lf
# Graphics
*.ai binary
*.bmp binary
*.eps binary
*.gif binary
*.gifv binary
*.ico binary
*.jng binary
*.jp2 binary
*.jpg binary
*.jpeg binary
*.jpx binary
*.jxr binary
*.pdf binary
*.png binary
*.psb binary
*.psd binary
# SVG treated as an asset (binary) by default.
*.svg text eol=lf
# If you want to treat it as binary,
# use the following line instead.
# *.svg binary
*.svgz binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
# Audio
*.kar binary
*.m4a binary
*.mid binary
*.midi binary
*.mp3 binary
*.ogg binary
*.ra binary
# Video
*.3gpp binary
*.3gp binary
*.as binary
*.asf binary
*.asx binary
*.fla binary
*.flv binary
*.m4v binary
*.mng binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.ogv binary
*.swc binary
*.swf binary
*.webm binary
# Archives
*.7z binary
*.gz binary
*.jar binary
*.rar binary
*.tar binary
*.zip binary
# Fonts
*.ttf binary
*.eot binary
*.otf binary
*.woff binary
*.woff2 binary
# Executables
*.exe binary
*.pyc binary
# RC files (like .babelrc or .eslintrc)
*.*rc text eol=lf
# Ignore files (like .npmignore or .gitignore)
*.*ignore text eol=lf

View File

@@ -6,31 +6,10 @@ title: ''
assignees: ''
---
<!-- PLEASE READ THIS:
- If you are not sure is a bug, OPEN a DISCUSSION, if is a legitimate bug, is easy to create a bug from a discussion.
- Empty reports won't be considered and eventually be closed by a bot.
- Include debugging notes will help to fix it faster, HOW TO: https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio
- If you remove this template, ticket will be closed immediately.
- No English perfect is required, use public translators if is need it, we will do our best to help you.
- Extra bonus: The most complete this report is delivered, the faster you will get a response.
- Extra bonus: include screenshots, logs (remove sensitive data).
- If you are willing to fix it, there is a checkbox at the bottom.
-->
**Your Environment**
<!-- bug below the version 5.x will be closed, see SECURITY.md for more details -->
* **verdaccio version**: 5.x.x
* **node version** [12.x.x, 14.x.x]:
* **package manager**: [npm@7, pnpm@6, yarn@2]
* **os**: [mac, windows@10, linux]
* **platform**: [npm, docker, helm, other]
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**To Reproduce**
<!-- IMPORTANT:
- How to reproduce the issue
- Steps to reproduce the issue
@@ -39,11 +18,9 @@ Be aware, the lack of reproducible steps the issue might cause your ticket to be
-->
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots, server logs, package manager log**
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Configuration File (cat ~/.config/verdaccio/config.yaml)**
@@ -51,21 +28,16 @@ Be aware, the lack of reproducible steps the issue might cause your ticket to be
<!-- Please be careful do not leak any sensitive information, remove tokens -->
**Environment information**
<!-- Please paste the results of running `verdaccio --info` -->
**Debugging output**
- `$ NODE_DEBUG=request verdaccio` display request calls (verdaccio <--> uplinks)
- `$ DEBUG=verdaccio* verdaccio` enable extreme verdaccio debug mode (verdaccio api)
- `$ npm -ddd` prints:
- `$ npm config get registry` prints:
**Contribute to Verdaccio**
- [ ] I'm willing to fix this bug 🥇
- `$ NODE_DEBUG=request verdaccio` display request calls (verdaccio <--> uplinks)
- `$ DEBUG=express:* verdaccio` enable extreme verdaccio debug mode (verdaccio api)
- `$ npm -ddd` prints:
- `$ npm config get registry` prints:
<!--
IMPORTANT: please do not attach external files, all content should be visible from any device.
-->

View File

@@ -7,5 +7,8 @@ contact_links:
url: https://github.com/verdaccio/verdaccio/security/policy
about: I want to report a security vulnerability
- name: Chat 🏘
url: https://discord.gg/7qWJxBf
about: Quick question? Try out Discord chat, you can get faster feedback
url: http://chat.verdaccio.org
about: For a quick question you should do it through our community chat
- name: User Interface Report 👩🏼‍🎨👨🏼‍🎨
url: https://github.com/verdaccio/ui/issues/new/choose
about: Any report related with the User Interface should be posted in another repository

View File

@@ -1,24 +1,21 @@
---
name: 'Feature Request 🔮'
name: "Feature Request \U0001F52E"
about: You want a feature request.
title: ''
labels: 'topic: feature request'
assignees: ''
---
<!--
IMPORTANT: If you don't have an action plan, please consider create a DISCUSSION (idea) instead for an open a feature request issue.
https://github.com/verdaccio/verdaccio/discussions/new
Verdaccio is a project addressed for voluntaries, if you appreciate this project consider to donate.
1$/5$ or custom amount single contribution
or monthly
1$/month - minimal contribution
5$/month - nice contribution
500$ - help to promote this project, marketing, stickers.
2000$/year - sponsor status, your company logo will be in our readme, meetups talks and your request will have high priority
https://github.com/sponsors/verdaccio
https://opencollective.com/verdaccio
As reminder, the Open Source must be sustainable.
-->

View File

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

View File

@@ -1,148 +0,0 @@
name: CI windows
on:
workflow_dispatch:
schedule:
- cron: '5 0 * * SUN'
permissions:
contents: read
jobs:
prepare:
runs-on: ubuntu-latest
name: setup verdaccio
services:
verdaccio:
image: verdaccio/verdaccio:nightly-master
ports:
- 4873:4873
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 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@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
pnpm-
lint:
runs-on: windows-latest
name: Lint
needs: prepare
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts
- name: Lint
run: pnpm lint
format:
runs-on: windows-latest
name: Format
needs: prepare
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts
- name: Lint
run: pnpm format:check
build:
needs: [format, lint]
strategy:
fail-fast: true
matrix:
os: [windows-latest]
node_version: [18]
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: npm i pnpm@latest-8 -g
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- name: build
run: pnpm build
- name: Test
run: pnpm test
ci-e2e-ui:
needs: [format, lint]
runs-on: windows-latest
name: UI Test E2E
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 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@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --registry http://localhost:4873
- name: build
run: pnpm build
- name: Test UI
run: pnpm test:e2e:ui
# env:
# DEBUG: verdaccio:e2e*

View File

@@ -1,39 +0,0 @@
name: E2E Docker Proxy Plugins Test
on:
workflow_dispatch:
push:
branches:
- 'master'
schedule:
# run every sunday
- cron: '0 0 * * 0'
jobs:
docker:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/docker-build-install-plugin/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: 18
- name: verdaccio cli
run: npm install -g verdaccio --registry=http://localhost:4873
- name: gastby cli
run: npm install -g gatsby-cli --registry http://localhost:4873
- name: netlify cli
run: npm install -g netlify-cli --registry http://localhost:4873
- name: angular cli
run: npm install -g @angular/cli --registry http://localhost:4873
- name: Stop containers
if: always()
run: docker-compose -f "./e2e/docker/docker-build-install-plugin/docker-compose.yaml" down

View File

@@ -1,131 +0,0 @@
on:
schedule:
- cron: '0 3 * * 5'
pull_request:
branches:
- '**'
name: 'E2E Angular CLI with verdaccio'
jobs:
# todo: fix yarn global issue, cannot find ng
# yarn:
# strategy:
# fail-fast: false
# matrix:
# os: [ubuntu-latest, windows-latest]
#
# name: '${{ matrix.os }} / yarn:angular example'
# runs-on: ${{ matrix.os }}
#
# steps:
# - uses: actions/checkout@v2.3.1
#
# - name: 'Use Node.js 10.x'
# uses: actions/setup-node@v2.1.1
# with:
# node-version: 10.x
# - name: Install Dependencies
# run: yarn install --pure-lockfile
# - name: 'Run verdaccio in the background'
# run: |
# nohup node ./scripts/run-verdaccio.js &
# - name: 'Ping to verdaccio'
# run: |
# npm ping --registry http://localhost:4873
# - name: 'Running the integration test'
# run: |
# source scripts/e2e-setup-ci.sh
# yarn init --yes
#
# yarn global add @angular/cli
# which nodemon
# ng new verdaccio-angular --interactive=false
#
# cd verdaccio-angular
# echo "registry=http://localhost:4873" > ~/.npmrc
# yarn add @angular-devkit/core@next @babel/preset-env @babel/core -D
#
# ng build --aot
npm:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
name: '${{ matrix.os }} / npm:angular example'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.3.1
- name: 'Use Node.js 10.x'
uses: actions/setup-node@v2.1.1
with:
node-version: 10.x
- name: 'install latest npm'
run: npm i -g npm
- name: Install Dependencies
run: yarn install --pure-lockfile
- name: 'Run verdaccio in the background'
run: |
nohup node ./scripts/run-verdaccio.js &
- name: 'Ping to verdaccio'
run: |
npm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
echo "registry=http://localhost:4873" > ~/.npmrc
npm config set loglevel="http"
npm config set fetch-retries="5"
npm config set fetch-retry-factor="50"
npm config set fetch-retry-mintimeout="20000"
npm config set fetch-retry-maxtimeout="80000"
npm install -g @angular/cli
ng new verdaccio-angular --interactive=false
cd verdaccio-angular
npm install @angular-devkit/core@next @babel/preset-env @babel/core -D
npm run ng build --aot
# pnpm throws errors worth to check why
# pnpm:
# strategy:
# fail-fast: false
# matrix:
# os: [ubuntu-latest, windows-latest]
#
# name: '${{ matrix.os }} / pnpm:angular example'
# runs-on: ${{ matrix.os }}
#
# steps:
# - uses: actions/checkout@v2.3.1
#
# - name: 'Use Node.js 10.x'
# uses: actions/setup-node@v2.1.1
# with:
# node-version: 10.x
# - name: 'install latest pnpm'
# run: npm i -g pnpm
# - name: Install Dependencies
# run: yarn install --pure-lockfile
# - name: 'Run verdaccio in the background'
# run: |
# nohup node ./scripts/run-verdaccio.js &
# - name: 'Ping to verdaccio'
# run: |
# pnpm ping --registry http://localhost:4873
# - name: 'Running the integration test'
# run: |
# source scripts/e2e-setup-ci.sh
# pnpm init --force
#
# pnpm install -g @angular/cli
# ng new verdaccio-angular --interactive=false
#
# cd verdaccio-angular
# echo "registry=http://localhost:4873" > ~/.npmrc
# pnpm install @angular-devkit/core@next @babel/preset-env @babel/core -D
#
# pnpm run ng build --aot

View File

@@ -1,49 +0,0 @@
on:
schedule:
- cron: '0 3 * * 5'
pull_request:
branches:
- '**'
name: 'E2E Gatsby.js CLI with verdaccio'
jobs:
npm:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
name: '${{ matrix.os }} / npm:gatsby example'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.3.3
- name: 'Use Node.js 14.x'
uses: actions/setup-node@v2.1.5
with:
node-version: 14.x
- name: 'install latest npm'
run: npm i -g npm@latest-6
- name: Install Dependencies
run: yarn install
- name: 'Run verdaccio in the background'
run: |
nohup node ./scripts/run-verdaccio.js --config ./scripts/e2e-config.yaml &
- name: 'Ping to verdaccio'
run: |
npm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
echo "registry=http://localhost:4873
loglevel="silent"
fetch-retries=10
fetch-retry-factor=2
fetch-retry-mintimeout=10000
fetch-retry-maxtimeout=80000" > ~/.npmrc
npm config list
npm i -g gatsby
gatsby new my-gatsby
cd my-gatsby
npm run build

View File

@@ -1,121 +0,0 @@
on:
schedule:
- cron: '0 3 * * 5'
pull_request:
branches:
- '**'
name: 'E2E Jest with verdaccio'
jobs:
yarn:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
name: '${{ matrix.os }} / yarn:jest example'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.3.1
- name: 'Use Node.js 10.x'
uses: actions/setup-node@v2.1.1
with:
node-version: 10.x
- name: Install Dependencies
run: yarn install --pure-lockfile
- name: 'Run verdaccio in the background'
run: |
nohup node ./scripts/run-verdaccio.js &
- name: 'Ping to verdaccio'
run: |
npm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
yarn init --yes
yarn add jest --registry http://localhost:4873
echo "it('should pass', () => { expect(true).toBeTruthy(); });" | tee pass.test.js
yarn jest pass.test.js
yarn add left-pad --registry http://localhost:4873 --verbose
echo "const leftPad = require('left-pad'); it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js
yarn jest module.test.js
npm:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
name: '${{ matrix.os }} / npm:jest example'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.3.1
- name: 'Use Node.js 10.x'
uses: actions/setup-node@v2.1.1
with:
node-version: 10.x
- name: 'install latest npm'
run: npm i -g npm
- name: Install Dependencies
run: yarn install --pure-lockfile
- name: 'Run verdaccio in the background'
run: |
nohup node ./scripts/run-verdaccio.js &
- name: 'Ping to verdaccio'
run: |
npm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
npm init --force
npm install jest --registry http://localhost:4873
echo "it('should pass', () => { expect(true).toBeTruthy(); });" | tee pass.test.js
yarn jest pass.test.js
yarn add left-pad --registry http://localhost:4873 --verbose
echo "const leftPad = require('left-pad'); it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js
yarn jest module.test.js
pnpm:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
name: '${{ matrix.os }} / pnpm:jest example'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.3.1
- name: 'Use Node.js 10.x'
uses: actions/setup-node@v2.1.1
with:
node-version: 10.x
- name: 'install latest pnpm'
run: npm i -g pnpm
- name: Install Dependencies
run: yarn install --pure-lockfile
- name: 'Run verdaccio in the background'
run: |
nohup node ./scripts/run-verdaccio.js &
- name: 'Ping to verdaccio'
run: |
pnpm ping --registry http://localhost:4873
- name: 'Running the integration test'
run: |
source scripts/e2e-setup-ci.sh
pnpm init --force
pnpm install jest --registry http://localhost:4873
echo "it('should pass', () => { expect(true).toBeTruthy(); });" | tee pass.test.js
yarn jest pass.test.js
yarn add left-pad --registry http://localhost:4873 --verbose
echo "const leftPad = require('left-pad'); it('should resolve a module', () => { expect(typeof leftPad).toBe('function');});" | tee module.test.js
yarn jest module.test.js

View File

@@ -1,35 +0,0 @@
name: Canary Release to Verdaccio
on:
pull_request:
paths:
- .github/workflows/release-canary.yml
- 'packages/**'
- 'package.json'
- 'lerna.json'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Use Node (latest)
uses: actions/setup-node@v1
with:
node_version: 13
- name: Install
run: yarn --frozen-lockfile
- name: Clean
run: yarn clean
- name: Lint
run: yarn lint
- name: Build
run: yarn build
- name: Test
run: yarn test
- name: Publish
run: |
echo "//registry.verdaccio.org/:_authToken=${{ secrets.VERDACCIO_TOKEN }}" > .npmrc
git update-index --assume-unchanged .npmrc
yarn publish:canary

14
.github/lock.yml vendored
View File

@@ -13,10 +13,10 @@ lockLabel: false
lockComment: >
🤖This thread has been automatically locked 🔒 since there has not been
any recent activity after it was closed.
We lock tickets after 90 days with the idea to encourage you to open a ticket with new fresh data
and to provide you better feedback 🤝and better visibility 👀.
If you consider, you can attach this ticket 📨 to the new one as a reference for better context.
Thanks for being a part of the Verdaccio community! 💘
@@ -26,10 +26,10 @@ lockComment: >
# Optionally, specify configuration settings just for `issues` or `pulls`
issues:
exemptLabels:
- help-wanted
lockLabel: outdated
exemptLabels:
- help-wanted
lockLabel: outdated
pulls:
daysUntilLock: 90
lockLabel: outdated
daysUntilLock: 90
lockLabel: outdated

18
.github/stale.yml vendored
View File

@@ -1,7 +1,7 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 365
daysUntilStale: 15
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 500
daysUntilClose: 10
# Issues with these labels will never be considered stale
exemptLabels:
- dev: high priority
@@ -10,17 +10,17 @@ exemptLabels:
- issue: bug
- dev: discuss
# Label to use when marking an issue as stale
staleLabel: 'issue: wontfix'
staleLabel: issue: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
Hi pal 👋🏼!
Hi pal 👋🏼!
This issue has gone quiet 😶.
This issue has gone quiet 😶.
We get a lot of issues, so we currently close issues after 180 days of inactivity. Its been at least 90c days since the last update here.
If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing!
We get a lot of issues, so we currently close issues after 25 days of inactivity. Its been at least 15 days since the last update here.
If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the Verdaccio community! 💘
Thanks for being a part of the Verdaccio community! 💘
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@@ -1,69 +0,0 @@
name: Changesets
on:
schedule:
- cron: '0 0 * * *'
push:
branches:
- master
env:
CI: true
PNPM_CACHE_FOLDER: .pnpm-store
jobs:
# Update package versions from changesets.
version:
timeout-minutes: 14
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
steps:
- name: checkout code repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
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
- name: setup pnpm config registry
run: pnpm config set registry https://registry.npmjs.org
- name: install dependencies
run: pnpm install
env:
NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
- name: crowdin download
env:
CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
CONTEXT: production
run: pnpm crowdin:download
- name: build
run: pnpm build
- name: create versions
uses: changesets/action@master
with:
version: pnpm ci:version
commit: 'chore: update versions'
title: 'chore: update versions'
publish: pnpm ci:publish
createGithubReleases: false
setupGitUser: false
env:
GITHUB_TOKEN: ${{ secrets.CHANGESET_RELEASE_TOKEN }}
NPM_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
NPM_CONFIG_REGISTRY: https://registry.npmjs.org

27
.github/workflows/ci-e2e-ui.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
name: E2E UI
on: [pull_request]
jobs:
ci:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
node_version: [14]
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2.3.1
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@v2.1.5
with:
node-version: ${{ matrix.node_version }}
- name: Install
run: yarn install --immutable
- name: Build
run: yarn code:build
- name: Test UI
run: yarn run test:e2e

View File

@@ -1,169 +1,29 @@
name: CI
on:
push:
pull_request:
paths:
- .changeset/**
- .github/workflows/ci.yml
- 'packages/**'
- 'test/**'
- 'docker-examples/**'
- 'jest/**'
- 'package.json'
- 'pnpm-workspace.yaml'
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
on: [push, pull_request]
jobs:
prepare:
runs-on: ubuntu-latest
name: setup verdaccio
services:
verdaccio:
image: verdaccio/verdaccio:5
ports:
- 4873:4873
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 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@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
pnpm-
lint:
runs-on: ubuntu-latest
name: Lint
needs: prepare
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --ignore-scripts
- name: Lint
run: pnpm lint
format:
runs-on: ubuntu-latest
name: Format
needs: prepare
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --ignore-scripts
- name: Lint
run: pnpm format:check
test:
needs: [prepare]
ci:
name: Node ${{ matrix.node_version }}
strategy:
fail-fast: true
fail-fast: false
matrix:
os: [ubuntu-latest]
node_version: [18, 20, 21, 22]
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --ignore-scripts --registry http://localhost:4873
- name: build
run: pnpm build
- name: Test
run: pnpm test
sync-translations:
needs: [test]
node_version: [10]
runs-on: ubuntu-latest
name: synchronize translations
if: (github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio') || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
## we need scripts, pupetter downloads aditional content
run: pnpm install --registry http://localhost:4873
- name: build
run: pnpm build
- name: generate website translations
run: pnpm --filter ...@verdaccio/website write-translations
- name: sync
env:
CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
CONTEXT: production
run: pnpm crowdin:sync
- uses: actions/checkout@v2.3.3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@v2.1.5
with:
node-version: ${{ matrix.node_version }}
- name: Install
run: yarn install --immutable
- name: Build
run: yarn code:build
- name: Lint
run: yarn lint
- name: Test
run: yarn test

View File

@@ -1,59 +0,0 @@
name: 'Code scanning - action'
on:
pull_request:
paths:
- .github/workflows/codeql-analysis.yml
- 'packages/**'
schedule:
- cron: '0 2 * * 4'
permissions:
contents: read
jobs:
CodeQL-Build:
permissions:
actions: read # for github/codeql-action/init to get workflow details
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/autobuild to send a status report
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2
# Override language selection by uncommenting this and choosing your languages
# with:
# languages: go, javascript, csharp, python, cpp, java
# 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@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2

View File

@@ -1,45 +0,0 @@
name: E2E Docker Proxy Apache Test
on:
workflow_dispatch:
push:
branches:
- 'master'
schedule:
# run every sunday
- cron: '0 0 * * 0'
jobs:
docker:
timeout-minutes: 10
runs-on: ubuntu-latest
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
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: angular cli
run: npm install -g @angular/cli --registry http://localhost
- name: Stop containers
if: always()
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" down

View File

@@ -1,42 +0,0 @@
name: E2E Docker Proxy Nginx Test
on:
workflow_dispatch:
push:
branches:
- 'master'
jobs:
docker:
timeout-minutes: 10
runs-on: ubuntu-latest
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
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: angular cli
run: npm install -g @angular/cli --registry http://localhost
- name: Stop containers
if: always()
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" down

View File

@@ -0,0 +1,24 @@
name: Docker & Publish Pre-check
on: [push, pull_request]
jobs:
testDocker:
name: Test Docker Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Build
run: docker build .
env:
VERDACCIO_BUILD_REGISTRY: https://registry.verdaccio.org
testVerdaccio:
name: Test Verdaccio Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Publish
uses: verdaccio/github-actions/publish@v0.4.0
with:
args: -d

View File

@@ -4,28 +4,24 @@ on:
push:
paths:
- .github/workflows/docker-publish.yml
- .github/workflows/docker-publish.yml
- 'packages/**'
- 'src/**'
- 'conf/**'
- 'types/**'
- 'docker-bin/**'
- 'bin/**'
- 'package.json'
- 'pnpm-*.yaml'
- 'Dockerfile'
- '.dockerignore'
- 'yarn.lock'
branches:
- 'master'
- '**'
tags:
- 'v*'
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
docker:
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # tag=v1
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
with:
driver-opts: network=host
@@ -39,14 +35,15 @@ jobs:
uses: crazy-max/ghaction-docker-meta@v1
with:
images: ${{ github.repository }}
tag-custom: nightly-master
tag-custom-only: ${{ github.ref == 'refs/heads/master' }}
tag-custom: 4.x-next
tag-custom-only: ${{ github.ref == 'refs/heads/4.x' }}
tag-latest: false
tag-semver: |
{{version}}
{{major}}
{{major}}.{{minor}}
- name: Build & Push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile

View File

@@ -1,218 +0,0 @@
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
name: setup e2e verdaccio
services:
verdaccio:
image: verdaccio/verdaccio:nightly-master
ports:
- 4873:4873
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 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@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node 16
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm recursive install --reporter=silence --registry http://localhost:4873
- name: build
run: pnpm build
- name: Cache packages
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
id: cache-packages
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
restore-keys: |
packages-
# - name: Cache test
# uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
# id: cache-test
# with:
# path: ./e2e/
# key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# restore-keys: |
# test-
e2e-cli-npm:
needs: [prepare, build]
strategy:
fail-fast: false
matrix:
pkg:
[
npm6,
npm7,
npm8,
npm9,
npm10
]
node: [20, 21]
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3
# with:
# path: ./e2e/
# key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: build e2e
run: pnpm --filter @verdaccio/test-cli-commons build
- name: Test CLI
run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}}
e2e-cli-pnpm:
needs: [prepare, build]
strategy:
fail-fast: true
matrix:
pkg:
[
pnpm8,
pnpm9,
]
node: [20, 21]
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --loglevel debug --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# - 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
- name: set store
run: |
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
# - 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}}

View File

@@ -1,39 +0,0 @@
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
name: UI Test E2E
services:
verdaccio:
image: verdaccio/verdaccio:5
ports:
- 4873:4873
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
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
with:
name: videos
path: /home/runner/work/verdaccio/verdaccio/e2e/ui/cypress/videos

View File

@@ -1,47 +0,0 @@
name: E2E Generator Verdaccio Plugin
on:
pull_request:
workflow_dispatch:
push:
branches:
- 'master'
jobs:
e2e-plugin-generator:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18,20, 22]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ matrix.node-version }}
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: install
run: pnpm install
- name: build
run: pnpm build
- name: install verdaccio
run: npm install -g verdaccio@5
- name: Start server
run: verdaccio -c e2e/docker/generator-e2e/generator.yaml &
- name: ping server
run: curl http://localhost:4873/-/ping
- name: login
run: npx npm-cli-login -u test -p test -e test@domain.test -r http://localhost:4873
- name: publish
run: pnpm local:publish
- name: install yeoman
run: npm install -g yo@4 --loglevel=info
- name: install generator
run: npm install -g generator-verdaccio-plugin --loglevel=info --registry http://localhost:4873
# Future: add a test to verify the plugin is working with prompt

View File

@@ -2,7 +2,7 @@ name: Test local registry for js vulnerabilities
on:
schedule:
- cron: '0 4 * * 4'
- cron: '0 0 * * 7'
jobs:
security:
runs-on: ubuntu-latest
@@ -10,4 +10,4 @@ jobs:
- name: Test for public javascript library vulnerabilities
uses: lirantal/is-website-vulnerable@1.15.10
with:
scan-url: 'https://registry.verdaccio.org'
scan-url: "https://registry.verdaccio.org"

32
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Release
on:
push:
tags:
- '*'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Use Node (latest)
uses: actions/setup-node@v2.1.5
with:
node-version: 14
- name: Install
run: yarn install
- name: Build
run: yarn code:build
- name: Lint
run: yarn lint
- name: Publish
run: sh scripts/publish.sh
env:
REGISTRY_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
REGISTRY_URL: registry.npmjs.org
- name: Create release notes
run: sh scripts/github-release.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,55 +0,0 @@
---
name: static data
on:
workflow_dispatch:
schedule:
# twice peer week
- cron: '0 0 * * 1,4'
# for now, scheduled, we can enable on push master but not make much sense now
# push:
# branches:
# - master
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
prepare:
name: Run script
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: 18.x
- name: install pnpm
run: sudo npm i pnpm@latest-8 -g
- name: install dependencies
run: pnpm install
- name: Build Translations percentage
run: pnpm --filter @verdaccio/crowdin-translations build
- name: update contributors
run: pnpm run contributors
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: update addson data
run: pnpm script:addson
- name: update translations
run: pnpm run translations
env:
TOKEN: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
- name: format
run: pnpm format
- name: Commit & Push changes
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # tag=v1.5
with:
github_token: ${{ secrets.TOKEN_VERDACCIOBOT_GITHUB }}
message: "chore: updated static data"
branch: master
author_email: verdaccio.npm@gmail.com
author_name: verdacciobot

View File

@@ -1,58 +0,0 @@
name: UI Components
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
permissions:
contents: read # to fetch code (actions/checkout)
env:
DEBUG: verdaccio*
jobs:
deploy:
permissions:
contents: read # to fetch code (actions/checkout)
deployments: write
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@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version-file: '.nvmrc'
- name: Cache pnpm modules
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
env:
cache-name: cache-pnpm-modules
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-
- name: Install pnpm
run: |
corepack enable
corepack prepare --activate pnpm@8.9.0
- name: Install
run: pnpm install
- name: Build storybook
run: pnpm ui:storybook:build
- 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 to Netlify
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_UI_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
run: pnpm --filter ...@verdaccio/ui-components netlify:ui:deploy

View File

@@ -1,75 +0,0 @@
name: Verdaccio Website CI
on:
workflow_dispatch:
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
permissions:
contents: read # to fetch code (actions/checkout)
deployments: write
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@692973e3d937129bcbf40652eb9f2f61becf3332 # 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@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
pnpm-
- name: Build
run: pnpm build
- name: Build Translations percentage
run: pnpm --filter @verdaccio/crowdin-translations build
- name: Cache Docusaurus Build
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:
path: website/node_modules/.cache/webpack
key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: cache/webpack-${{github.ref}}
- name: Build Production
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
- name: Deploy to Netlify
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
run: pnpm --filter ...@verdaccio/website netlify:deploy

67
.gitignore vendored
View File

@@ -1,58 +1,45 @@
*.log*
npm-debug.log
verdaccio-*.tgz
.DS_Store
build/
dist/
.eslintcache
node_modules
### database
### Test
test/unit/partials/store/test-*-storage/*
test/unit/partials/store/*-storage/*
test/unit/partials/store/storage_default_storage/*
.verdaccio-db.json
.sinopia-db.json
### test
###
!bin/verdaccio
test-storage*
access-storage*
.verdaccio_test_env
node_modules
package-lock.json
npm_test-fails-add-tarball*
yarn-error.log
# docker examples
docker-examples/v5/reverse_proxy/nginx/relative_path/storage/*
docker-examples/v5/**/storage/*
# jest
# Istanbul
reports/
coverage/
.nyc*
## IDE
.idea/
# React
bundle.js
bundle.js.map
__tests__
# Compiled script
packages/partials
tsconfig.tsbuildinfo
static/*
## bundle files
packages/standalone/dist/
# This is the Yarn build state; it's local to each clone
/.yarn/build-state.yml
## ui
packages/plugins/ui-theme/static
/packages/plugins/ui-theme/src/i18n/download_translations/
!/packages/plugins/ui-theme/src/i18n/crowdin/ui.json
# CI Pnpm cache
.pnpm-store/
#docs
website/docs/api/**/*.md
website/docs/api/**/*.yml
!website/docs/api/index.md
packages/**/docs
# cypress
e2e/ui/cypress/videos/**/*
e2e/ui/cypress/screenshots/**/*
# storybook
packages/ui-components/storybook-static
# plugin generator
packages/tools/generator-verdaccio-plugin/generators/
# This is the Yarn install state cache, it can be rebuilt anytime
/.yarn/install-state.gz
.history

View File

@@ -1,5 +0,0 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
#./node_modules/.bin/lint-staged
npm run husky:pre-commit

View File

@@ -1,3 +1,4 @@
## npm
npm-debug.log
yarn-error.log
@@ -12,8 +13,8 @@ src/
.vscode/
.circleci/
debug/
docker-examples/
reports/
## assets and website
assets/
@@ -22,6 +23,7 @@ docs/
wiki/
## flow
flow-typed/
types/
# jest

2
.nvmrc
View File

@@ -1 +1 @@
20
13

View File

@@ -6,34 +6,26 @@
**/pnpm-lock.yaml
**/verdaccio-corrupted.db.json
**/wrong.package.json
crowdin.yaml
/docs/website
/website/translated_docs/
/website/.cache/
/website/crowdin/
/website/public/
/website/src/dictionaries/
CHANGELOG.md
CONTRIBUTORS.md
node_modules/
**/coverage/**
**/static/*.js
**/dist/*.js
website/.docusaurus/**/*
website/i18n/**/*
**/build/*.js
packages/core/local-storage/_storage/**
packages/partials/storage_default_storage/
packages/standalone/dist/bundle.js
packages/verdaccio/dist/bundle.js
docker-examples/v5/reverse_proxy/nginx/relative_path/storage/*
build/
.vscode/
test/unit/partials/*
build/*
.github/
.netlify/
packages/**/docs/**
packages/mock/mock-store/**
api/**
packages/core/local-storage/tests/__fixtures__/test-storage/
packages/plugins/ui-theme/static/
.verdaccio-db.json
test/cli/e2e-yarn4/bin/yarn-4.0.0-rc.14.cjs
yarn.js
website/docs/api/*
packages/ui-components/storybook-static/*
.vscode/
wiki/
.yarnrc.yml
yarn-error.log
.yarn/
test/functional/store/*
storage_default_storage/*
docker-examples/
.prettierignore
*.sh
.secrets-baseline

View File

@@ -1,15 +0,0 @@
{
"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
}

11
.prettierrc.json Normal file
View File

@@ -0,0 +1,11 @@
{
"endOfLine": "lf",
"useTabs": false,
"printWidth": 180,
"tabWidth": 2,
"singleQuote": true,
"bracketSpacing": true,
"jsxBracketSameLine": true,
"trailingComma": "es5",
"semi": true
}

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>verdaccio-dev</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
<filteredResources>
<filter>
<id>1630305579538</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-true-false-node_modules</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>

File diff suppressed because it is too large Load Diff

1
.sonarcloud.properties Normal file
View File

@@ -0,0 +1 @@

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