Compare commits

..

145 Commits

Author SHA1 Message Date
Juan Picado
04c081b8b2 chore: update env 2021-04-04 08:06:50 +02:00
github-actions[bot]
2d2473188d chore: update versions (6-next) (#2162)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 21:32:46 +02:00
Juan Picado
6291f5ee1e chore: remove unused code 2021-04-03 21:25:16 +02:00
Juan Picado
2aa73bb083 chore: add missing dep 2021-04-03 21:14:22 +02:00
Juan Picado
62c5b919a3 chore: fix lint 2021-04-03 21:11:49 +02:00
Juan Picado
44c8f823b4 chore: fix format 2021-04-03 21:06:26 +02:00
Juan Picado
a219e1e11c chore: fix changeset 2021-04-03 21:04:31 +02:00
Juan Picado
16f58b93c1 chore: update versions 2021-04-03 21:00:23 +02:00
Juan Picado
08aade9a68 feat: use clipanion over commander (#2159)
* feat: use clipanion over commander

* chore: update

* chore: add missing options

* chore: fix arguments

* chore: format code

* chore: update

* chore: fix missing node conf

* chore: add version

* Update setup.ts

* chore: fix config flag

* chore: add changeset
2021-04-03 20:52:17 +02:00
Juan Picado
044eb36ed2 chore: update with master (#2158) 2021-04-03 20:52:17 +02:00
Paola Morales
338076971a Migrate fs-memory library to memfs (#2149)
* Update package.json

* Update MemoryFileSystem dependency

* Update storage.ts
2021-04-03 20:52:16 +02:00
Paola Morales
cb2281a50d feat!: async storage plugin bootstrap (#2144)
* feat: async storage plugin bootstrap

* refactor fs.promise to promisify on node12

* Add changeset

* Update big-lobsters-sin.md

* Update utils.test.ts

* Update utils.test.ts

* Update ci.yml

* Update utils.test.ts
2021-04-03 20:52:16 +02:00
Juan Picado
fd8bfd5d5f chore: update ci branch docker publish 2021-04-03 20:52:16 +02:00
Juan Picado
99de53b368 chore: update docker publish next 2021-04-03 20:52:15 +02:00
Juan Picado
a556829e5e chore: update to 6.x 2021-04-03 20:52:15 +02:00
Juan Picado
11aee7c712 chore: formmat code 2021-04-03 20:52:15 +02:00
Juan Picado
c62accf1ea chore: update format 2021-04-03 20:52:15 +02:00
Juan Picado
f68232cde8 chore: merge from master 2021-04-03 20:52:14 +02:00
github-actions[bot]
910f728588 chore: update versions (alpha) (#2116)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:14 +02:00
Juan Picado
0022bd28ec feat: flexible user interface generator (#2070)
* feat: flexible template generator and manifest

* chore: add changeset

* chore: restore dep

* chore: add docs

* chore: update snapshots

* chore: update docker examples for v5

* chore: refactor web module

* chore: format

* chore: refactor web api endpoints

* test: add test for user login web

* chore: refactor endpoints

* chore: fix merge

* chore: fix merge

* Update ci.yml

* chore: test

* chore: add static

* chore: update script

* chore: fix e2e

* chore: fix method

* docs: update v5 relative docker example

* chore: update html render

* chore: update style

* Update .prettierignore

* chore: update changeset

* chore: use pnpm6 on run test

temporary ci

* chore: drop node 16 for pnpm 6

* chore: update ci

* chore: update ci

* chore: update ci

* chore: update ci

* chore: remove circle ci

* chore: better url prefix handling

* chore: format code

* chore: remove test node 10

* docs: add docker v5 relative revers proxy example

* chore: use base html tag

* chore: update test
2021-04-03 20:52:14 +02:00
github-actions[bot]
ca9d11ac2b chore: update versions (alpha) (#2098)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:13 +02:00
Juan Picado
73599b031e feat: improve cli logging on start up (#2097)
* feat: improve cli logging on start up

* chore: remove deps
2021-04-03 20:52:13 +02:00
Juan Picado
6a7252f169 chore: update pnpm (#2095) 2021-04-03 20:52:13 +02:00
Paola Morales
8c8a761ec0 chore: update eslint dependency (#2094) 2021-04-03 20:52:13 +02:00
Paola Morales
f9f51e82c5 chore: update Dependencies (#2093)
* Update dependencies

* Update dist-tags.ts

* Update dist-tags.ts
2021-04-03 20:52:12 +02:00
Paola Morales
771f36a407 chore: update babel.js version (#2092) 2021-04-03 20:52:12 +02:00
Paola Morales
343aa8dc6e Improve package.json metadata (#2091) 2021-04-03 20:52:12 +02:00
Paola Morales
f4adf120c3 chore: update package.json and README.md (#2090) 2021-04-03 20:52:11 +02:00
Paola Morales
ec9bf85553 ref: refactor utils methods (#2076)
* ref: Relocate utils functions to web pkg

* ref: Refactor utils functions

* ref: Relocate utils functions to api pkg

* ref: Relocate utils functions to config pkg

* ref: Relocate utils functions to middleware pkg

* ref: Relocate utils functions to storage pkg

* ref: relocate utils functions to proxy pkg

* ref: relocate utils functions to middleware pkg

* ref: refactor utils functions

* Fix compilation errors
2021-04-03 20:52:11 +02:00
github-actions[bot]
a3c3e64355 chore: update versions (alpha) (#2073)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:11 +02:00
Slava
f91f7d78a0 feat: allow other password hashing algorithms (#1917) (#2072) 2021-04-03 20:52:11 +02:00
Juan Picado
be85f26bf7 chore: update readme 2021-04-03 20:52:10 +02:00
github-actions[bot]
7a7840542e chore: update versions (alpha) (#2057) 2021-04-03 20:52:10 +02:00
Juan Picado
54a696c428 feat: standalone server (#2046)
* feat: standalone version

* chore: add changeset
2021-04-03 20:52:10 +02:00
Juan Picado
6041f258bb chore: update deps (#2056)
* chore: update deps

* chore: update eslint

* chore: update deps types
2021-04-03 20:52:10 +02:00
Juan Picado
f92f20a0af chore: update npmrc 2021-04-03 20:52:09 +02:00
Juan Picado
15806469f1 chore: update script 2021-04-03 20:52:09 +02:00
Juan Picado
865478d0ae chore: add registry field 2021-04-03 20:52:09 +02:00
Juan Picado
2f59abfc1a chore: add extra env var 2021-04-03 20:52:08 +02:00
Juan Picado
400ff02a87 chore: update log 2021-04-03 20:52:08 +02:00
github-actions[bot]
9e293673be chore: update versions (alpha) (#2053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:08 +02:00
Juan Picado
30807f05f3 build: release scripts alpha packages (#2052)
* chore: update deps

* chore: update deps
2021-04-03 20:52:08 +02:00
github-actions[bot]
5d795ac62f chore: update versions (alpha) (#2051)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:07 +02:00
Juan Picado
5438af9323 feat: add rate limit to all request (#2050)
* feat: add rate limit to all request

* chore: increase max

* chore: update settings

* chore: deprecate keepAliveTimeout
2021-04-03 20:52:07 +02:00
github-actions[bot]
a5af486e85 chore: update versions (alpha) (#2045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:07 +02:00
Juan Picado
869f659e3a feat: remove level dependency by lowdb for npm token cli as storage (#2043)
* feat: remove level for token by lowdb

* chore: fix format

* chore: fix config

* chore: add changeset
2021-04-03 20:52:07 +02:00
Juan Picado
5d13d9ff42 chore: update docker publish config 2021-04-03 20:52:06 +02:00
Juan Picado
93356027cc fix: docker build missing modules (#2041) 2021-04-03 20:52:06 +02:00
Juan Picado
76a9206d1e chore: testing publish docker image 2021-04-03 20:52:06 +02:00
Juan Picado
a36ed9b510 chore: update snapshot 2021-04-03 20:52:06 +02:00
Juan Picado
a94dbbe272 chore: format document 2021-04-03 20:52:05 +02:00
Juan Picado
48cda34145 chore: update readme 2021-04-03 20:52:05 +02:00
github-actions[bot]
894394a4f0 chore: update versions (alpha) (#2035)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:05 +02:00
Juan Picado
22c1faa6ec build: server reload watch mode (#2039)
* feat: server reload watch mode

* chore:update format
2021-04-03 20:52:05 +02:00
Juan Picado
7fb055d408 chore: fix gatsby cloud build (#2037) 2021-04-03 20:52:04 +02:00
Juan Picado
fbbf0d6c7c refactor: enable e2e for UI (#2036)
* refactor: enable e2e for UI

* refactor: enable e2e for UI

* refactor: enable e2e for UI

* refactor: enable e2e for UI

* refactor: enable e2e for UI

* refactor: enable e2e for UI
2021-04-03 20:52:04 +02:00
Juan Picado
4b4afd5ffe feat: ui theme on 5.x (#2033)
* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin

* chore: fix lint

* chore: add missing folder

* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin

* chore: update scripts

* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin

* refactor: relocate theme-ui as plugin
2021-04-03 20:52:04 +02:00
Juan Picado
fb18fc4879 enable CLI E2e on 5.x (#2011)
* test: enable e2e

* test: improve setup

* chore: update setup

* test: publish on temp folder

* chore: initial setup example

* chore: add global install to pnpm

* chore: update test script

* test: add info command

* chore: add install tests

* chore: add debug enabled code

* chore: update pnpm lock file
2021-04-03 20:52:03 +02:00
github-actions[bot]
3b0cc2c41f chore: update versions (alpha) (#1916)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-04-03 20:52:01 +02:00
Juan Picado
59d529a2e1 chore: verdaccio as root dependency to avoid changesets override 2021-04-03 20:52:00 +02:00
Juan Picado
70cf4cff12 chore: update lock file 2021-04-03 20:52:00 +02:00
Juan Picado
8a76992c35 chore: update lock file 2021-04-03 20:52:00 +02:00
Juan Picado
7e83e4e37a chore: update pnpm changeset versions (#2002) 2021-04-03 20:52:00 +02:00
Juan Picado
fcf4cf4d7e chore: update pnpm changeset action 2021-04-03 20:51:59 +02:00
Juan Picado
8b39837b23 chore: remove a package, move constants (#2001)
* chore: remove a package, move constants

* chore: remove *
2021-04-03 20:51:59 +02:00
Juan Picado
79ca7954ad deps: update typescript 4 (#2000) 2021-04-03 20:51:59 +02:00
Juan Picado
0c94890ab7 feat: logger pretty only as dev mode (#1999) 2021-04-03 20:51:58 +02:00
Juan Picado
7beeaf7af9 chore: add missing dependency 2021-04-03 20:51:58 +02:00
Juan Picado
4915752cb4 refactor: config module, experiments renamed to flags (#1996)
* refactor: config security refactor

* chore: add changeset

* chore: rename self_path to config_path on test

* chore: fix test

* chore: remove self_path on init
2021-04-03 20:51:58 +02:00
Juan Picado
3ff8af4a59 chore: update versions 2021-04-03 20:51:58 +02:00
Juan Picado
71f5ef2d59 refactor: config module (#1995)
* refactor: clean up config

* refactor: config, move methods

* chore: remove js-yaml from utils
2021-04-03 20:51:57 +02:00
Juan Picado
71af2686cb chore: disable rules for examples 2021-04-03 20:51:57 +02:00
Juan Picado
d8ea9e69e5 docs: relocate docker-examples to 5.x (#1990)
* docs: relocate docker-examples to 5.x

* chore: update readme

* chore: remove license

we have already one at root
2021-04-03 20:51:57 +02:00
Juan Picado
9ca3dfb3fa fix: cleanup warnings (#1986)
* fix: lint warnings

* fix: test
2021-04-03 20:51:56 +02:00
Juan Picado
36a3a38839 refactor: relocate verdaccio-active-directory plugin (#1981) 2021-04-03 20:51:56 +02:00
Juan Picado
be65079c17 refactor: relocate verdaccio-google-cloud-storage plugin (#1978) 2021-04-03 20:51:56 +02:00
Dina Basumatary
8c7d984dd1 fix: typos and toc (#1980)
* updated table of content
* corrected spelling and grammar in a few places
* header levels
2021-04-03 20:51:56 +02:00
Dina Basumatary
89f52e98cd fix: eslint errors (#1973)
* fix: eslint errors

* fix: rename a test

* fix: broken integration test

due to removing next argument in the middleware.

* changeset
2021-04-03 20:51:55 +02:00
Juan Picado
8abcbd620a refactor: relocate verdaccio-aws-storage plugin (#1977) 2021-04-03 20:51:55 +02:00
Juan Picado
45415b2850 refactor: relocate verdaccio-audit plugin (#1976) 2021-04-03 20:51:55 +02:00
Juan Picado
a10fc4dc33 refactor: relocate verdaccio-auth-memory plugin (#1975) 2021-04-03 20:51:55 +02:00
Juan Picado
531f89da88 refactor: relocate verdaccio-memory plugin (#1974) 2021-04-03 20:51:54 +02:00
ike
7d2fc97b53 fix: improving typescript practices in packages/web/src/endpoint/package.ts (#1972)
* chore: 1. Remove @ts-ignore, 2. Remove :any and infer from existed lib, 3. Prevent variable re-assign

* chore: add changeset
2021-04-03 20:51:54 +02:00
Juan Picado
0969d29b44 feat: improve legacy token signature by removing deprecated crypto.cr… (#1953)
* feat: improve legacy token signature by removing deprecated crypto.createDecipher

* fix: wrong reference

* chore: add debug
2021-04-03 20:51:54 +02:00
mknj
a33b3289b5 fix urls in some packages/*/package.json (#1952) 2021-04-03 20:51:52 +02:00
Juan Picado
5717720544 refactor: auth-utils (#1951)
* chore: refactor auth utils

* chore: relocate crypto utils
2021-04-03 20:51:52 +02:00
Juan Picado
7126fa2071 chore: update dev deps (#1950) 2021-04-03 20:51:51 +02:00
Juan Picado
b60ed45359 refactor: migrate request to node-fetch at hooks package (#1946)
* refactor(hooks): new structure for notifications

* chore: fix build

* chore: add debug

* chore: add changeset
2021-04-03 20:51:51 +02:00
Juan Picado
3c0fc27c42 refactor: max-len and printWidth to 100 (#1941)
* refactor: max-len and printWidth to 100

* chore: ci specific pnpm version

* fix: add types peer package

literally get rid of types package
2021-04-03 20:51:51 +02:00
Juan Picado
c27112488f chore: website drawer for navigation (#1940)
* feat(website): add drawer navigation

* chore: create index by language

* Update Header.tsx
2021-04-03 20:51:48 +02:00
Juan Picado
23dbb756f9 chore: prepare website for development (#1935)
* chore: fix missing dependencies

* clean index page and sidebar

* improve layout for doc page

* format

* basic layout

* Update what-is-verdaccio.md

* check format
2021-04-03 20:51:48 +02:00
Juan Picado
b269716694 docs: update contribution guidelines, scripts to debug and additional notes (#1918)
* chore: debug improments

* update guides

* docs: update contribution guidelines

* chore: add debug notest

* chore: format code
2021-04-03 20:51:47 +02:00
Juan Picado
e4571d631e feat: add typescript project references settings (#1933)
Add two different settings for compile and develop.

https://www.typescriptlang.org/docs/handbook/project-references.html
2021-04-03 20:51:47 +02:00
Abraham Schilling
537f586873 build: configure prettier as formatter for json, yaml and markdown (#1930)
* build: configure pretter as formatter for most files

* chore: reformat code (#1931)

* chore: re-format all files

* chore: force run quality anaylsis test

Co-authored-by: Juan Picado @jotadeveloper <juanpicado19@gmail.com>

Co-authored-by: Juan Picado @jotadeveloper <juanpicado19@gmail.com>
2021-04-03 20:51:47 +02:00
Juan Picado @jotadeveloper
750c5f4b08 chore: downgrade pnpm changeset workflow 2021-04-03 20:51:44 +02:00
Juan Picado
8f53047c5e chore: patch changesets example (#1929)
* chore: test changesets

* chore: add changeset
2021-04-03 20:51:43 +02:00
Abraham Schilling
392458aa07 build: add missing os matrix (#1928) 2021-04-03 20:51:43 +02:00
Abraham Schilling
09942448df 5.x tests on windows (#1919) 2021-04-03 20:51:43 +02:00
Juan Picado
ad70d4b283 chore: restore website build (#1920) 2021-04-03 20:51:43 +02:00
Juan Picado @jotadeveloper
211a52ad57 reenable docker publish 2021-04-03 20:51:42 +02:00
Juan Picado @jotadeveloper
5becb4e255 chore: ignore pnpm store 2021-04-03 20:51:42 +02:00
Juan Picado @jotadeveloper
853c77d212 chore: ci include release pr 2021-04-03 20:51:42 +02:00
Juan Picado @jotadeveloper
9f79713e96 chore: add missing script 2021-04-03 20:51:42 +02:00
Juan Picado @jotadeveloper
8a3c30b134 chore: install right dep npm-run-all 2021-04-03 20:51:41 +02:00
Juan Picado @jotadeveloper
9aa0b92e79 chore add run-s dependency 2021-04-03 20:51:41 +02:00
Juan Picado @jotadeveloper
e9b36249ef chore: update changesets workflow 2021-04-03 20:51:41 +02:00
Juan Picado @jotadeveloper
b13ab88f85 chore: update changesets workflow 2021-04-03 20:51:41 +02:00
Juan Picado @jotadeveloper
e27c080d97 chore: update changesets workflow 2021-04-03 20:51:41 +02:00
Juan Picado @jotadeveloper
c014af3300 chore: add changesets workflow 2021-04-03 20:51:40 +02:00
Juan Picado
91734f58b2 feat: enable changesets (#1913)
* chore: add changeset deps

* chore: enable prerelease mode

* enable changesets
2021-04-03 20:51:40 +02:00
Juan Picado
5290b9fa2d feat: improve workspace and dependencies debug
* feat: using workspace @verdaccio/types

* feat: use core local-storage plugin

* chore: add missing dependencies

* chore: replace trace by debug

* chore: plugin loader uses debug
2021-04-03 20:51:40 +02:00
Juan Picado @jotadeveloper
cbb6c657a5 chore: update typescript and lint plugins 2021-04-03 20:51:40 +02:00
Juan Picado @jotadeveloper
9915b73e73 chore: update wrong imports 2021-04-03 20:51:39 +02:00
Juan Picado @jotadeveloper
3f2aa98fcb feat: add @verdaccio/commons-api package
Update local references
2021-04-03 20:51:39 +02:00
Juan Picado
4ff5d28487 feat: relocate core packages (#1906)
* chore: clean lint warnings

* refactor: move core packages
2021-04-03 20:51:39 +02:00
Juan Picado @jotadeveloper
850afccbb7 chore: update branch for ci 2021-04-03 20:51:38 +02:00
Juan Picado @jotadeveloper
9195f0bce7 chore: ignore codeql analysis
I shutdown this temporary while is in development
2021-04-03 20:51:38 +02:00
Juan Picado @jotadeveloper
0126893055 chore: extend lint rules to root 2021-04-03 20:51:38 +02:00
Juan Picado
79cdf449f5 chore: lint prettier update (#1904)
* chore: update prettier@2.x

* chore: prettier auto fix

* chore: fake circleci

we don't need it but I want make dissapear the error
2021-04-03 20:51:36 +02:00
Juan Picado
0c150fa869 chore: update readme 2021-04-03 20:51:35 +02:00
Juan Picado @jotadeveloper
8c6f251590 chore: update snapshot 2021-04-03 20:51:35 +02:00
Juan Picado
914da01729 refactor: devDependencies strictly defined in each package (#1884)
* refactor: new babel preset

* chore: using pnpm

let's see how it goes, all seems works fine by far, pretty solid.
2021-04-03 20:51:35 +02:00
Juan Picado @jotadeveloper
e91a3ee8a3 chore: rebase from master 2021-04-03 20:51:35 +02:00
Juan Picado @jotadeveloper
16bc81f985 chore: update lock file 2021-04-03 20:51:34 +02:00
Juan Picado
f395e375fe refactor: test api refactor (#1826)
* test: add test for whoami

* Update middleware.ts

* test for user api

* more test for user api

* remove repeated code

* refactor

* Update index.spec.ts

* add package test

refactor others

* chore: upgrade deps

* chore: add test for package

* chore: update test

* update lock file

* Update ci.yml

* Update ci.yml

* Update package.spec.ts

* chore: update ci settings

* chore: update deps

* chore: update test
2021-04-03 20:51:34 +02:00
Juan Picado @jotadeveloper
3e1ab6910c chore: remove duplication 2021-04-03 20:51:34 +02:00
Juan Picado @jotadeveloper
9051fd8f76 chore: update readme 2021-04-03 20:51:34 +02:00
Juan Picado
c262209871 chore: website scaffolding (#1843)
* chore: upload gatsby website

* chore: update header

* chore: add background header

* chore: add ci for website

* Update ci-website.yml

* chore: update patch mach ci

* chore: update ci settings

* chore: update docker version
2021-04-03 20:51:33 +02:00
Juan Picado
c20d9bb6b2 chore: update dependencies (maintenance)
* chore: update deps

* chore: update deps

* chore: fix dependencies

* chore: update deps

* chore: update deps

* chore: add types

* chore: update jest
2021-04-03 20:51:31 +02:00
dependabot-preview[bot]
16cdae1921 build(deps): bump @verdaccio/readme from 9.3.0 to 9.5.0 (#1797)
Bumps [@verdaccio/readme](https://github.com/verdaccio/monorepo/tree/HEAD/core/readme) from 9.3.0 to 9.5.0.
- [Release notes](https://github.com/verdaccio/monorepo/releases)
- [Changelog](https://github.com/verdaccio/monorepo/blob/9.x/core/readme/CHANGELOG.md)
- [Commits](https://github.com/verdaccio/monorepo/commits/v9.5.0/core/readme)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-04-03 20:51:31 +02:00
Juan Picado @jotadeveloper
8006e73d0a feat: migrate from buyan to pinojs (#1760)
* feat: migrate from buyan to pinojs

* chore: fix lint

* chore: release utils from import

* chore: fix test

* chore: add missing dep

* chore: add dependency

* chore: add prettifier module

* chore: add pretty stamp option

* chore: fix package name location

* chore: crash on try use rotating file type

* chore: remove arg
2021-04-03 20:51:31 +02:00
Juan Picado @jotadeveloper
4e0017a089 chore: disable test publish 2021-04-03 20:51:28 +02:00
Juan Picado @jotadeveloper
a606c6e125 chore: re-enable coverage 2021-04-03 20:51:28 +02:00
Juan Picado @jotadeveloper
8f835eb265 chore: fix merge 2021-04-03 20:51:27 +02:00
dependabot-preview[bot]
fb19e2052d build(deps): [security] bump acorn from 5.7.3 to 5.7.4 (#1752)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-04-03 20:51:27 +02:00
Juan Picado @jotadeveloper
000a5e2be5 build: publish Docker image to GitHub registry (5.x) (#1744)
* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: restore previous check file
2021-04-03 20:51:27 +02:00
Juan Picado @jotadeveloper
4c9f611da0 feat: remove support for allow_ prefix (#1741)
allow_access, allow_publish and proxy_access were supported as package access but this commit drop that support and ignore the properties
2021-04-03 20:51:24 +02:00
Juan Picado @jotadeveloper
84584948a9 refactor: fix import 2021-04-03 20:51:24 +02:00
Juan Picado @jotadeveloper
24524f5ea4 refactor: fix imports 2021-04-03 20:51:24 +02:00
Juan Picado @jotadeveloper
9c9484df5d refactor: utilities and auth 2021-04-03 20:51:23 +02:00
Juan Picado @jotadeveloper
424ee24a08 chore: update dependencies 2021-04-03 20:51:23 +02:00
Juan Picado @jotadeveloper
d4f5f2fc18 chore: reuse jest config 2021-04-03 20:51:23 +02:00
Juan Picado @jotadeveloper
e1947aaba6 build(deps-dev): bump @octokit/rest from 16.28.9 to 17.0.0 (#1729)
Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 16.28.9 to 17.0.0.
- [Release notes](https://github.com/octokit/rest.js/releases)
- [Commits](https://github.com/octokit/rest.js/compare/v16.28.9...v17.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-03 20:51:23 +02:00
Juan Picado @jotadeveloper
489a5c82bd chore: update readme 2021-04-03 20:51:22 +02:00
Juan Picado @jotadeveloper
a08fd39e0e feat: migrate yarn workspaces (#1546) 2021-04-03 20:51:20 +02:00
1891 changed files with 333998 additions and 161323 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
}

26
.babelrc Normal file
View File

@@ -0,0 +1,26 @@
{
"presets": [ [
"@babel/env",
{
"useBuiltIns": "usage",
"corejs": {
"version": 3, "proposals": true
},
"targets": {
"node": 12
}
}
],
"@babel/typescript"
],
"plugins": [
"babel-plugin-dynamic-import-node",
"@babel/proposal-class-properties",
"@babel/proposal-object-rest-spread",
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator"
],
"ignore": [
"**/*.d.ts"
]
}

8
.changeset/README.md Normal file
View File

@@ -0,0 +1,8 @@
# 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

@@ -0,0 +1,23 @@
---
'@verdaccio/local-storage': major
'@verdaccio/url': major
'verdaccio-aws-s3-storage': major
'verdaccio-google-cloud': major
'verdaccio-memory': major
'@verdaccio/store': major
---
# async storage plugin bootstrap
Gives a storage plugin the ability to perform asynchronous tasks on initialization
## Breaking change
Plugin must have an init method in which asynchronous tasks can be executed
```js
public async init(): Promise<void> {
this.data = await this._fetchLocalPackages();
this._sync();
}
```

10
.changeset/config.json Normal file
View File

@@ -0,0 +1,10 @@
{
"$schema": "https://unpkg.com/@changesets/config@1.3.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"linked": [],
"access": "public",
"baseBranch": "6.x",
"updateInternalDependencies": "patch",
"ignore": []
}

View File

@@ -0,0 +1,46 @@
---
'@verdaccio/api': major
'@verdaccio/auth': major
'@verdaccio/cli': major
'@verdaccio/config': major
'@verdaccio/commons-api': major
'@verdaccio/file-locking': major
'verdaccio-htpasswd': major
'@verdaccio/local-storage': major
'@verdaccio/readme': major
'@verdaccio/streams': major
'@verdaccio/types': major
'@verdaccio/hooks': major
'@verdaccio/loaders': major
'@verdaccio/logger': major
'@verdaccio/logger-prettify': major
'@verdaccio/middleware': major
'@verdaccio/mock': major
'@verdaccio/node-api': major
'@verdaccio/active-directory': major
'verdaccio-audit': major
'verdaccio-auth-memory': major
'verdaccio-aws-s3-storage': major
'verdaccio-google-cloud': major
'verdaccio-memory': major
'@verdaccio/proxy': major
'@verdaccio/server': major
'@verdaccio/store': major
'@verdaccio/dev-types': major
'@verdaccio/utils': major
'verdaccio': major
'@verdaccio/web': major
'@verdaccio/website': major
---
feat!: experiments config renamed to flags
- The `experiments` configuration is renamed to `flags`. The functionality is exactly the same.
```js
flags: token: false;
search: false;
```
- The `self_path` property from the config file is being removed in favor of `config_file` full path.
- Refactor `config` module, better types and utilities

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/middleware': patch
'@verdaccio/web': patch
---
Remove @ts-ignore and any in packages/web/src/endpoint/package.ts

View File

@@ -0,0 +1,44 @@
---
'@verdaccio/api': major
'@verdaccio/auth': major
'@verdaccio/cli': major
'@verdaccio/config': major
'@verdaccio/commons-api': major
'@verdaccio/file-locking': major
'verdaccio-htpasswd': major
'@verdaccio/local-storage': major
'@verdaccio/readme': major
'@verdaccio/streams': major
'@verdaccio/types': major
'@verdaccio/hooks': major
'@verdaccio/loaders': major
'@verdaccio/logger': major
'@verdaccio/logger-prettify': major
'@verdaccio/middleware': major
'@verdaccio/mock': major
'@verdaccio/node-api': major
'@verdaccio/proxy': major
'@verdaccio/server': major
'@verdaccio/store': major
'@verdaccio/dev-types': major
'@verdaccio/utils': major
'verdaccio': major
'@verdaccio/web': major
---
- Replace signature handler for legacy tokens by removing deprecated crypto.createDecipher by createCipheriv
- Introduce environment variables for legacy tokens
### Code Improvements
- Add debug library for improve developer experience
### Breaking change
- The new signature invalidates all previous tokens generated by Verdaccio 4 or previous versions.
- The secret key must have 32 characters long.
### New environment variables
- `VERDACCIO_LEGACY_ALGORITHM`: Allows to define the specific algorithm for the token signature which by default is `aes-256-ctr`
- `VERDACCIO_LEGACY_ENCRYPTION_KEY`: By default, the token stores in the database, but using this variable allows to get it from memory

View File

@@ -0,0 +1,39 @@
---
'@verdaccio/local-storage': patch
'@verdaccio/ui-theme': patch
'@verdaccio/server': patch
'@verdaccio/api': patch
'@verdaccio/auth': patch
'@verdaccio/cli': patch
'@verdaccio/config': patch
'@verdaccio/commons-api': patch
'@verdaccio/file-locking': patch
'verdaccio-htpasswd': patch
'@verdaccio/readme': patch
'@verdaccio/streams': patch
'@verdaccio/types': patch
'@verdaccio/hooks': patch
'@verdaccio/loaders': patch
'@verdaccio/logger': patch
'@verdaccio/logger-prettify': patch
'@verdaccio/middleware': patch
'@verdaccio/mock': patch
'@verdaccio/node-api': patch
'@verdaccio/active-directory': patch
'verdaccio-audit': patch
'verdaccio-auth-memory': patch
'verdaccio-aws-s3-storage': patch
'verdaccio-google-cloud': patch
'verdaccio-memory': patch
'@verdaccio/proxy': patch
'@verdaccio/store': patch
'@verdaccio/dev-types': patch
'@verdaccio/utils': patch
'verdaccio': patch
'@verdaccio/web': patch
'@verdaccio/e2e-cli': patch
'@verdaccio/e2e-ui': patch
'@verdaccio/website': patch
---
chore: add release step to private regisry on merge changeset pr

View File

@@ -0,0 +1,20 @@
---
'@verdaccio/api': minor
'verdaccio-htpasswd': minor
'@verdaccio/local-storage': minor
---
feat: remove level dependency by lowdb for npm token cli as storage
### new npm token database
There will be a new database located in your storage named `.token-db.json` which
will store all references to created tokens, **it does not store tokens**, just
mask of them and related metadata required to reference them.
#### Breaking change
If you were relying on `npm token` experiment. This PR will replace the
used database (level) by a json plain based one (lowbd) which does not
require Node.js C++ compilation step and has less dependencies. Since was
a experiment there is no migration step.

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/hooks': patch
'@verdaccio/proxy': patch
---
refactor: migrate request to node-fetch at hooks package

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-theme': minor
'verdaccio': minor
---
feat: ui theme plugin part of the application

View File

@@ -0,0 +1,51 @@
---
'@verdaccio/api': minor
'@verdaccio/auth': minor
'@verdaccio/cli': minor
'@verdaccio/config': minor
'@verdaccio/commons-api': minor
'@verdaccio/file-locking': minor
'verdaccio-htpasswd': minor
'@verdaccio/local-storage': minor
'@verdaccio/readme': minor
'@verdaccio/streams': minor
'@verdaccio/types': minor
'@verdaccio/hooks': minor
'@verdaccio/loaders': minor
'@verdaccio/logger': minor
'@verdaccio/logger-prettify': minor
'@verdaccio/middleware': minor
'@verdaccio/mock': minor
'@verdaccio/node-api': minor
'@verdaccio/active-directory': minor
'verdaccio-audit': minor
'verdaccio-auth-memory': minor
'verdaccio-aws-s3-storage': minor
'verdaccio-google-cloud': minor
'verdaccio-memory': minor
'@verdaccio/ui-theme': minor
'@verdaccio/proxy': minor
'@verdaccio/server': minor
'@verdaccio/store': minor
'@verdaccio/dev-types': minor
'@verdaccio/utils': minor
'verdaccio': minor
'@verdaccio/web': minor
---
feat: add server rate limit protection to all request
To modify custom values, use the server settings property.
```markdown
server:
## https://www.npmjs.com/package/express-rate-limit#configuration-options
rateLimit:
windowMs: 1000
max: 10000
```
The values are intended to be high, if you want to improve security of your server consider
using different values.

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/cli': major
---
feat: use clipanion over commander

View File

@@ -0,0 +1,30 @@
---
'@verdaccio/auth': major
'verdaccio-htpasswd': major
'verdaccio-audit': major
'@verdaccio/server': major
'@verdaccio/cli-standalone': major
---
feat: standalone registry with no dependencies
## Usage
To install a server with no dependencies
```bash
npm install -g @verdaccio/standalone
```
with no internet required
```bash
npm install -g ./tarball.tar.gz
```
Bundles htpasswd and audit plugins.
### Breaking Change
It does not allow anymore the `auth` and `middleware` property at config file empty,
it will fallback to those plugins by default.

View File

@@ -0,0 +1,36 @@
---
'@verdaccio/api': minor
'@verdaccio/auth': minor
'@verdaccio/cli': minor
'@verdaccio/config': minor
'@verdaccio/commons-api': minor
'@verdaccio/file-locking': minor
'verdaccio-htpasswd': minor
'@verdaccio/local-storage': minor
'@verdaccio/readme': minor
'@verdaccio/streams': minor
'@verdaccio/types': minor
'@verdaccio/hooks': minor
'@verdaccio/loaders': minor
'@verdaccio/logger': minor
'@verdaccio/logger-prettify': minor
'@verdaccio/middleware': minor
'@verdaccio/mock': minor
'@verdaccio/node-api': minor
'@verdaccio/proxy': minor
'@verdaccio/server': minor
'@verdaccio/store': minor
'@verdaccio/dev-types': minor
'@verdaccio/utils': minor
'verdaccio': minor
'@verdaccio/web': minor
'@verdaccio/website': minor
---
feat: add typescript project references settings
Reading https://ebaytech.berlin/optimizing-multi-package-apps-with-typescript-project-references-d5c57a3b4440 I realized I can use project references to solve the issue to pre-compile modules on develop mode.
It allows to navigate (IDE) trough the packages without need compile the packages.
Add two `tsconfig`, one using the previous existing configuration that is able to produce declaration files (`tsconfig.build`) and a new one `tsconfig` which is enables [_projects references_](https://www.typescriptlang.org/docs/handbook/project-references.html).

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/cli': minor
'@verdaccio/node-api': minor
---
feat: improve cli loggin on start up

66
.changeset/pre.json Normal file
View File

@@ -0,0 +1,66 @@
{
"mode": "pre",
"tag": "6-next",
"initialVersions": {
"@verdaccio/api": "6.0.0-alpha.0",
"@verdaccio/auth": "6.0.0-alpha.0",
"@verdaccio/cli": "6.0.0-alpha.0",
"@verdaccio/config": "6.0.0-alpha.0",
"@verdaccio/commons-api": "11.0.0-alpha.0",
"@verdaccio/file-locking": "11.0.0-alpha.0",
"verdaccio-htpasswd": "11.0.0-alpha.0",
"@verdaccio/local-storage": "11.0.0-alpha.0",
"@verdaccio/readme": "11.0.0-alpha.0",
"@verdaccio/streams": "11.0.0-alpha.0",
"@verdaccio/types": "11.0.0-alpha.0",
"@verdaccio/hooks": "6.0.0-alpha.0",
"@verdaccio/loaders": "6.0.0-alpha.0",
"@verdaccio/logger": "6.0.0-alpha.0",
"@verdaccio/logger-prettify": "6.0.0-alpha.0",
"@verdaccio/middleware": "6.0.0-alpha.0",
"@verdaccio/mock": "6.0.0-alpha.0",
"@verdaccio/node-api": "6.0.0-alpha.0",
"@verdaccio/proxy": "6.0.0-alpha.0",
"@verdaccio/server": "6.0.0-alpha.0",
"@verdaccio/store": "6.0.0-alpha.0",
"@verdaccio/dev-types": "6.0.0-alpha.0",
"@verdaccio/utils": "6.0.0-alpha.0",
"verdaccio": "6.0.0-alpha.0",
"@verdaccio/web": "6.0.0-alpha.0",
"@verdaccio/active-directory": "11.0.0-alpha.0",
"verdaccio-audit": "11.0.0-alpha.0",
"verdaccio-auth-memory": "11.0.0-alpha.0",
"verdaccio-aws-s3-storage": "11.0.0-alpha.0",
"verdaccio-google-cloud": "11.0.0-alpha.0",
"verdaccio-memory": "11.0.0-alpha.0",
"@verdaccio/website": "0.0.1",
"@verdaccio/ui-theme": "6.0.0-alpha.1",
"@verdaccio/e2e-cli": "1.0.0",
"@verdaccio/e2e-ui": "1.0.0",
"@verdaccio/cli-standalone": "6.0.0-alpha.3",
"@verdaccio/cli-ui": "6.0.0-alpha.3",
"@verdaccio/tarball": "11.0.0-alpha.3",
"@verdaccio/url": "11.0.0-alpha.3"
},
"changesets": [
"big-lobsters-sin",
"few-cooks-destroy",
"fifty-jars-rest",
"gentle-trains-switch",
"hip-hounds-destroy",
"late-adults-love",
"late-parents-act",
"modern-spies-tell",
"neat-toes-report",
"perfect-kangaroos-agree",
"plenty-news-remember",
"plenty-spiders-melt",
"plenty-tables-refuse",
"pretty-hounds-tap",
"shiny-chefs-heal",
"smart-apricots-kneel",
"spicy-frogs-press",
"tender-bags-call",
"three-pots-sit"
]
}

View File

@@ -0,0 +1,29 @@
---
'@verdaccio/api': patch
'@verdaccio/auth': patch
'@verdaccio/cli': patch
'@verdaccio/config': patch
'@verdaccio/commons-api': patch
'@verdaccio/file-locking': patch
'verdaccio-htpasswd': patch
'@verdaccio/local-storage': patch
'@verdaccio/readme': patch
'@verdaccio/streams': patch
'@verdaccio/types': patch
'@verdaccio/hooks': patch
'@verdaccio/loaders': patch
'@verdaccio/logger': patch
'@verdaccio/logger-prettify': patch
'@verdaccio/middleware': patch
'@verdaccio/mock': patch
'@verdaccio/node-api': patch
'@verdaccio/proxy': patch
'@verdaccio/server': patch
'@verdaccio/store': patch
'@verdaccio/dev-types': patch
'@verdaccio/utils': patch
'verdaccio': patch
'@verdaccio/web': patch
---
Enable prerelease mode with **changesets**

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/api': patch
---
testing changesets

View File

@@ -0,0 +1,79 @@
---
'@verdaccio/ui-theme': major
'@verdaccio/cli-standalone': major
'@verdaccio/web': major
---
feat: flexible user interface generator
**breaking change**
The UI does not provide a pre-generated `index.html`, instead the server generates
the body of the web application based in few parameters:
- Webpack manifest
- User configuration details
It allows inject html tags, javascript and new CSS to make the page even more flexible.
### Web new properties for dynamic template
The new set of properties are made in order allow inject _html_ and _JavaScript_ scripts within the template. This
might be useful for scenarios like Google Analytics scripts or custom html in any part of the body.
- metaScripts: html injected before close the `head` element.
- scriptsBodyAfter: html injected before close the `body` element.
- bodyAfter: html injected after _verdaccio_ JS scripts.
```yaml
web:
scriptsBodyAfter:
- '<script type="text/javascript" src="https://my.company.com/customJS.min.js"></script>'
metaScripts:
- '<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>'
- '<script type="text/javascript" src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js"></script>'
- '<meta name="robots" content="noindex" />'
bodyBefore:
- '<div id="myId">html before webpack scripts</div>'
bodyAfter:
- '<div id="myId">html after webpack scripts</div>'
```
### UI plugin changes
- `index.html` is not longer used, template is generated based on `manifest.json` generated by webpack.
- Plugin must export:
- the manifest file.
- the manifest files: matcher (array of id that generates required scripts to run the ui)
- static path: The absolute path where the files are located in `node_modules`
```
exports.staticPath = path.join(__dirname, 'static');
exports.manifest = require('./static/manifest.json');
exports.manifestFiles = {
js: ['runtime.js', 'vendors.js', 'main.js'],
css: [],
ico: 'favicon.ico',
};
```
- Remove font files
- CSS is inline on JS (this will help with #2046)
### Docker v5 Examples
- Move all current examples to v4 folder
- Remove any v3 example
- Create v5 folder with Nginx Example
#### Related tickets
https://github.com/verdaccio/verdaccio/issues/1523
https://github.com/verdaccio/verdaccio/issues/1297
https://github.com/verdaccio/verdaccio/issues/1593
https://github.com/verdaccio/verdaccio/discussions/1539
https://github.com/verdaccio/website/issues/264
https://github.com/verdaccio/verdaccio/issues/1565
https://github.com/verdaccio/verdaccio/issues/1251
https://github.com/verdaccio/verdaccio/issues/2029
https://github.com/verdaccio/docker-examples/issues/29

View File

@@ -0,0 +1,32 @@
---
'verdaccio-htpasswd': major
---
feat: allow other password hashing algorithms (#1917)
**breaking change**
The current implementation of the `htpasswd` module supports multiple hash formats on verify, but only `crypt` on sign in.
`crypt` is an insecure old format, so to improve the security of the new `verdaccio` release we introduce the support of multiple hash algorithms on sign in step.
### New hashing algorithms
The new possible hash algorithms to use are `bcrypt`, `md5`, `sha1`. `bcrypt` is chosen as a default, because of its customizable complexity and overall reliability. You can read more about them [here](https://httpd.apache.org/docs/2.4/misc/password_encryptions.html).
Two new properties are added to `auth` section in the configuration file:
- `algorithm` to choose the way you want to hash passwords.
- `rounds` is used to determine `bcrypt` complexity. So one can improve security according to increasing computational power.
Example of the new `auth` config file section:
```yaml
auth:
htpasswd:
file: ./htpasswd
max_users: 1000
# Hash algorithm, possible options are: "bcrypt", "md5", "sha1", "crypt".
algorithm: bcrypt
# Rounds number for "bcrypt", will be ignored for other algorithms.
rounds: 10
```

View File

@@ -0,0 +1,9 @@
---
'@verdaccio/logger': major
---
logging prettifier only in development mode
- Verdaccio prettify `@verdaccio/logger-prettify` the logging which looks beautiful. But there are scenarios which does not make sense in production. This feature enables disable by default the prettifies if production `NODE_ENV` is enabled.
- Updates pino.js to `^6.7.0`.
- Suppress the warning when prettifier is enabled `suppressFlushSyncWarning`

View File

@@ -0,0 +1,33 @@
---
'@verdaccio/api': patch
'@verdaccio/auth': patch
'@verdaccio/cli': patch
'@verdaccio/config': patch
'@verdaccio/commons-api': patch
'@verdaccio/file-locking': patch
'verdaccio-htpasswd': patch
'@verdaccio/local-storage': patch
'@verdaccio/readme': patch
'@verdaccio/types': patch
'@verdaccio/hooks': patch
'@verdaccio/loaders': patch
'@verdaccio/logger': patch
'@verdaccio/logger-prettify': patch
'@verdaccio/middleware': patch
'@verdaccio/mock': patch
'@verdaccio/node-api': patch
'@verdaccio/proxy': patch
'@verdaccio/server': patch
'@verdaccio/store': patch
'@verdaccio/dev-types': patch
'@verdaccio/utils': patch
'verdaccio': patch
---
ESLint Warnings Fixed
Related to issue #1461
- max-len: most of the sensible max-len errors are fixed
- no-unused-vars: most of these types of errors are fixed by deleting not needed declarations
- @typescript-eslint/no-unused-vars: same as above

View File

@@ -8,22 +8,22 @@
.*
# you can add exceptions like in .gitignore to maintain a whitelist:
# e.g.
!babel.config.js
!eslintrc.js
!.prettierrc
!.babelrc
!.eslintrc
!.prettierrc.json
!.prettierignore
!.eslintignore
!.stylelintrc
!.jest.config.js
!.jestEnvironment.js
!.yarnrc.yml
!.yarn/releases/yarn-*.cjs
!.yarn/plugins/*
!.pnp.js
# just in case, yarn 2 pnp is enabled
# do not copy over node_modules we will run `pnpm install` anyway
node_modules
.husky/
.git/
website
jest
docs
contrib
docker-examples
website
systemd
# output from test runs and similar things
*.log
@@ -33,21 +33,7 @@ coverage/
# IDE config files
jsconfig.json
*.iml
# let's not get too recursive ;)
Dockerfile*
docker-compose*.yaml
.github/
.husky/
*.log
coverage/
.vscode/
*.md
contrib/
docs/
docker-examples/
systemd/
assets/
jest*.js
test/
wiki/
debug/

View File

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

View File

@@ -1,25 +1,11 @@
# files
node_modules
coverage/
wiki/
static/
flow-typed/
website/
**/fixtures/**
**/mock/store/**
**/partials/**
**/types/custom.d.ts
build/
Dockerfile
test/unit/partials/
types/custom.d.ts
LICENSE
.pnp.js
# extensions
*.md
*.lock
*.yaml
*.rpi
*.html
*.scss
*.png
*.jpg
*.sh
*.ico
coverage/
flow-typed/
node_modules/
static/
website/
wiki/

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", 100],
"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"]
}
}

199
.gitattributes vendored Normal file
View File

@@ -0,0 +1,199 @@
## 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

@@ -7,9 +7,11 @@ assignees: ''
---
**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
@@ -18,9 +20,11 @@ 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**
<!-- If applicable, add screenshots to help explain your problem. -->
**Configuration File (cat ~/.config/verdaccio/config.yaml)**
@@ -28,16 +32,17 @@ 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=express:* verdaccio` enable extreme verdaccio debug mode (verdaccio api)
- `$ npm -ddd` prints:
- `$ npm config get registry` prints:
- `$ 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

@@ -1,10 +1,9 @@
---
name: "Feature Request \U0001F52E"
name: 'Feature Request 🔮'
about: You want a feature request.
title: ''
labels: 'topic: feature request'
assignees: ''
---
<!--

View File

@@ -5,23 +5,21 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: "weekly"
interval: 'weekly'
# Maintain dependencies for npm
- package-ecosystem: "npm"
directory: "/"
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: "daily"
allow:
- dependency-name: "@verdaccio/*"
- dependency-name: "verdaccio-*"
interval: 'daily'
allow:
- dependency-name: '@verdaccio/*'
- dependency-name: 'verdaccio-*'
assignees:
- "verdacciobot"
- 'verdacciobot'
labels:
- "bot: dependencies"
- 'bot: dependencies'

View File

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

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

121
.github/disabled/e2e-jest-workflow.yml vendored Normal file
View File

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

13
.github/disabled/registry.yml vendored Normal file
View File

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

35
.github/disabled/release-canary.yml vendored Normal file
View File

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

14
.github/stale.yml vendored
View File

@@ -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 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!
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

63
.github/workflows/changesets.yml vendored Normal file
View File

@@ -0,0 +1,63 @@
name: Changesets
on:
schedule:
- cron: '0 0 * * *'
push:
branches:
- 6.x
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/6.x' && github.repository == 'verdaccio/verdaccio'
steps:
- name: checkout code repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@v2
with:
node-version: 14
registry-url: 'https://registry.verdaccio.org'
env:
NODE_AUTH_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}
- name: install pnpm
run: npm i pnpm@latest -g
env:
NODE_AUTH_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}
- 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.verdaccio.org
- name: install dependencies
run: pnpm install
env:
NODE_AUTH_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}
- 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
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}

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

@@ -0,0 +1,45 @@
name: E2E UI
on:
push:
branches:
- 6.x
- 'changeset-release/6.x'
pull_request:
paths:
- .github/workflows/ci.yml
- 'packages/**'
- 'jest/**'
- 'package.json'
- 'pnpm-workspace.yaml'
- 'test/**'
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@v1
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: npm i -g pnpm@latest
- name: Install
run: pnpm recursive install
- name: Clean
run: pnpm clean
- name: Build
run: pnpm build
- name: Test UI
run: pnpm test:e2e:ui
env:
DEBUG: verdaccio:e2e*

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

@@ -0,0 +1,45 @@
name: E2E CLI
on:
push:
branches:
- 5.x
- 'changeset-release/6.x'
pull_request:
paths:
- .github/workflows/ci.yml
- 'packages/**'
- 'jest/**'
- 'package.json'
- 'pnpm-workspace.yaml'
- 'test/**'
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@v1
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: npm i -g pnpm@latest
- name: Install
run: pnpm recursive install
- name: Clean
run: pnpm clean
- name: Build
run: pnpm build
- name: Test CLI
run: pnpm test:e2e:cli
env:
DEBUG: verdaccio:e2e*

View File

@@ -1,11 +0,0 @@
name: CI Lint
on: [push, pull_request]
permissions:
contents: read
jobs:
lint:
uses: verdaccio/verdaccio/.github/workflows/yarn-ci-lint.yml@master

49
.github/workflows/ci-pnpm-dev.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: CI with pnpm 6
on:
push:
branches:
- 5.x
- 'changeset-release/6.x'
pull_request:
paths:
- .changeset/**
- .github/workflows/ci.yml
- 'packages/**'
- 'jest/**'
- 'package.json'
- 'pnpm-workspace.yaml'
jobs:
ci:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
node_version: [12, 15]
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
with:
node_version: ${{ matrix.node_version }}
- name: Install pnpm
run: sudo npm i pnpm@dev -g
- name: Install
run: pnpm recursive install
- name: Format
run: pnpm format:check
- name: Lint
run: pnpm lint
- name: Clean
run: pnpm clean
- name: Build
run: pnpm build
- name: Test
run: pnpm test
env:
DEBUG: verdaccio:web:*

39
.github/workflows/ci-website.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: CI Website
on:
push:
branches:
- master
pull_request:
paths:
- .github/workflows/ci-website.yml
- 'website/**'
jobs:
ci:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
node_version: [14]
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v1
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@v1
with:
node_version: ${{ matrix.node_version }}
- name: Install pnpm
run: npm i -g pnpm
- name: Install
run: pnpm recursive install
- name: Format
run: pnpm format:check
- name: Lint
run: pnpm lint
- name: Build website
run: |
cd website
pnpm build

View File

@@ -1,19 +1,49 @@
name: CI
on: [push, pull_request]
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}-7.x
cancel-in-progress: true
on:
push:
branches:
- 6.x
- 'changeset-release/6.x'
pull_request:
paths:
- .changeset/**
- .github/workflows/ci.yml
- 'packages/**'
- 'jest/**'
- 'package.json'
- 'pnpm-workspace.yaml'
jobs:
build:
ci:
strategy:
fail-fast: false
matrix:
node_version: [20, 22]
uses: verdaccio/verdaccio/.github/workflows/yarn-ci.yml@master
with:
node_version: ${{ matrix.node_version }}
os: [ubuntu-latest, windows-latest]
node_version: [12, 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@v1
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: npm i pnpm@latest -g
- name: Install
run: pnpm recursive install
- name: Format
run: pnpm format:check
- name: Lint
run: pnpm lint
- name: Clean
run: pnpm clean
- name: Build
run: pnpm build
- name: Test
run: pnpm test
env:
DEBUG: verdaccio:web:*

57
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: 'Code scanning - action'
on:
push:
branches-ignore:
- 5.x
- 'changeset-release/6.x'
- 'dev/**'
pull_request:
paths:
- .github/workflows/ci.yml
- 'packages/**'
schedule:
- cron: '0 2 * * 4'
jobs:
CodeQL-Build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2.3.1
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@v1
# 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@v1
# 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@v1

View File

@@ -0,0 +1,30 @@
name: Docker & Publish Pre-check
on:
pull_request:
paths:
- .github/workflows/docker-publish-pre-check.yml
- 'packages/**'
- 'docker-bin/**'
- 'package.json'
- 'lerna.json'
jobs:
testDocker:
name: Test Docker Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.1
- name: Build
run: npm run docker
env:
VERDACCIO_BUILD_REGISTRY: https://registry.verdaccio.org
# testVerdaccio:
# name: Test Verdaccio Publish
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: Publish
# uses: verdaccio/github-actions/publish@v0.4.0
# with:
# args: -d

View File

@@ -1,29 +1,51 @@
name: Docker publish to docker.io
name: Docker publish to docker.io
on:
push:
paths:
- .github/workflows/docker-publish.yml
- 'src/**'
- 'conf/**'
- 'types/**'
- .github/workflows/docker-publish.yml
- 'packages/**'
- 'docker-bin/**'
- 'bin/**'
- 'package.json'
- 'yarn.lock'
- '.yarn/**'
- '.yarnrc.yaml'
- '.pnp.js'
- 'pnpm-*.yaml'
- 'Dockerfile'
- '.dockerignore'
branches:
- '7.x'
- '6.x'
tags:
- 'v*'
- 'v*'
jobs:
docker-publish:
secrets: inherit
uses: verdaccio/verdaccio/.github/workflows/shared-docker-publish.yml@master
with:
tag-latest: false
tag-custom: 7.x-next
tag-custom-only: ${{ github.ref == 'refs/heads/7.x' }}
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
with:
driver-opts: network=host
- uses: docker/login-action@v1
name: Login Docker Hub
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Prepare docker image tags
id: docker_meta
uses: crazy-max/ghaction-docker-meta@v1
with:
images: ${{ github.repository }}
tag-custom: 6.x-next
tag-custom-only: ${{ github.ref == 'refs/heads/6.x' }}
tag-semver: |
{{version}}
{{major}}
{{major}}.{{minor}}
- name: Build & Push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}

View File

@@ -1,12 +0,0 @@
on:
pull_request:
push:
concurrency:
group: e2e-angular-${{ github.ref }}-7.x
cancel-in-progress: true
name: 'E2E Angular CLI with verdaccio'
jobs:
e2e:
uses: verdaccio/verdaccio/.github/workflows/x-e2e-angular-cli-workflow.yml@master

View File

@@ -1,12 +0,0 @@
on:
pull_request:
push:
concurrency:
group: e2e-audit-${{ github.ref }}-7.x
cancel-in-progress: true
name: 'Plugin Audit E2E'
jobs:
e2e:
uses: verdaccio/verdaccio/.github/workflows/x-e2e-audit-workflow.yml@master

View File

@@ -1,12 +0,0 @@
on:
pull_request:
push:
concurrency:
group: e2e-gastbyjs-${{ github.ref }}-7.x
cancel-in-progress: true
name: 'E2E Gatsby.js CLI with verdaccio'
jobs:
e2e:
uses: verdaccio/verdaccio/.github/workflows/x-e2e-gatsbyjs-cli-workflow.yml@master

View File

@@ -1,12 +0,0 @@
on:
pull_request:
push:
concurrency:
group: e2e-jest-${{ github.ref }}-7.x
cancel-in-progress: true
name: 'E2E Jest with verdaccio'
jobs:
e2e:
uses: verdaccio/verdaccio/.github/workflows/x-e2e-jest-workflow.yml@master

View File

@@ -1,11 +0,0 @@
name: Release Canary
on:
workflow_dispatch:
push:
branches:
- 7.x
jobs:
snapshot:
secrets: inherit
uses: verdaccio/verdaccio/.github/workflows/x-release-snapshot.yml@master

View File

@@ -1,11 +0,0 @@
name: Release
on:
push:
tags:
- '*'
jobs:
snapshot:
secrets: inherit
uses: verdaccio/verdaccio/.github/workflows/x-release.yml@master

View File

@@ -1,17 +0,0 @@
name: Docker Smoke Test
on:
workflow_dispatch:
push:
permissions:
contents: read
concurrency:
group: e2e-docker-pkgs-${{ github.ref }}-7.x
cancel-in-progress: true
jobs:
smoke:
uses: verdaccio/verdaccio/.github/workflows/x-smok-test-docker.yml@master
with:
docker_tag: '7.x-next'

View File

@@ -1,17 +0,0 @@
name: Module Smoke Test
on:
workflow_dispatch:
push:
permissions:
contents: read
concurrency:
group: e2e-test-pkgs-${{ github.ref }}-7.x
cancel-in-progress: true
jobs:
smoke:
uses: verdaccio/verdaccio/.github/workflows/x-smok-test-module.yml@master
with:
docker_tag: '7.x-next'

View File

@@ -1,7 +0,0 @@
name: Test Docker Build
on: [push, pull_request]
jobs:
testDocker:
uses: verdaccio/verdaccio/.github/workflows/test-docker-build.yml@master

View File

@@ -1,7 +0,0 @@
name: Test Publish Package
on: [push, pull_request]
jobs:
testVerdaccio:
uses: verdaccio/verdaccio/.github/workflows/test-publish-package.yml@master

38
.gitignore vendored
View File

@@ -1,39 +1,47 @@
*.log*
verdaccio-*.tgz
.DS_Store
build/
.eslintcache
./dist
### 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
###
!bin/verdaccio
test-storage*
access-storage*
.verdaccio_test_env
node_modules
package-lock.json
npm_test-fails-add-tarball*
yarn-error.log
yarn.lock
# coverage
# docker examples
docker-examples/v5/reverse_proxy/nginx/relative_path/storage/*
docker-examples/v5/**/storage/*
# jest
reports/
coverage/
# IDE
## IDE
.idea/
# Compiled script
static/*
packages/partials
tsconfig.tsbuildinfo
# This is the Yarn build state; it's local to each clone
/.yarn/build-state.yml
## bundle files
packages/standalone/dist/
## ui
packages/plugins/ui-theme/static
# This is the Yarn install state cache, it can be rebuilt anytime
/.yarn/install-state.gz
.history
# website
website/public
website/.cache
# CI Pnpm cache
.pnpm-store/

View File

@@ -12,6 +12,7 @@ src/
/.*
.vscode/
.circleci/
debug/
docker-examples/
reports/
## assets and website
@@ -39,9 +40,3 @@ jest.config.js
contrib/
storage_default_storage/
docker-bin/
yarn-plugins/
tsconfig.json
CHANGELOG.md
SECURITY.md
CONTRIBUTING.md
CONTRIBUTORS.md

4
.npmrc
View File

@@ -1,2 +1,4 @@
always-auth = true
fetch-retries="10"
recursive-install = true
registry = https://registry.verdaccio.org
loglevel=warn

2
.nvmrc
View File

@@ -1 +1 @@
22
14

View File

@@ -11,26 +11,15 @@
/website/public/
/website/src/dictionaries/
CHANGELOG.md
README.md
CHANGELOG.v5.md
CONTRIBUTORS.md
node_modules/
**/coverage/**
**/static/*.js
**/build/*.js
test/unit/partials/*
build/*
.github/
.vscode/
wiki/
.yarnrc.yml
yarn-error.log
.yarn/
test/functional/store/*
storage_default_storage/*
packages/core/local-storage/_storage/**
packages/standalone/dist/bundle.js
docker-examples/v5/reverse_proxy/nginx/relative_path/storage/*
docker-examples/
.prettierignore
.npmignore
.gitignore
*.ico
.pnp.js
babel.config.js
build/
.vscode/
.github/

11
.prettierrc.json Normal file
View File

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

3552
.secrets-baseline Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@

View File

@@ -1,12 +0,0 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"EditorConfig.EditorConfig",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": []
}

91
.vscode/launch.json vendored
View File

@@ -1,14 +1,81 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach by Process ID",
"processId": "${command:PickProcess}",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node"
}
]
// Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Verdaccio Debug",
"port": 9229,
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"type": "pwa-node"
},
{
"type": "node",
"request": "launch",
"name": "CLI Babel Registry",
"stopOnEntry": false,
"program": "${workspaceFolder}/debug/bootstrap.js",
"args": ["-l", "0.0.0.0:4873"],
"env": {
"BABEL_ENV": "registry"
},
"preLaunchTask": "npm: build:webui",
"console": "integratedTerminal"
},
{
"name": "Unit Tests",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/bin/jest",
"stopOnEntry": false,
"args": ["--debug=true"],
"cwd": "${workspaceRoot}",
"runtimeExecutable": null,
"runtimeArgs": ["--nolazy"],
"env": {
"NODE_ENV": "test",
"TZ": "UTC"
},
"console": "integratedTerminal"
},
{
"name": "Functional Tests",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/.bin/jest",
"stopOnEntry": false,
"args": [
"--config",
"./test/jest.config.functional.js",
"--testPathPattern",
"./test/functional/index*",
"--debug=false",
"--verbose",
"--useStderr",
"--detectOpenHandles"
],
"cwd": "${workspaceRoot}",
"env": {
"BABEL_ENV": "testOldEnv",
"VERDACCIO_DEBUG": "true",
"VERDACCIO_DEBUG_INJECT": "true",
"NODE_DEBUG": "TO_DEBUG_REQUEST_REMOVE_THIS_request"
},
"preLaunchTask": "pre-test",
"console": "integratedTerminal",
"runtimeExecutable": null,
"runtimeArgs": ["--nolazy"]
},
{
"type": "node",
"request": "launch",
"name": "Verdaccio Compiled",
"preLaunchTask": "npm: code:build",
"program": "${workspaceRoot}/bin/verdaccio",
"args": ["-l", "0.0.0.0:4873"],
"console": "integratedTerminal"
}
]
}

17
.vscode/settings.json vendored
View File

@@ -1,15 +1,12 @@
// Place your settings in this file to overwrite default and user settings.
{
"eslint.validate": [
"javascript",
"typescript"
],
"files.exclude": {
"**/.idea": false,
"**/coverage": true
"**/.nyc_output": true,
"**/build": false,
"**/coverage": true,
".idea": true,
"storage_default_storage": true,
".yarn": true
},
"editor.formatOnSave": true,
"search.exclude": {
"**/.yarn": true,
}
"typescript.tsdk": "node_modules/typescript/lib"
}

21
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,21 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "build:webui",
"problemMatcher": []
},
{
"type": "npm",
"script": "code:build",
"problemMatcher": []
},
{
"label": "pre-test",
"dependsOn": ["npm: code:build", "npm: test:clean"]
}
]
}

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +0,0 @@
compressionLevel: mixed
defaultSemverRangePrefix: ""
enableGlobalCache: true
nodeLinker: node-modules
npmRegistryServer: "https://registry.npmjs.org"
yarnPath: .yarn/releases/yarn-4.5.0.cjs

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,345 @@
# Contributing to Verdaccio
# Contributing
Full text for contributing can be read [here](https://verdaccio.org/community/contributing).
> Any change matters, whatever the size, just do it.
## Especifics for the branch 7.x
We are happy that you are willing to contribute. For that reason, we
have prepared these guidelines for you:
The 7.x uses `yarn berry` with Plug and Play enabled, thus some advices are required for helping contributing:
**Table of Contents**
### Debugging Jest
- [Contributing](#contributing)
- [How Do I Contribute?](#how-do-i-contribute)
- [Development Setup](#development-setup)
- [Building the project](#building-the-project)
- [Running test](#running-test)
- [Running and debugging](#running-and-debugging)
- [Debugging compiled code](#debugging-compiled-code)
- [Reporting Bugs](#reporting-bugs)
- [Read the documentation](#read-the-documentation)
- [What's is not considered a bug?](#whats-is-not-considered-a-bug)
- [Issue Search](#issue-search)
- [Chat](#chat)
- [Request Features](#request-features)
- [Contributing Guidelines](#contributing-guidelines)
- [Submitting a Pull Request](#submitting-a-pull-request)
- [Make Changes and Commit](#make-changes-and-commit)
- [Caveats](#caveats)
- [Before Commit](#before-commit)
- [Commit Guidelines](#commit-guidelines)
- [Adding a changeset](#adding-a-changeset)
- [Update Tests](#update-tests)
- [Develop Plugins](#develop-plugins)
## How Do I Contribute?
There are different ways to contribute, each comes with a different levels
of tasks, such as:
- Report a bug.
- Request a feature you think would be great for verdaccio.
- Fix bugs.
- Test and triage reported bugs by others.
- Work on requested/approved features.
- Improve the codebase (lint, naming, comments, test descriptions, etc...)
Verdaccio has several areas of involvement, which might fit you better, eg:
- **Core**: The [core](https://github.com/verdaccio/verdaccio) is the main repository, built with **Node.js**.
- **Website**: we uses **Gatsby.js** for the **website** and if you are familiar with this technology, you might become the official webmaster.
- **User Interface**: The [user Interface](https://github.com/verdaccio/ui) is based in **react** and **material-ui** and looking for front-end contributors.
- **Kubernetes and Helm**: Ts the official repository for the [**Helm chart**](https://github.com/verdaccio/charts).
> There are other areas to contribute, like documentation, translation which are not hosted on this repo but check the last section of this notes for further information.
## Development Setup
Verdaccio uses [_pnpm_](https://pnpm.js.org/) as package manager for development in this repository. Please install the latest one:
```
npm i -g pnpm
```
First step is installing all dependencies:
```
pnpm install
```
### Building the project
To build the project run
```
pnpm build
```
### Running test
```
pnpm test
```
Verdaccio is a mono repository, for running an specific test or package go the specific package eg:
```
cd packages/store
pnpm test
```
or an specific test in that package
```
pnpm test test/merge.dist.tags.spec.ts
```
or a single test unit
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple'
```
The coverage is enabled by default, to speed up test running
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple' --coverage=false
```
To increase debug output, we use `debug`, to enable it in your test just add
```
DEBUG=verdaccio* pnpm test
```
More details in the debug section
### Running and debugging
We uses [`debug`](https://www.npmjs.com/package/debug) for debug outcome. Each package has it owns namespace.
### Debugging compiled code
Currently you can only run in debug mode pre-compiled packages, to enable debug while running add the `verdaccio` namespace using the `DEBUG` environment variable, like this:
```
DEBUG=verdaccio:* node packages/verdaccio/debug/bootstrap.js
```
On this way can be reviewed every package, but if you need to filter out and display more specific output, increase the name space filter.
```
DEBUG=verdaccio:plugin:* node packages/verdaccio/debug/bootstrap.js
```
The debug code is intended to analyze what is happening under the hood and none of the output is gathered with the logger module.
## Reporting Bugs
**Bugs are considered features that are not working as described in documentation.**
If you've found a bug in Verdaccio **that isn't a security risk**, please file
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.**
### Read the documentation
Check whether you are using the software in the way is documented [documentation](http://www.verdaccio.org/docs/en/installation.html).
### What's is not considered a bug?
- _Third party integrations_: proxies integrations, external plugins.
- _Package managers_: If a package manager does not support a specific command or cannot be reproduced with another package manager.
- _Features clearly flagged as not supported_.
- _Node.js issues installation in any platform_: If you cannot install the global package ( this is considered external issue)
- Any ticket which has the flagged as [external issue](https://github.com/verdaccio/verdaccio/labels/external-issue).
If you intent to report a **security** issue, please follow our [Security policy guidelines](https://github.com/verdaccio/verdaccio/security/policy).
### Issue Search
Before consider report a bug, please follow this steps before:
- Search if has already been reported via the issue search.
- Look for the **question** label: we have labelled questions for easy follow-up as [questions](https://github.com/verdaccio/verdaccio/labels/question).
In case any of those match with your search, up-vote it (using GitHub reactions) or add additional helpful details to the existing issue to show that it's affecting multiple people.
### Chat
Questions can be asked via [Discord](http://chat.verdaccio.org/)
**Please use the `#help` channel.**
## Request Features
New feature requests are welcome. Analyse whether the idea fits within scope of
the project. Then, detail your request, ensuring context and use case is provided.
**Please provide:**
- A detailed description the advantages of your request
- Whether or not it's compatible with `npm`, `pnpm` and [_yarn classic_](https://github.com/yarnpkg/yarn) or [_yarn berry_](https://github.com/yarnpkg/berry).
- A potential implementation or design
- Whatever else you have in your mind 🤓
## Contributing Guidelines
This is the most exciting part, when you became a Verdaccio contributor 🙌🏼, 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_.
### Submitting a Pull Request
The following are the steps you should follow when creating a pull request.
Subsequent pull requests only need to follow step 3 and beyond.
1. Fork the repository on GitHub
2. Clone the forked repository to your machine
3. Make your changes and commit them to your local repository
4. Rebase and push your commits to your GitHub remote fork/repository
5. Issue a Pull Request to the official repository
6. Your Pull Request is reviewed by a committer and merged into the repository
**NOTE**: While there are other ways to accomplish the steps using other tools,
the examples here will assume most actions will be performed via `git` on
command line.
For more information on maintaining a fork, please see the GitHub Help article
titled [Fork a Repo](https://help.github.com/articles/fork-a-repo/), and
information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
### Make Changes and Commit
#### Caveats
Feel free to commit as much times you want in your branch, but keep on mind on this repository we `git squash` on merge by default, any other way is forbidden since we intent to have a clean git history.
#### Before Commit
Before committing, **you must ensure there are no linting errors and
all tests pass.**
To do this, run these commands before create the PR:
```bash
yarn node --inspect-brk --expose-gc $(yarn bin jest) test --runInBand --silent --logHeapUsage test/unit/modules/api/publish.spec.ts
pnpm lint
pnpm format
pnpm build
pnpm test
```
> note: eslint and formatting are running separately, keep code formatting before push.
All good? perfect, then you should create the pull request.
#### Commit Guidelines
For example:
- `feat: A new feature`
- `fix: A bug fix`
A commit of the type feat introduces a new feature to the codebase
(this correlates with MINOR in semantic versioning).
e.g.:
```
feat: xxxxxxxxxx
```
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
e.g.:
```
fix: xxxxxxxxxxx
```
Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:`
and `chore:` are valid but have no effect on versioning. **It would be great if you use them.**
All commits message are going to be validated when they are created using husky hooks.
> Please, try to provide one single commit to help a clean and easy merge process.
### Adding a changeset
We use [changesets](https://github.com/atlassian/changesets) in order to generate a detailed Changelog as possible.
Add a changeset with your Pull Request is essential if you want your contribution get merged. To create a changeset please run:
```
pnpm changeset
```
Then select the packages you want to include in your changeset navigating through them and press the spacebar to check it, on finish press enter to move to the next step.
```
🦋 Which packages would you like to include? …
✔ changed packages
changed packages
✔ @verdaccio/api
✔ @verdaccio/auth
✔ @verdaccio/cli
✔ @verdaccio/config
✔ @verdaccio/commons-api
```
The next question would be if you want a _major bump_, this is not the usual scenario, most likely would be a patch, in that case press enter 2 times (to skip minor)
```
🦋 Which packages should have a major bump? …
✔ all packages
✔ @verdaccio/config@5.0.0-alpha.0
```
Once the desired bump you need, the CLI will ask for a summary, here you have fully freedom what to include.
```
🦋 Which packages would you like to include? · @verdaccio/config
🦋 Which packages should have a major bump? · No items were selected
🦋 Which packages should have a minor bump? · No items were selected
🦋 The following packages will be patch bumped:
🦋 @verdaccio/config@5.0.0-alpha.0
🦋 Please enter a summary for this change (this will be in the changelogs). Submit empty line to open external editor
🦋 Summary
```
The last step is confirm your changeset or abort the operation.
```
🦋 Is this your desired changeset? (Y/n) · true
🦋 Changeset added! - you can now commit it
🦋
🦋 If you want to modify or expand on the changeset summary, you can find it here
🦋 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 using markdown, adding additional information, code snippets or what you consider is relevant.
All that information will be part of the **changelog**, be concise but informative. It is considered a good option to add your nickname and GitHub link to your profile.
**PRs that do not follow the commit message guidelines will not be merged.**
### Update Tests
**Any change in source code must include test updates**.
If you need help with how testing works, please [refer to the following guide](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests).
**If you are introducing new features, you MUST include new tests. PRs for
features without tests will not be merged.**
## Develop Plugins
Plugins are add-ons that extend the functionality of the application.
If you want to develop your own plugin:
1. Check whether there is a legacy Sinopia plugin for the feature that you need
via [npmjs](https://www.npmjs.com/search?q=sinopia)
2. Keep in mind the [life-cycle to load a plugin](https://verdaccio.org/docs/en/dev-plugins)
3. You are free to host your plugin in your repository
4. Provide a detailed description of your plugin to help users understand how to use it.

View File

@@ -1,5 +1,4 @@
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
@@ -37,5 +36,4 @@
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->

View File

@@ -1,37 +1,25 @@
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:22.14.0-alpine as builder
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:14.15.1-alpine as builder
ENV NODE_ENV=production \
VERDACCIO_BUILD_REGISTRY=https://registry.npmjs.org \
HUSKY_SKIP_INSTALL=1 \
CI=true \
HUSKY_DEBUG=1
ENV NODE_ENV=development \
VERDACCIO_BUILD_REGISTRY=https://registry.verdaccio.org
RUN apk add --force-overwrite && \
apk --no-cache add openssl ca-certificates wget && \
apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python3 && \
RUN apk --no-cache add openssl ca-certificates wget && \
apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python && \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk && \
apk add --force-overwrite glibc-2.35-r0.apk
wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \
apk add glibc-2.25-r0.apk
WORKDIR /opt/verdaccio-build
COPY . .
## build the project and create a tarball of the project for later
## global installation
RUN yarn config set npmRegistryServer $VERDACCIO_BUILD_REGISTRY && \
yarn config set enableProgressBars true && \
yarn config set enableScripts false && \
yarn install --immutable && \
yarn build
## pack the project
RUN yarn pack --dry-run \
&& yarn pack --out verdaccio.tgz \
&& mkdir -p /opt/tarball \
&& mv /opt/verdaccio-build/verdaccio.tgz /opt/tarball
## clean up and reduce bundle size
RUN rm -Rf /opt/verdaccio-build
RUN npm -g i pnpm@latest && \
pnpm config set registry $VERDACCIO_BUILD_REGISTRY && \
pnpm recursive install --frozen-lockfile --ignore-scripts && \
pnpm run build
# FIXME: need to remove devDependencies from the build
# RUN pnpm install --prod --ignore-scripts
FROM node:22.14.0-alpine
FROM node:14.15.1-alpine
LABEL maintainer="https://github.com/verdaccio/verdaccio"
ENV VERDACCIO_APPDIR=/opt/verdaccio \
@@ -44,30 +32,17 @@ ENV PATH=$VERDACCIO_APPDIR/docker-bin:$PATH \
WORKDIR $VERDACCIO_APPDIR
# https://github.com/Yelp/dumb-init
RUN apk --no-cache add openssl dumb-init
RUN mkdir -p /verdaccio/storage /verdaccio/plugins /verdaccio/conf
COPY --from=builder /opt/tarball .
COPY --from=builder /opt/verdaccio-build .
USER root
# install verdaccio as a global package so is fully handled by npm
# ensure none dependency is being missing and is prod by default
RUN npm install -g $VERDACCIO_APPDIR/verdaccio.tgz \
## clean up cache
&& npm cache clean --force \
&& rm -Rf .npm/ \
&& rm $VERDACCIO_APPDIR/verdaccio.tgz \
# yarn is not need it after this step
# Also remove the symlinks added in the [`node:alpine` Docker image](https://github.com/nodejs/docker-node/blob/02a64a08a98a472c6141cd583d2e9fc47bcd9bfd/18/alpine3.16/Dockerfile#L91-L92).
&& rm -Rf /opt/yarn-v1.22.19/ /usr/local/bin/yarn /usr/local/bin/yarnpkg
ADD conf/docker.yaml /verdaccio/conf/config.yaml
ADD docker-bin $VERDACCIO_APPDIR/docker-bin
RUN ls packages/config/src/conf
ADD packages/config/src/conf/docker.yaml /verdaccio/conf/config.yaml
RUN adduser -u $VERDACCIO_USER_UID -S -D -h $VERDACCIO_APPDIR -g "$VERDACCIO_USER_NAME user" -s /sbin/nologin $VERDACCIO_USER_NAME && \
chmod -R +x /usr/local/lib/node_modules/verdaccio/bin/verdaccio $VERDACCIO_APPDIR/docker-bin && \
chmod -R +x $VERDACCIO_APPDIR/packages/verdaccio/bin $VERDACCIO_APPDIR/docker-bin && \
chown -R $VERDACCIO_USER_UID:root /verdaccio/storage && \
chmod -R g=u /verdaccio/storage /etc/passwd
@@ -79,4 +54,4 @@ VOLUME /verdaccio/storage
ENTRYPOINT ["uid_entrypoint"]
CMD verdaccio --config /verdaccio/conf/config.yaml --listen $VERDACCIO_PROTOCOL://0.0.0.0:$VERDACCIO_PORT
CMD $VERDACCIO_APPDIR/packages/verdaccio/bin/verdaccio --config /verdaccio/conf/config.yaml --listen $VERDACCIO_PROTOCOL://0.0.0.0:$VERDACCIO_PORT

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2023 Verdaccio contributors
Copyright (c) 2018 Verdaccio community
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

261
README.md
View File

@@ -1,8 +1,6 @@
![verdaccio logo](https://cdn.verdaccio.dev/readme/verdaccio@2x.png)
![verdaccio gif](https://cdn.verdaccio.dev/readme/readme-website.png)
# Version 7.x
# Version 6.x (Under development)
[Verdaccio](https://verdaccio.org/) is a simple, **zero-config-required local private npm registry**.
No need for an entire database just to get started! Verdaccio comes out of the box with
@@ -12,260 +10,43 @@ For those looking to extend their storage capabilities, Verdaccio
**supports various community-made plugins to hook into services such as Amazon's s3,
Google Cloud Storage** or create your own plugin.
[![verdaccio (latest)](https://img.shields.io/npm/v/verdaccio/latest.svg)](https://www.npmjs.com/package/verdaccio)
[![verdaccio (downloads)](https://img.shields.io/npm/dy/verdaccio.svg)](https://www.npmjs.com/package/verdaccio)
[![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html)
[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)
[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)
[![discord](https://img.shields.io/discord/388674437219745793.svg)](https://discord.gg/7qWJxBf)
[![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/verdaccio/verdaccio)](https://www.tickgit.com/browse?repo=github.com/verdaccio/verdaccio)
[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)
[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)
[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)
## Install
## Install 6.x
Install with npm:
> ⚠️ Not available on npmjs
> Consider `latest-6` tag as not a definitive release.
With docker
```bash
npm install --location=global verdaccio@latest-6
docker pull verdaccio/verdaccio:6.x-next
```
> Node.js v18 or higher is required for Verdaccio 6
## Development
or pull [Docker official image](https://verdaccio.org/docs/docker)
Please check [docs/development.md](docs/development.md) for further notes.
```bash
docker pull verdaccio/verdaccio
```
## Roadmap
and run
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
or with _helm_ [official chart](https://github.com/verdaccio/charts).
```bash
helm repo add verdaccio https://charts.verdaccio.org
helm repo update
helm install verdaccio/verdaccio
```
## Programmatic API
Verdaccio can be used as a module for launch a server programmatically, [you can find more info at the website](https://verdaccio.org/docs/verdaccio-programmatically#using-the-module-api).
```
const {runServer} = require('verdaccio');
const app = await runServer(); // default configuration
const app = await runServer('./config/config.yaml');
const app = await runServer({ configuration });
app.listen(4873, (event) => {
// do something
});
```
## Plugins
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
```
Learn more [here](https://verdaccio.org/docs/dev-plugins) how to develop plugins. Share your plugins with the community.
Please check [the roadmap](https://github.com/verdaccio/verdaccio/discussions/1690) if you are willing to contribute.
## 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 and maintenance.
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 making a donation - **your logo might end up in this readme.** 😉
You can donate **[GitHub Sponsors](https://github.com/sponsors/verdaccio)** or **[Open Collective](https://opencollective.com/verdaccio)** 💵👍🏻 starting from _$1/month_ or just one single contribution.
## What does Verdaccio do for me?
### Use private packages
If you want to use all benefits of npm package system in your company without sending all code to the public, and use your private packages just as easy as public ones.
### Cache npmjs.org registry
If you have more than one server you want to install packages on, you might want to use this to decrease latency
(presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like _[How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)_, _[Many packages suddenly disappeared](https://github.com/npm/registry-issue-archive/issues/255)_ or _[Registry returns 404 for a package I have installed before](https://github.com/npm/registry-issue-archive/issues/329)_.
### Link multiple registries
If you use multiples registries in your organization and need to fetch packages from multiple sources in one single project you might take advance of the uplinks feature with Verdaccio, chaining multiple registries and fetching from one single endpoint.
### Override public packages
If you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accept pull request yet), you can publish your version locally under the same name. See in detail [here](https://verdaccio.org/docs/en/best#override-public-packages).
### 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).
Furthermore, here few examples how to start:
- [e2e-ci-example-gh-actions](https://github.com/juanpicado/e2e-ci-example-gh-actions)
- [verdaccio-end-to-end-tests](https://github.com/juanpicado/verdaccio-end-to-end-tests)
- [verdaccio-fork](https://github.com/juanpicado/verdaccio-fork)
## Talks
- [**NodeTLV 2022** - Deep dive into Verdaccio, a lightweight Node.js registry - **Juan Picado**](https://portal.gitnation.org/contents/five-ways-of-taking-advantage-of-verdaccio-your-private-and-proxy-nodejs-registry)
- [Five Ways of Taking Advantage of Verdaccio, Your Private and Proxy Node.js Registry **Node Congress 2022** - **Juan Picado**](https://portal.gitnation.org/contents/five-ways-of-taking-advantage-of-verdaccio-your-private-and-proxy-nodejs-registry)
- [Using Docker and Verdaccio to make Integration Testing Easy - **Docker All Hands #4 December - 2021** - **Juan Picado**](https://www.youtube.com/watch?v=zRI0skF1f8I)
[View more in the YouTube channel](https://www.youtube.com/channel/UC5i20v6o7lSjXzAHOvatt0w).
## Get Started
Run in your terminal
```bash
verdaccio
```
You would need set some npm configuration, this is optional.
```bash
$ npm set registry http://localhost:4873/
```
For one-off commands or to avoid setting the registry globally:
```bash
NPM_CONFIG_REGISTRY=http://localhost:4873 npm i
```
Now you can navigate to [http://localhost:4873/](http://localhost:4873/) where your local packages will be listed and can be searched.
> Warning: Verdaccio [does not currently support PM2's cluster mode](https://github.com/verdaccio/verdaccio/issues/1301#issuecomment-489302298), running it with cluster mode may cause unknown behavior.
## Publishing
#### 1. create a user and log in
```bash
npm adduser --registry http://localhost:4873
```
> if you use HTTPS, add an appropriate CA information ("null" means get CA list from OS)
```bash
$ npm set ca null
```
#### 2. publish your package
```bash
npm publish --registry http://localhost:4873
```
This will prompt you for user credentials which will be saved on the `verdaccio` server.
## Docker
Below are the most commonly needed information,
every aspect of Docker and verdaccio is [documented separately](https://www.verdaccio.org/docs/en/docker.html)
```
docker pull verdaccio/verdaccio
```
Available as [tags](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
```
docker pull verdaccio/verdaccio:5.x-next
```
### Running verdaccio using Docker
To run the docker container:
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
Docker examples are available [in this repository](https://github.com/verdaccio/docker-examples).
## 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.
### Basic features
- Installing packages (`npm install`, `npm upgrade`, etc.) - **supported**
- Publishing packages (`npm publish`) - **supported**
### Advanced package control
- Unpublishing packages (`npm unpublish`) - **supported**
- Tagging (`npm 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** (under flag)
### Miscellany
- Search (`npm search`) - **supported** (cli (`/-/all` and `v1`) / browser)
- Ping (`npm ping`) - **supported**
- Starring (`npm star`, `npm unstar`, `npm stars`) - **supported**
### Security
- npm/yarn audit - **supported**
**[Donate](https://opencollective.com/verdaccio)** 💵👍🏻 starting from _\$1/month_ or just one single contribution.
## Report a vulnerability
If you want to report a security vulnerability, please follow the steps which we have defined for you in our [security policy](https://github.com/verdaccio/verdaccio/security/policy).
## Contributors
| [Juan Picado](https://github.com/juanpicado) | [Ayush Sharma](https://github.com/ayusharma) | [Sergio Hg](https://github.com/sergiohgz) |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| ![jotadeveloper](https://avatars3.githubusercontent.com/u/558752?s=80&v=4) | ![ayusharma](https://avatars2.githubusercontent.com/u/6918450?s=80&v=4) | ![sergiohgz](https://avatars2.githubusercontent.com/u/14012309?s=80&v=4) |
| [@jotadeveloper](https://fosstodon.org/@jotadeveloper) | [@ayusharma\_](https://twitter.com/ayusharma_) | [@sergiohgz](https://twitter.com/sergiohgz) |
| [Priscila Oliveria](https://github.com/priscilawebdev) | [Daniel Ruf](https://github.com/DanielRuf) |
| ![priscilawebdev](https://avatars2.githubusercontent.com/u/29228205?s=80&v=4) | ![DanielRuf](https://avatars3.githubusercontent.com/u/827205?s=80&v=4) |
| [@priscilawebdev](https://twitter.com/priscilawebdev) | [@DanielRufde](https://twitter.com/DanielRufde) |
[See the full list of contributors is at the website.](https://verdaccio.org/contributors)
## Who is using Verdaccio?
- [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#customizing-e2e-registry-configuration) _(+96.2k ⭐️)_
- [Gatsby](https://github.com/gatsbyjs/gatsby) _(+53.5k ⭐️)_
- [Babel.js](https://github.com/babel/babel) _(+41.3k ⭐️)_
- [Docusaurus](https://github.com/facebook/docusaurus) _(+37k ⭐️)_
- [Vue CLI](https://github.com/vuejs/vue-cli) _(+29.4k ⭐️)_
- [Angular CLI](https://github.com/angular/angular-cli) _(+25.6k ⭐️)_
- [Uppy](https://github.com/transloadit/uppy) _(+25.8k ⭐️)_
- [pnpm](https://github.com/pnpm/pnpm) _(+19.2k ⭐️)_
- [bit](https://github.com/teambit/bit) _(+15k ⭐️)_
- [NX](https://github.com/nrwl/nx) _(+14.1k ⭐️)_
- [Aurelia Framework](https://github.com/aurelia/framework) _(+11.6k ⭐️)_
- [ethereum/web3.js](https://github.com/ethereum/web3.js) _(+9.8k ⭐️)_
- [webiny-js](https://github.com/webiny/webiny-js) _(+5.9k ⭐️)_
- [workshopper how to npm](https://github.com/workshopper/how-to-npm) _(+1k ⭐️)_
- [Amazon SDK v3](https://github.com/aws/aws-sdk-js-v3)
- [Amazon Encryption SDK for Javascript](https://github.com/aws/aws-encryption-sdk-javascript)
🤓 Don't be shy, add yourself to this readme.
## Open Collective Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)]
@@ -293,9 +74,7 @@ Thanks to the following companies to help us to achieve our goals providing free
[![jetbrain](assets/thanks/jetbrains/logo.png)](https://www.jetbrains.com/)
[![crowdin](assets/thanks/crowdin/logo.png)](https://crowdin.com/)
[![browserstack](https://cdn.verdaccio.dev/readme/browserstack_logo.png)](https://www.browserstack.com/)
Verdaccio also is part of to the [Docker Open Source Program](https://www.docker.com/blog/expanded-support-for-open-source-software-projects/).
[![balsamiq](assets/thanks/balsamiq/logo.jpg)](https://balsamiq.com/)
## Contributors
@@ -308,17 +87,17 @@ This project exists thanks to all the people who contribute. [[Contribute](CONTR
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.
- [Blog](https://verdaccio.org/blog/)
- [Donations](https://github.com/sponsors/verdaccio)
- [Reporting an issue](https://github.com/verdaccio/verdaccio/issues/new/choose)
- [Donations](https://opencollective.com/verdaccio)
- [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)
- [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)
- [Chat](https://discord.gg/7qWJxBf)
- [Chat](http://chat.verdaccio.org/)
- [Logos](https://verdaccio.org/docs/en/logo)
- [Docker Examples](https://github.com/verdaccio/verdaccio/tree/master/docker-examples)
- [FAQ](https://github.com/verdaccio/verdaccio/discussions/categories/q-a)
- [Docker Examples](https://github.com/verdaccio/docker-examples)
- [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)
### License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
[Creative Commons licensed](https://creativecommons.org/licenses/by/4.0/).
[Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).

View File

@@ -4,13 +4,11 @@
The following table describes the versions of this project that are currently supported with security updates:
| Version | Supported |
| ------- | -------------------------------------- |
| 2.x | :x: |
| 3.x | :x: |
| 4.x | :x: |
| 5.x | :white_check_mark: (until end of 2024) |
| 6.x | :white_check_mark: |
| Version | Supported |
| ------- | ------------------ |
| 2.x | :x: |
| 3.x | :x: |
| 4.x | :white_check_mark: |
## Responsible disclosure security policy

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

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