mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-04-08 02:54:13 -05:00
feat: refactor middleware and bufixes (#3922)
This commit is contained in:
parent
c671faace5
commit
43de79d46a
33 changed files with 248 additions and 508 deletions
203
.pnp.cjs
generated
203
.pnp.cjs
generated
|
@ -69,24 +69,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["@typescript-eslint/eslint-plugin", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:5.59.11"],\
|
||||
["@typescript-eslint/parser", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:5.59.11"],\
|
||||
["@verdaccio-scope/verdaccio-auth-foo", "npm:0.0.2"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/local-storage", "npm:10.3.3"],\
|
||||
["@verdaccio/logger-7", "npm:6.0.0-6-next.17"],\
|
||||
["@verdaccio/middleware", "npm:6.0.0-6-next.51"],\
|
||||
["@verdaccio/logger-7", "npm:6.0.0-6-next.19"],\
|
||||
["@verdaccio/middleware", "npm:6.0.0-6-next.53"],\
|
||||
["@verdaccio/search", "npm:6.0.0-6-next.2"],\
|
||||
["@verdaccio/signature", "npm:6.0.0-6-next.2"],\
|
||||
["@verdaccio/streams", "npm:10.2.1"],\
|
||||
["@verdaccio/tarball", "npm:11.0.0-6-next.41"],\
|
||||
["@verdaccio/tarball", "npm:11.0.0-6-next.43"],\
|
||||
["@verdaccio/types", "npm:11.0.0-6-next.25"],\
|
||||
["@verdaccio/ui-theme", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.38"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/ui-theme", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.40"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.42"],\
|
||||
["JSONStream", "npm:1.3.5"],\
|
||||
["async", "npm:3.2.4"],\
|
||||
["babel-jest", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:29.6.1"],\
|
||||
["babel-plugin-dynamic-import-node", "npm:2.3.3"],\
|
||||
["body-parser", "npm:1.20.2"],\
|
||||
["clipanion", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:3.2.1"],\
|
||||
["compression", "npm:1.7.4"],\
|
||||
["cookies", "npm:0.8.0"],\
|
||||
|
@ -137,9 +136,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["ts-node", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:10.9.1"],\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"],\
|
||||
["validator", "npm:13.9.0"],\
|
||||
["verdaccio-audit", "npm:11.0.0-6-next.35"],\
|
||||
["verdaccio-audit", "npm:11.0.0-6-next.37"],\
|
||||
["verdaccio-auth-memory", "npm:10.2.2"],\
|
||||
["verdaccio-htpasswd", "npm:11.0.0-6-next.41"],\
|
||||
["verdaccio-htpasswd", "npm:11.0.0-6-next.44"],\
|
||||
["verdaccio-memory", "npm:10.3.2"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
|
@ -5749,12 +5748,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/config", [\
|
||||
["npm:6.0.0-6-next.72", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-config-npm-6.0.0-6-next.72-32f3afabd4-9880fb08ff.zip/node_modules/@verdaccio/config/",\
|
||||
["npm:6.0.0-6-next.74", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-config-npm-6.0.0-6-next.74-fabf8662cb-2cadbd173d.zip/node_modules/@verdaccio/config/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.42"],\
|
||||
["debug", "virtual:071d471ccd267160a6f0ec15e4cdc2874728a012db8f34521faf9e64a516aa918ee9ebab3c4c084d955ab74aaac5b8be9afb7a168813c9f210acdb7d88754ab9#npm:4.3.4"],\
|
||||
["js-yaml", "npm:4.1.0"],\
|
||||
["lodash", "npm:4.17.21"],\
|
||||
|
@ -5765,29 +5764,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/core", [\
|
||||
["npm:6.0.0-6-next.71", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-core-npm-6.0.0-6-next.71-dde7e6d27d-d5c61d9e86.zip/node_modules/@verdaccio/core/",\
|
||||
["npm:6.0.0-6-next.74", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-core-npm-6.0.0-6-next.74-6facca5771-ba4d1524a9.zip/node_modules/@verdaccio/core/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.71"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["ajv", "npm:8.12.0"],\
|
||||
["core-js", "npm:3.30.2"],\
|
||||
["http-errors", "npm:2.0.0"],\
|
||||
["http-status-codes", "npm:2.2.0"],\
|
||||
["process-warning", "npm:1.0.0"],\
|
||||
["semver", "npm:7.5.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:6.0.0-6-next.72", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-core-npm-6.0.0-6-next.72-ebaeda159c-785941667f.zip/node_modules/@verdaccio/core/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["ajv", "npm:8.12.0"],\
|
||||
["core-js", "npm:3.30.2"],\
|
||||
["http-errors", "npm:2.0.0"],\
|
||||
["http-status-codes", "npm:2.2.0"],\
|
||||
["process-warning", "npm:1.0.0"],\
|
||||
["semver", "npm:7.5.0"]\
|
||||
["semver", "npm:7.5.4"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
|
@ -5828,22 +5814,22 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/logger-7", [\
|
||||
["npm:6.0.0-6-next.17", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-logger-7-npm-6.0.0-6-next.17-2bc8c7ba9e-fdc2577cef.zip/node_modules/@verdaccio/logger-7/",\
|
||||
["npm:6.0.0-6-next.19", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-logger-7-npm-6.0.0-6-next.19-cece039ff5-002cb584e8.zip/node_modules/@verdaccio/logger-7/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/logger-7", "npm:6.0.0-6-next.17"],\
|
||||
["@verdaccio/logger-commons", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/logger-7", "npm:6.0.0-6-next.19"],\
|
||||
["@verdaccio/logger-commons", "npm:6.0.0-6-next.42"],\
|
||||
["pino", "npm:7.11.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@verdaccio/logger-commons", [\
|
||||
["npm:6.0.0-6-next.40", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-logger-commons-npm-6.0.0-6-next.40-cab9c8d239-448bd21ae4.zip/node_modules/@verdaccio/logger-commons/",\
|
||||
["npm:6.0.0-6-next.42", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-logger-commons-npm-6.0.0-6-next.42-83908b28ad-ed1d44557c.zip/node_modules/@verdaccio/logger-commons/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/logger-commons", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/logger-commons", "npm:6.0.0-6-next.42"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/logger-prettify", "npm:6.0.0-6-next.10"],\
|
||||
["colorette", "npm:2.0.20"],\
|
||||
["debug", "virtual:071d471ccd267160a6f0ec15e4cdc2874728a012db8f34521faf9e64a516aa918ee9ebab3c4c084d955ab74aaac5b8be9afb7a168813c9f210acdb7d88754ab9#npm:4.3.4"]\
|
||||
|
@ -5866,14 +5852,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/middleware", [\
|
||||
["npm:6.0.0-6-next.51", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-middleware-npm-6.0.0-6-next.51-d1a57a1720-50b6c0c194.zip/node_modules/@verdaccio/middleware/",\
|
||||
["npm:6.0.0-6-next.53", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-middleware-npm-6.0.0-6-next.53-0b15f87331-646971454a.zip/node_modules/@verdaccio/middleware/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/middleware", "npm:6.0.0-6-next.51"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.38"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/middleware", "npm:6.0.0-6-next.53"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.40"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.42"],\
|
||||
["debug", "virtual:071d471ccd267160a6f0ec15e4cdc2874728a012db8f34521faf9e64a516aa918ee9ebab3c4c084d955ab74aaac5b8be9afb7a168813c9f210acdb7d88754ab9#npm:4.3.4"],\
|
||||
["express", "npm:4.18.2"],\
|
||||
["express-rate-limit", "npm:5.5.1"],\
|
||||
|
@ -5915,13 +5901,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/tarball", [\
|
||||
["npm:11.0.0-6-next.41", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-tarball-npm-11.0.0-6-next.41-7f527b4078-89a6532b7a.zip/node_modules/@verdaccio/tarball/",\
|
||||
["npm:11.0.0-6-next.43", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-tarball-npm-11.0.0-6-next.43-e38e0d642e-cd39d065cf.zip/node_modules/@verdaccio/tarball/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/tarball", "npm:11.0.0-6-next.41"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.38"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/tarball", "npm:11.0.0-6-next.43"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.40"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.42"],\
|
||||
["debug", "virtual:071d471ccd267160a6f0ec15e4cdc2874728a012db8f34521faf9e64a516aa918ee9ebab3c4c084d955ab74aaac5b8be9afb7a168813c9f210acdb7d88754ab9#npm:4.3.4"],\
|
||||
["lodash", "npm:4.17.21"]\
|
||||
],\
|
||||
|
@ -5938,20 +5924,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/ui-theme", [\
|
||||
["npm:6.0.0-6-next.72", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-ui-theme-npm-6.0.0-6-next.72-3ad25529a8-2b6c09b823.zip/node_modules/@verdaccio/ui-theme/",\
|
||||
["npm:6.0.0-6-next.74", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-ui-theme-npm-6.0.0-6-next.74-8136215052-7ab99df04a.zip/node_modules/@verdaccio/ui-theme/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/ui-theme", "npm:6.0.0-6-next.72"]\
|
||||
["@verdaccio/ui-theme", "npm:6.0.0-6-next.74"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@verdaccio/url", [\
|
||||
["npm:11.0.0-6-next.38", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-url-npm-11.0.0-6-next.38-407f9b96f5-aac9b04e4f.zip/node_modules/@verdaccio/url/",\
|
||||
["npm:11.0.0-6-next.40", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-url-npm-11.0.0-6-next.40-f389fd5ab6-77889b1fcb.zip/node_modules/@verdaccio/url/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.38"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.40"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["debug", "virtual:071d471ccd267160a6f0ec15e4cdc2874728a012db8f34521faf9e64a516aa918ee9ebab3c4c084d955ab74aaac5b8be9afb7a168813c9f210acdb7d88754ab9#npm:4.3.4"],\
|
||||
["lodash", "npm:4.17.21"],\
|
||||
["validator", "npm:13.9.0"]\
|
||||
|
@ -5960,14 +5946,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["@verdaccio/utils", [\
|
||||
["npm:6.0.0-6-next.40", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-utils-npm-6.0.0-6-next.40-6d81210b28-8522be67ec.zip/node_modules/@verdaccio/utils/",\
|
||||
["npm:6.0.0-6-next.42", {\
|
||||
"packageLocation": "./.yarn/cache/@verdaccio-utils-npm-6.0.0-6-next.42-132d3a942d-d9ea0d9f9c.zip/node_modules/@verdaccio/utils/",\
|
||||
"packageDependencies": [\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.42"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["lodash", "npm:4.17.21"],\
|
||||
["minimatch", "npm:3.1.2"],\
|
||||
["semver", "npm:7.5.0"]\
|
||||
["semver", "npm:7.5.4"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
|
@ -6770,25 +6756,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["unpipe", "npm:1.0.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:1.20.2", {\
|
||||
"packageLocation": "./.yarn/cache/body-parser-npm-1.20.2-44738662cf-14d37ec638.zip/node_modules/body-parser/",\
|
||||
"packageDependencies": [\
|
||||
["body-parser", "npm:1.20.2"],\
|
||||
["bytes", "npm:3.1.2"],\
|
||||
["content-type", "npm:1.0.5"],\
|
||||
["debug", "virtual:759fd14db92b54abdb7afb3d21dbf8d50f1a5c59c96cd3f963ce3e3ed063bdb801142fae5f01cc81fb79f7ddc13b7c31a9deb9d5a9cfa48ec107f83de8f7f40e#npm:2.6.9"],\
|
||||
["depd", "npm:2.0.0"],\
|
||||
["destroy", "npm:1.2.0"],\
|
||||
["http-errors", "npm:2.0.0"],\
|
||||
["iconv-lite", "npm:0.4.24"],\
|
||||
["on-finished", "npm:2.4.1"],\
|
||||
["qs", "npm:6.11.0"],\
|
||||
["raw-body", "npm:2.5.2"],\
|
||||
["type-is", "npm:1.6.18"],\
|
||||
["unpipe", "npm:1.0.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["brace-expansion", [\
|
||||
|
@ -11929,10 +11896,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["virtual:2c3a18a16a535cecafafac4686dcde609914834792677379c1af38b636fdb4571a0527be3e92ca087ff2261c64e7f1ae95acddc692e0c113d574d8daec2c8825#npm:2.6.7", {\
|
||||
"packageLocation": "./.yarn/__virtual__/node-fetch-virtual-073eec1bd6/0/cache/node-fetch-npm-2.6.7-777aa2a6df-8d816ffd1e.zip/node_modules/node-fetch/",\
|
||||
["virtual:cc40351c685741983b41804cc37fbab0f46943a86a984eaad02f39bf5bbec189011adab51792a83d45ff82385c8cea8dc074c99aed7b875d2fda0c0ea86ee230#npm:2.6.7", {\
|
||||
"packageLocation": "./.yarn/__virtual__/node-fetch-virtual-6754bf4830/0/cache/node-fetch-npm-2.6.7-777aa2a6df-8d816ffd1e.zip/node_modules/node-fetch/",\
|
||||
"packageDependencies": [\
|
||||
["node-fetch", "virtual:2c3a18a16a535cecafafac4686dcde609914834792677379c1af38b636fdb4571a0527be3e92ca087ff2261c64e7f1ae95acddc692e0c113d574d8daec2c8825#npm:2.6.7"],\
|
||||
["node-fetch", "virtual:cc40351c685741983b41804cc37fbab0f46943a86a984eaad02f39bf5bbec189011adab51792a83d45ff82385c8cea8dc074c99aed7b875d2fda0c0ea86ee230#npm:2.6.7"],\
|
||||
["@types/encoding", null],\
|
||||
["encoding", null],\
|
||||
["whatwg-url", "npm:5.0.0"]\
|
||||
|
@ -12877,17 +12844,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["unpipe", "npm:1.0.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:2.5.2", {\
|
||||
"packageLocation": "./.yarn/cache/raw-body-npm-2.5.2-5cb9dfebc1-ba1583c8d8.zip/node_modules/raw-body/",\
|
||||
"packageDependencies": [\
|
||||
["raw-body", "npm:2.5.2"],\
|
||||
["bytes", "npm:3.1.2"],\
|
||||
["http-errors", "npm:2.0.0"],\
|
||||
["iconv-lite", "npm:0.4.24"],\
|
||||
["unpipe", "npm:1.0.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["react-is", [\
|
||||
|
@ -13340,14 +13296,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:7.5.0", {\
|
||||
"packageLocation": "./.yarn/cache/semver-npm-7.5.0-160502ad5d-2d26693775.zip/node_modules/semver/",\
|
||||
"packageDependencies": [\
|
||||
["semver", "npm:7.5.0"],\
|
||||
["lru-cache", "npm:6.0.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:7.5.4", {\
|
||||
"packageLocation": "./.yarn/cache/semver-npm-7.5.4-c4ad957fcd-12d8ad952f.zip/node_modules/semver/",\
|
||||
"packageDependencies": [\
|
||||
|
@ -14660,24 +14608,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["@typescript-eslint/eslint-plugin", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:5.59.11"],\
|
||||
["@typescript-eslint/parser", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:5.59.11"],\
|
||||
["@verdaccio-scope/verdaccio-auth-foo", "npm:0.0.2"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/local-storage", "npm:10.3.3"],\
|
||||
["@verdaccio/logger-7", "npm:6.0.0-6-next.17"],\
|
||||
["@verdaccio/middleware", "npm:6.0.0-6-next.51"],\
|
||||
["@verdaccio/logger-7", "npm:6.0.0-6-next.19"],\
|
||||
["@verdaccio/middleware", "npm:6.0.0-6-next.53"],\
|
||||
["@verdaccio/search", "npm:6.0.0-6-next.2"],\
|
||||
["@verdaccio/signature", "npm:6.0.0-6-next.2"],\
|
||||
["@verdaccio/streams", "npm:10.2.1"],\
|
||||
["@verdaccio/tarball", "npm:11.0.0-6-next.41"],\
|
||||
["@verdaccio/tarball", "npm:11.0.0-6-next.43"],\
|
||||
["@verdaccio/types", "npm:11.0.0-6-next.25"],\
|
||||
["@verdaccio/ui-theme", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.38"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.40"],\
|
||||
["@verdaccio/ui-theme", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/url", "npm:11.0.0-6-next.40"],\
|
||||
["@verdaccio/utils", "npm:6.0.0-6-next.42"],\
|
||||
["JSONStream", "npm:1.3.5"],\
|
||||
["async", "npm:3.2.4"],\
|
||||
["babel-jest", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:29.6.1"],\
|
||||
["babel-plugin-dynamic-import-node", "npm:2.3.3"],\
|
||||
["body-parser", "npm:1.20.2"],\
|
||||
["clipanion", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:3.2.1"],\
|
||||
["compression", "npm:1.7.4"],\
|
||||
["cookies", "npm:0.8.0"],\
|
||||
|
@ -14728,24 +14675,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["ts-node", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:10.9.1"],\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"],\
|
||||
["validator", "npm:13.9.0"],\
|
||||
["verdaccio-audit", "npm:11.0.0-6-next.35"],\
|
||||
["verdaccio-audit", "npm:11.0.0-6-next.37"],\
|
||||
["verdaccio-auth-memory", "npm:10.2.2"],\
|
||||
["verdaccio-htpasswd", "npm:11.0.0-6-next.41"],\
|
||||
["verdaccio-htpasswd", "npm:11.0.0-6-next.44"],\
|
||||
["verdaccio-memory", "npm:10.3.2"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}]\
|
||||
]],\
|
||||
["verdaccio-audit", [\
|
||||
["npm:11.0.0-6-next.35", {\
|
||||
"packageLocation": "./.yarn/cache/verdaccio-audit-npm-11.0.0-6-next.35-2c3a18a16a-4d94e1b725.zip/node_modules/verdaccio-audit/",\
|
||||
["npm:11.0.0-6-next.37", {\
|
||||
"packageLocation": "./.yarn/cache/verdaccio-audit-npm-11.0.0-6-next.37-cc40351c68-8a2babce51.zip/node_modules/verdaccio-audit/",\
|
||||
"packageDependencies": [\
|
||||
["verdaccio-audit", "npm:11.0.0-6-next.35"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.72"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.72"],\
|
||||
["verdaccio-audit", "npm:11.0.0-6-next.37"],\
|
||||
["@verdaccio/config", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["express", "npm:4.18.2"],\
|
||||
["https-proxy-agent", "npm:5.0.1"],\
|
||||
["node-fetch", "virtual:2c3a18a16a535cecafafac4686dcde609914834792677379c1af38b636fdb4571a0527be3e92ca087ff2261c64e7f1ae95acddc692e0c113d574d8daec2c8825#npm:2.6.7"]\
|
||||
["node-fetch", "virtual:cc40351c685741983b41804cc37fbab0f46943a86a984eaad02f39bf5bbec189011adab51792a83d45ff82385c8cea8dc074c99aed7b875d2fda0c0ea86ee230#npm:2.6.7"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
|
@ -14761,11 +14708,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["verdaccio-htpasswd", [\
|
||||
["npm:11.0.0-6-next.41", {\
|
||||
"packageLocation": "./.yarn/cache/verdaccio-htpasswd-npm-11.0.0-6-next.41-d086703514-768083f3e7.zip/node_modules/verdaccio-htpasswd/",\
|
||||
["npm:11.0.0-6-next.44", {\
|
||||
"packageLocation": "./.yarn/cache/verdaccio-htpasswd-npm-11.0.0-6-next.44-4cf4db954e-1ab224615c.zip/node_modules/verdaccio-htpasswd/",\
|
||||
"packageDependencies": [\
|
||||
["verdaccio-htpasswd", "npm:11.0.0-6-next.41"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.71"],\
|
||||
["verdaccio-htpasswd", "npm:11.0.0-6-next.44"],\
|
||||
["@verdaccio/core", "npm:6.0.0-6-next.74"],\
|
||||
["@verdaccio/file-locking", "npm:11.0.0-6-next.7"],\
|
||||
["apache-md5", "npm:1.1.8"],\
|
||||
["bcryptjs", "npm:2.4.3"],\
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@verdaccio-ui-theme-npm-6.0.0-6-next.74-8136215052-7ab99df04a.zip
vendored
Normal file
BIN
.yarn/cache/@verdaccio-ui-theme-npm-6.0.0-6-next.74-8136215052-7ab99df04a.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4,6 +4,7 @@ enableGlobalCache: false
|
|||
|
||||
npmRegistryServer: "https://registry.npmjs.org"
|
||||
|
||||
# for local development usage
|
||||
# npmRegistryServer: "http://localhost:4873/"
|
||||
# unsafeHttpWhitelist:
|
||||
# - localhost
|
||||
|
|
28
package.json
28
package.json
|
@ -19,21 +19,20 @@
|
|||
"url": "https://opencollective.com/verdaccio"
|
||||
},
|
||||
"dependencies": {
|
||||
"@verdaccio/config": "6.0.0-6-next.72",
|
||||
"@verdaccio/core": "6.0.0-6-next.72",
|
||||
"@verdaccio/config": "6.0.0-6-next.74",
|
||||
"@verdaccio/core": "6.0.0-6-next.74",
|
||||
"@verdaccio/local-storage": "10.3.3",
|
||||
"@verdaccio/logger-7": "6.0.0-6-next.17",
|
||||
"@verdaccio/middleware": "6.0.0-6-next.51",
|
||||
"@verdaccio/logger-7": "6.0.0-6-next.19",
|
||||
"@verdaccio/middleware": "6.0.0-6-next.53",
|
||||
"@verdaccio/search": "6.0.0-6-next.2",
|
||||
"@verdaccio/signature": "6.0.0-6-next.2",
|
||||
"@verdaccio/streams": "10.2.1",
|
||||
"@verdaccio/tarball": "11.0.0-6-next.41",
|
||||
"@verdaccio/ui-theme": "6.0.0-6-next.72",
|
||||
"@verdaccio/url": "11.0.0-6-next.38",
|
||||
"@verdaccio/utils": "6.0.0-6-next.40",
|
||||
"@verdaccio/tarball": "11.0.0-6-next.43",
|
||||
"@verdaccio/ui-theme": "6.0.0-6-next.74",
|
||||
"@verdaccio/url": "11.0.0-6-next.40",
|
||||
"@verdaccio/utils": "6.0.0-6-next.42",
|
||||
"JSONStream": "1.3.5",
|
||||
"async": "3.2.4",
|
||||
"body-parser": "1.20.2",
|
||||
"clipanion": "3.2.1",
|
||||
"compression": "1.7.4",
|
||||
"cookies": "0.8.0",
|
||||
|
@ -56,8 +55,8 @@
|
|||
"request": "2.88.2",
|
||||
"semver": "7.5.4",
|
||||
"validator": "13.9.0",
|
||||
"verdaccio-audit": "11.0.0-6-next.35",
|
||||
"verdaccio-htpasswd": "11.0.0-6-next.41"
|
||||
"verdaccio-audit": "11.0.0-6-next.37",
|
||||
"verdaccio-htpasswd": "11.0.0-6-next.44"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "7.22.6",
|
||||
|
@ -186,10 +185,5 @@
|
|||
"url": "https://opencollective.com/verdaccio",
|
||||
"logo": "https://opencollective.com/verdaccio/logo.txt"
|
||||
},
|
||||
"packageManager": "yarn@3.6.0",
|
||||
"dependenciesMeta": {
|
||||
"@verdaccio/types@11.0.0-6-next.24": {
|
||||
"unplugged": true
|
||||
}
|
||||
}
|
||||
"packageManager": "yarn@3.6.0"
|
||||
}
|
||||
|
|
|
@ -1,106 +1,11 @@
|
|||
import { API_ERROR, HEADERS } from '../../../lib/constants';
|
||||
import { HTTP_STATUS } from '../../../lib/constants';
|
||||
import { logger } from '../../../lib/logger';
|
||||
import { ErrorCode } from '../../../lib/utils';
|
||||
|
||||
export default function (route, auth, storage): void {
|
||||
export default function (route): void {
|
||||
// searching packages
|
||||
route.get('/-/all(/since)?', function (req, res, next) {
|
||||
let received_end = false;
|
||||
let response_finished = false;
|
||||
let processing_pkgs = 0;
|
||||
let firstPackage = true;
|
||||
logger.warn('/-/all search endpoint is deprecated, might be removed in the next major release');
|
||||
res.status(200);
|
||||
res.set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET);
|
||||
|
||||
/*
|
||||
* Offical NPM registry (registry.npmjs.org) no longer return whole database,
|
||||
* They only return packages matched with keyword in `referer: search pkg-name`,
|
||||
* And NPM client will request server in every search.
|
||||
*
|
||||
* The magic number 99999 was sent by NPM registry. Modify it may caused strange
|
||||
* behaviour in the future.
|
||||
*
|
||||
* BTW: NPM will not return result if user-agent does not contain string 'npm',
|
||||
* See: method 'request' in up-storage.js
|
||||
*
|
||||
* If there is no cache in local, NPM will request /-/all, then get response with
|
||||
* _updated: 99999, 'Date' in response header was Mon, 10 Oct 1983 00:12:48 GMT,
|
||||
* this will make NPM always query from server
|
||||
*
|
||||
* Data structure also different, whel request /-/all, response is an object, but
|
||||
* when request /-/all/since, response is an array
|
||||
*/
|
||||
const respShouldBeArray = req.path.endsWith('/since');
|
||||
if (!respShouldBeArray) {
|
||||
res.set('Date', 'Mon, 10 Oct 1983 00:12:48 GMT');
|
||||
}
|
||||
const check_finish = function (): void {
|
||||
if (!received_end) {
|
||||
return;
|
||||
}
|
||||
if (processing_pkgs) {
|
||||
return;
|
||||
}
|
||||
if (response_finished) {
|
||||
return;
|
||||
}
|
||||
response_finished = true;
|
||||
if (respShouldBeArray) {
|
||||
res.end(']\n');
|
||||
} else {
|
||||
res.end('}\n');
|
||||
}
|
||||
};
|
||||
|
||||
if (respShouldBeArray) {
|
||||
res.write('[');
|
||||
} else {
|
||||
res.write('{"_updated":' + 99999);
|
||||
}
|
||||
|
||||
const stream = storage.search(req.query.startkey || 0, { req: req });
|
||||
|
||||
stream.on('data', function each(pkg) {
|
||||
processing_pkgs++;
|
||||
|
||||
auth.allow_access({ packageName: pkg.name }, req.remote_user, function (err, allowed) {
|
||||
processing_pkgs--;
|
||||
|
||||
if (err) {
|
||||
if (err.status && String(err.status).match(/^4\d\d$/)) {
|
||||
// auth plugin returns 4xx user error,
|
||||
// that's equivalent of !allowed basically
|
||||
allowed = false;
|
||||
} else {
|
||||
stream.abort(err);
|
||||
}
|
||||
}
|
||||
|
||||
if (allowed) {
|
||||
if (respShouldBeArray) {
|
||||
res.write(`${firstPackage ? '' : ','}${JSON.stringify(pkg)}\n`);
|
||||
if (firstPackage) {
|
||||
firstPackage = false;
|
||||
}
|
||||
} else {
|
||||
res.write(',\n' + JSON.stringify(pkg.name) + ':' + JSON.stringify(pkg));
|
||||
}
|
||||
}
|
||||
|
||||
check_finish();
|
||||
});
|
||||
});
|
||||
|
||||
stream.on('error', function (err) {
|
||||
logger.error('search `/-/all endpoint has failed @{err}', err);
|
||||
received_end = true;
|
||||
check_finish();
|
||||
});
|
||||
|
||||
stream.on('end', function () {
|
||||
received_end = true;
|
||||
check_finish();
|
||||
});
|
||||
route.get('/-/all(/since)?', function (_req, res) {
|
||||
logger.warn('search endpoint has been removed, please use search v1');
|
||||
res.status(HTTP_STATUS.NOT_FOUND);
|
||||
res.json({ error: 'not found, endpoint removed' });
|
||||
});
|
||||
}
|
||||
|
|
|
@ -107,21 +107,5 @@ export default function (route: Router, auth: Auth, config: Config): void {
|
|||
}
|
||||
);
|
||||
|
||||
// placeholder 'cause npm require to be authenticated to publish
|
||||
// we do not do any real authentication yet
|
||||
userRouter.post(
|
||||
'/_session',
|
||||
Cookies.express(),
|
||||
function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {
|
||||
res.cookies.set('AuthSession', String(Math.random()), createSessionToken());
|
||||
|
||||
next({
|
||||
ok: true,
|
||||
name: 'somebody',
|
||||
roles: [],
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
route.use(userRouter);
|
||||
}
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
import { Response, Router } from 'express';
|
||||
|
||||
import profile from './profile';
|
||||
import token from './token';
|
||||
|
||||
export default (auth, storage, config) => {
|
||||
const route = Router(); /* eslint new-cap: 0 */
|
||||
route.use('/-/npm/v1/', profile(auth, config));
|
||||
route.use('/-/npm/v1/', token(auth, storage, config));
|
||||
return route;
|
||||
};
|
|
@ -21,8 +21,7 @@ export interface Profile {
|
|||
fullname: string;
|
||||
}
|
||||
|
||||
export default function (auth: Auth, config: ConfigYaml): Router {
|
||||
const profileRoute = Router(); /* eslint new-cap: 0 */
|
||||
export default function (router: Router, auth: Auth, config: ConfigYaml) {
|
||||
function buildProfile(name: string): Profile {
|
||||
return {
|
||||
tfa: false,
|
||||
|
@ -36,8 +35,8 @@ export default function (auth: Auth, config: ConfigYaml): Router {
|
|||
};
|
||||
}
|
||||
|
||||
profileRoute.get(
|
||||
'/user',
|
||||
router.get(
|
||||
'/-/npm/v1/user',
|
||||
rateLimit(config?.userRateLimit),
|
||||
function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void {
|
||||
if (_.isNil(req.remote_user.name) === false) {
|
||||
|
@ -51,8 +50,8 @@ export default function (auth: Auth, config: ConfigYaml): Router {
|
|||
}
|
||||
);
|
||||
|
||||
profileRoute.post(
|
||||
'/user',
|
||||
router.post(
|
||||
'/-/npm/v1/user',
|
||||
rateLimit(config?.userRateLimit),
|
||||
function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void {
|
||||
if (_.isNil(req.remote_user.name)) {
|
||||
|
@ -98,6 +97,4 @@ export default function (auth: Auth, config: ConfigYaml): Router {
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
return profileRoute;
|
||||
}
|
||||
|
|
|
@ -27,10 +27,9 @@ function normalizeToken(token: Token): NormalizeToken {
|
|||
}
|
||||
|
||||
// https://github.com/npm/npm-profile/blob/latest/lib/index.js
|
||||
export default function (auth: Auth, storage: Storage, config: Config): Router {
|
||||
const tokenRoute = Router(); /* eslint new-cap: 0 */
|
||||
tokenRoute.get(
|
||||
'/tokens',
|
||||
export default function (router: Router, auth: Auth, storage: Storage, config: Config) {
|
||||
router.get(
|
||||
'/-/npm/v1/tokens',
|
||||
rateLimit(config?.userRateLimit),
|
||||
async function (req: $RequestExtend, res: Response, next: $NextFunctionVer) {
|
||||
const { name } = req.remote_user;
|
||||
|
@ -56,8 +55,8 @@ export default function (auth: Auth, storage: Storage, config: Config): Router {
|
|||
}
|
||||
);
|
||||
|
||||
tokenRoute.post(
|
||||
'/tokens',
|
||||
router.post(
|
||||
'/-/npm/v1/tokens',
|
||||
rateLimit(config?.userRateLimit),
|
||||
function (req: $RequestExtend, res: Response, next: $NextFunctionVer) {
|
||||
const { password, readonly, cidr_whitelist } = req.body;
|
||||
|
@ -122,8 +121,8 @@ export default function (auth: Auth, storage: Storage, config: Config): Router {
|
|||
}
|
||||
);
|
||||
|
||||
tokenRoute.delete(
|
||||
'/tokens/token/:tokenKey',
|
||||
router.delete(
|
||||
'/-/npm/v1/tokens/token/:tokenKey',
|
||||
rateLimit(config?.userRateLimit),
|
||||
async (req: $RequestExtend, res: Response, next: $NextFunctionVer) => {
|
||||
const {
|
||||
|
@ -145,6 +144,4 @@ export default function (auth: Auth, storage: Storage, config: Config): Router {
|
|||
return next(ErrorCode.getUnauthorized());
|
||||
}
|
||||
);
|
||||
|
||||
return tokenRoute;
|
||||
}
|
||||
|
|
|
@ -3,14 +3,6 @@ import { Response, Router } from 'express';
|
|||
import { $NextFunctionVer, $RequestExtend } from '../../../types';
|
||||
|
||||
export default function (route: Router): void {
|
||||
route.get('/whoami', (req: $RequestExtend, res: Response, next: $NextFunctionVer): void => {
|
||||
if (req.get('referer') === 'whoami') {
|
||||
next({ username: req.remote_user.name });
|
||||
} else {
|
||||
next('route');
|
||||
}
|
||||
});
|
||||
|
||||
route.get('/-/whoami', (req: $RequestExtend, res: Response, next: $NextFunctionVer): any => {
|
||||
next({ username: req.remote_user.name });
|
||||
});
|
||||
|
|
|
@ -11,8 +11,9 @@ import publish from './api/publish';
|
|||
import search from './api/search';
|
||||
import stars from './api/stars';
|
||||
import user from './api/user';
|
||||
import npmV1 from './api/v1';
|
||||
import profile from './api/v1/profile';
|
||||
import v1Search from './api/v1/search';
|
||||
import token from './api/v1/token';
|
||||
import whoami from './api/whoami';
|
||||
|
||||
const {
|
||||
|
@ -46,16 +47,16 @@ export default function (config: Config, auth: Auth, storage: Storage) {
|
|||
app.use(antiLoop(config));
|
||||
// encode / in a scoped package name to be matched as a single parameter in routes
|
||||
app.use(encodeScopePackage);
|
||||
// for "npm whoami"
|
||||
whoami(app);
|
||||
pkg(app, auth, storage, config);
|
||||
search(app, auth, storage);
|
||||
profile(app, auth, config);
|
||||
search(app);
|
||||
user(app, auth, config);
|
||||
distTags(app, auth, storage);
|
||||
publish(app, auth, storage, config);
|
||||
ping(app);
|
||||
stars(app, storage);
|
||||
v1Search(app, auth, storage);
|
||||
user(app, auth, config);
|
||||
app.use(npmV1(auth, storage, config));
|
||||
token(app, auth, storage, config);
|
||||
pkg(app, auth, storage, config);
|
||||
return app;
|
||||
}
|
||||
|
|
|
@ -3,10 +3,11 @@ import cors from 'cors';
|
|||
import express, { Application } from 'express';
|
||||
import _ from 'lodash';
|
||||
|
||||
import { Config, getUserAgent } from '@verdaccio/config';
|
||||
import { getUserAgent } from '@verdaccio/config';
|
||||
import { pluginUtils } from '@verdaccio/core';
|
||||
import { final } from '@verdaccio/middleware';
|
||||
import { log } from '@verdaccio/middleware';
|
||||
import { SearchMemoryIndexer } from '@verdaccio/search';
|
||||
import { Config as IConfig } from '@verdaccio/types';
|
||||
|
||||
import Auth from '../lib/auth';
|
||||
|
@ -40,10 +41,11 @@ export function loadTheme(config) {
|
|||
}
|
||||
}
|
||||
|
||||
const defineAPI = async function (config: IConfig, storage: Storage): Promise<any> {
|
||||
const defineAPI = async function (config: IConfig, storage: Storage): Promise<express.Application> {
|
||||
const auth = new Auth(config);
|
||||
const app: Application = express();
|
||||
|
||||
SearchMemoryIndexer.configureStorage(storage);
|
||||
await SearchMemoryIndexer.init();
|
||||
// run in production mode by default, just in case
|
||||
// it shouldn't make any difference anyway
|
||||
app.set('env', process.env.NODE_ENV || 'production');
|
||||
|
@ -56,7 +58,7 @@ const defineAPI = async function (config: IConfig, storage: Storage): Promise<an
|
|||
|
||||
app.use(cors());
|
||||
|
||||
// Router setup
|
||||
// // Router setup
|
||||
app.use(log(logger));
|
||||
app.use(errorReportingMiddleware);
|
||||
if (config.user_agent) {
|
||||
|
@ -88,15 +90,16 @@ const defineAPI = async function (config: IConfig, storage: Storage): Promise<an
|
|||
config.middlewares,
|
||||
plugin_params,
|
||||
function (plugin: pluginUtils.ManifestFilter<IConfig>) {
|
||||
// @ts-expect-error
|
||||
// @ts-ignore
|
||||
return plugin.register_middlewares;
|
||||
}
|
||||
);
|
||||
|
||||
plugins.forEach((plugin: any) => {
|
||||
plugin.register_middlewares(app, auth, storage);
|
||||
});
|
||||
|
||||
// For npm request
|
||||
// // For npm request
|
||||
app.use(apiEndpoint(config, auth, storage));
|
||||
|
||||
// For WebUI & WebUI API
|
||||
|
@ -105,16 +108,14 @@ const defineAPI = async function (config: IConfig, storage: Storage): Promise<an
|
|||
res.locals.app_version = version ?? '';
|
||||
next();
|
||||
});
|
||||
const midl = await webMiddleware(config, auth, storage);
|
||||
app.use('/', midl);
|
||||
app.use(webMiddleware(config, auth, storage));
|
||||
} else {
|
||||
app.get('/', function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {
|
||||
app.get('/', function (_, __, next: $NextFunctionVer) {
|
||||
next(ErrorCode.getNotFound(API_ERROR.WEB_DISABLED));
|
||||
});
|
||||
}
|
||||
|
||||
// Catch 404
|
||||
app.get('/*', function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {
|
||||
app.get('/*', function (_, __, next: $NextFunctionVer) {
|
||||
next(ErrorCode.getNotFound(API_ERROR.FILE_NOT_FOUND));
|
||||
});
|
||||
app.use(handleError);
|
||||
|
@ -123,7 +124,7 @@ const defineAPI = async function (config: IConfig, storage: Storage): Promise<an
|
|||
return app;
|
||||
};
|
||||
|
||||
export default (async function (configHash: any): Promise<any> {
|
||||
export default (async function (configHash: any) {
|
||||
setup(configHash.logs);
|
||||
const config: IConfig = new AppConfig(_.cloneDeep(configHash));
|
||||
// register middleware plugins
|
||||
|
|
|
@ -8,20 +8,19 @@ import search from './search';
|
|||
import user from './user';
|
||||
|
||||
export default (auth, storage, config) => {
|
||||
const route = Router(); /* eslint new-cap: 0 */
|
||||
route.use(
|
||||
'/data/',
|
||||
// eslint-disable-next-line new-cap
|
||||
const router = Router();
|
||||
router.use(
|
||||
rateLimit({
|
||||
windowMs: 2 * 60 * 1000, // 2 minutes
|
||||
max: 5000, // limit each IP to 1000 requests per windowMs
|
||||
...config?.web?.rateLimit,
|
||||
})
|
||||
);
|
||||
route.use('/data/', packageApi(storage, auth, config));
|
||||
route.use('/data/', search(storage, auth));
|
||||
route.use('/sec/', rateLimit(config?.userRateLimit));
|
||||
packageApi(router, storage, auth, config);
|
||||
search(router, storage, auth);
|
||||
if (hasLogin(config)) {
|
||||
route.use('/sec/', user(auth, storage));
|
||||
user(router, auth, storage);
|
||||
}
|
||||
return route;
|
||||
return router;
|
||||
};
|
||||
|
|
|
@ -6,7 +6,7 @@ import {
|
|||
convertDistRemoteToLocalTarballUrls,
|
||||
getLocalRegistryTarballUri,
|
||||
} from '@verdaccio/tarball';
|
||||
import { Config, Package } from '@verdaccio/types';
|
||||
import { Config, Manifest } from '@verdaccio/types';
|
||||
import { generateGravatarUrl } from '@verdaccio/utils';
|
||||
|
||||
import Auth from '../../../lib/auth';
|
||||
|
@ -29,16 +29,15 @@ const getOrder = (order = 'asc') => {
|
|||
return order === 'asc';
|
||||
};
|
||||
|
||||
export type PackcageExt = Package & { author: any; dist?: { tarball: string } };
|
||||
export type PackcageExt = Manifest & { author: any; dist?: { tarball: string } };
|
||||
|
||||
function addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router {
|
||||
function addPackageWebApi(pkgRouter: Router, storage: Storage, auth: Auth, config: Config): Router {
|
||||
const can = allow(auth, {
|
||||
beforeAll: (params, message) => {
|
||||
logger.debug(params, message);
|
||||
},
|
||||
afterAll: (params, message) => logger.debug(params, message),
|
||||
});
|
||||
const pkgRouter = Router(); /* eslint new-cap: 0 */
|
||||
|
||||
const checkAllow = (name, remoteUser): Promise<boolean> =>
|
||||
new Promise((resolve, reject): void => {
|
||||
|
@ -56,7 +55,7 @@ function addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router
|
|||
|
||||
// Get list of all visible package
|
||||
pkgRouter.get(
|
||||
'/packages',
|
||||
'/-/verdaccio/data/packages',
|
||||
function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {
|
||||
storage.getLocalDatabase(async function (err, packages): Promise<void> {
|
||||
if (err) {
|
||||
|
@ -114,7 +113,7 @@ function addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router
|
|||
|
||||
// Get package readme
|
||||
pkgRouter.get(
|
||||
'/package/readme/(@:scope/)?:package/:version?',
|
||||
'/-/verdaccio/data/package/readme/(@:scope/)?:package/:version?',
|
||||
can('access'),
|
||||
function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {
|
||||
const packageName = req.params.scope
|
||||
|
@ -138,7 +137,7 @@ function addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router
|
|||
);
|
||||
|
||||
pkgRouter.get(
|
||||
'/sidebar/(@:scope/)?:package',
|
||||
'/-/verdaccio/data/sidebar/(@:scope/)?:package',
|
||||
can('access'),
|
||||
function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {
|
||||
const packageName: string = req.params.scope
|
||||
|
|
|
@ -8,11 +8,10 @@ import { DIST_TAGS } from '../../../lib/constants';
|
|||
import Storage from '../../../lib/storage';
|
||||
import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../../../types';
|
||||
|
||||
function addSearchWebApi(storage: Storage, auth: Auth): Router {
|
||||
const route = Router(); /* eslint new-cap: 0 */
|
||||
function addSearchWebApi(route: Router, storage: Storage, auth: Auth): Router {
|
||||
// Search package
|
||||
route.get(
|
||||
'/search/:anything',
|
||||
'/-/verdaccio/data/search/:anything',
|
||||
async function (
|
||||
req: $RequestExtend,
|
||||
_res: $ResponseExtend,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { Request, Response, Router } from 'express';
|
||||
import _ from 'lodash';
|
||||
|
||||
import { rateLimit } from '@verdaccio/middleware';
|
||||
import { Config, JWTSignOptions, RemoteUser } from '@verdaccio/types';
|
||||
|
||||
import Auth from '../../../lib/auth';
|
||||
|
@ -9,29 +10,32 @@ import { API_ERROR, APP_ERROR, HEADERS, HTTP_STATUS } from '../../../lib/constan
|
|||
import { ErrorCode } from '../../../lib/utils';
|
||||
import { $NextFunctionVer } from '../../../types';
|
||||
|
||||
function addUserAuthApi(auth: Auth, config: Config): Router {
|
||||
const route = Router(); /* eslint new-cap: 0 */
|
||||
route.post('/login', function (req: Request, res: Response, next: $NextFunctionVer): void {
|
||||
const { username, password } = req.body;
|
||||
function addUserAuthApi(route: Router, auth: Auth, config: Config): Router {
|
||||
route.post(
|
||||
'/-/verdaccio/sec/login',
|
||||
rateLimit(config?.userRateLimit),
|
||||
function (req: Request, res: Response, next: $NextFunctionVer): void {
|
||||
const { username, password } = req.body;
|
||||
|
||||
auth.authenticate(username, password, async (err, user: RemoteUser): Promise<void> => {
|
||||
if (err) {
|
||||
const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR;
|
||||
next(ErrorCode.getCode(errorCode, err.message));
|
||||
} else {
|
||||
req.remote_user = user;
|
||||
const jWTSignOptions: JWTSignOptions = getSecurity(config).web.sign;
|
||||
res.set(HEADERS.CACHE_CONTROL, 'no-cache, no-store');
|
||||
next({
|
||||
token: await auth.jwtEncrypt(user, jWTSignOptions),
|
||||
username: req.remote_user.name,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
auth.authenticate(username, password, async (err, user: RemoteUser): Promise<void> => {
|
||||
if (err) {
|
||||
const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR;
|
||||
next(ErrorCode.getCode(errorCode, err.message));
|
||||
} else {
|
||||
req.remote_user = user;
|
||||
const jWTSignOptions: JWTSignOptions = getSecurity(config).web.sign;
|
||||
res.set(HEADERS.CACHE_CONTROL, 'no-cache, no-store');
|
||||
next({
|
||||
token: await auth.jwtEncrypt(user, jWTSignOptions),
|
||||
username: req.remote_user.name,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
route.put(
|
||||
'/reset_password',
|
||||
'/-/verdaccio/sec/reset_password',
|
||||
function (req: Request, res: Response, next: $NextFunctionVer): void {
|
||||
if (_.isNil(req.remote_user.name)) {
|
||||
res.status(HTTP_STATUS.UNAUTHORIZED);
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
import buildDebug from 'debug';
|
||||
import express from 'express';
|
||||
import { Router } from 'express';
|
||||
import _ from 'lodash';
|
||||
|
||||
import { webMiddleware } from '@verdaccio/middleware';
|
||||
import { SearchMemoryIndexer } from '@verdaccio/search';
|
||||
import { renderWebMiddleware, setSecurityWebHeaders } from '@verdaccio/middleware';
|
||||
|
||||
import loadPlugin from '../../lib/plugin-loader';
|
||||
import webApi from './api';
|
||||
import webEndpointsApi from './api';
|
||||
|
||||
const debug = buildDebug('verdaccio:web');
|
||||
|
||||
|
@ -27,22 +26,15 @@ export function loadTheme(config) {
|
|||
}
|
||||
}
|
||||
|
||||
export default async (config, auth, storage) => {
|
||||
export default (config, auth, storage) => {
|
||||
const pluginOptions = loadTheme(config) || require('@verdaccio/ui-theme')();
|
||||
SearchMemoryIndexer.configureStorage(storage);
|
||||
await SearchMemoryIndexer.init();
|
||||
// eslint-disable-next-line new-cap
|
||||
const router = express.Router();
|
||||
// load application
|
||||
router.use(
|
||||
webMiddleware(
|
||||
config,
|
||||
{
|
||||
tokenMiddleware: auth.webUIJWTmiddleware(),
|
||||
webEndpointsApi: webApi(auth, storage, config),
|
||||
},
|
||||
pluginOptions
|
||||
)
|
||||
);
|
||||
const router = Router();
|
||||
router.use(setSecurityWebHeaders);
|
||||
// render web
|
||||
// @ts-ignore
|
||||
router.use('/', renderWebMiddleware(config, null, pluginOptions));
|
||||
// web endpoints, search, packages, etc
|
||||
router.use(webEndpointsApi(auth, storage, config));
|
||||
return router;
|
||||
};
|
||||
|
|
207
yarn.lock
207
yarn.lock
|
@ -3483,46 +3483,32 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/config@npm:6.0.0-6-next.72":
|
||||
version: 6.0.0-6-next.72
|
||||
resolution: "@verdaccio/config@npm:6.0.0-6-next.72"
|
||||
"@verdaccio/config@npm:6.0.0-6-next.74":
|
||||
version: 6.0.0-6-next.74
|
||||
resolution: "@verdaccio/config@npm:6.0.0-6-next.74"
|
||||
dependencies:
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/utils": 6.0.0-6-next.40
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
"@verdaccio/utils": 6.0.0-6-next.42
|
||||
debug: 4.3.4
|
||||
js-yaml: 4.1.0
|
||||
lodash: 4.17.21
|
||||
minimatch: 3.1.2
|
||||
yup: 0.32.11
|
||||
checksum: 9880fb08ff625dbfca1f4b3a9d2f738da12f84a73cf3da2e976f68a3d9d8e2abf1c19b73274d2c5cad292a880d59bb58b02d3d13b2a8beeed82aaa64f7e81e11
|
||||
checksum: 2cadbd173d0faa81316c4df8c0767eefa880707993985bd06ab6a6e2d4f33081ed820e7747fdecf4b31a67d7079c42c3df6c7090f7c64ac19a2a3e5d3fe93762
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/core@npm:6.0.0-6-next.71":
|
||||
version: 6.0.0-6-next.71
|
||||
resolution: "@verdaccio/core@npm:6.0.0-6-next.71"
|
||||
"@verdaccio/core@npm:6.0.0-6-next.74":
|
||||
version: 6.0.0-6-next.74
|
||||
resolution: "@verdaccio/core@npm:6.0.0-6-next.74"
|
||||
dependencies:
|
||||
ajv: 8.12.0
|
||||
core-js: 3.30.2
|
||||
http-errors: 2.0.0
|
||||
http-status-codes: 2.2.0
|
||||
process-warning: 1.0.0
|
||||
semver: 7.5.0
|
||||
checksum: d5c61d9e86bec1fbb58b2df5f8b83d0e60871173b7a160957a67805dbaec95656142853e6e99812870208b2eec754bc5d2f0b6fd3e3e9878678afcf6648d65fa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/core@npm:6.0.0-6-next.72":
|
||||
version: 6.0.0-6-next.72
|
||||
resolution: "@verdaccio/core@npm:6.0.0-6-next.72"
|
||||
dependencies:
|
||||
ajv: 8.12.0
|
||||
core-js: 3.30.2
|
||||
http-errors: 2.0.0
|
||||
http-status-codes: 2.2.0
|
||||
process-warning: 1.0.0
|
||||
semver: 7.5.0
|
||||
checksum: 785941667fe7cf9a6cf8a2d213a295a5111efbe88cd9c40b9468a14a1e9ea539a78995a53d4dc40a72a42f82bd6ec29b373ca929d07e44dc4edd8c843ce81f92
|
||||
semver: 7.5.4
|
||||
checksum: ba4d1524a97ad9f0656fdb5b658ee0ac0da632c8eb3310b9cc3499a07a9c5be23546ceb287bf2ad74199b2b4caed8c38024f3a563deca02b0a5c6f871089df6d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3560,25 +3546,25 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/logger-7@npm:6.0.0-6-next.17":
|
||||
version: 6.0.0-6-next.17
|
||||
resolution: "@verdaccio/logger-7@npm:6.0.0-6-next.17"
|
||||
"@verdaccio/logger-7@npm:6.0.0-6-next.19":
|
||||
version: 6.0.0-6-next.19
|
||||
resolution: "@verdaccio/logger-7@npm:6.0.0-6-next.19"
|
||||
dependencies:
|
||||
"@verdaccio/logger-commons": 6.0.0-6-next.40
|
||||
"@verdaccio/logger-commons": 6.0.0-6-next.42
|
||||
pino: 7.11.0
|
||||
checksum: fdc2577cefd1917428d84baa8e3659d7dcc028039f8c4f84ee72954c886d4a01ce58198b9e72059125d57169a4aabd4f54f8431affc8807dc60d6a59c73ae138
|
||||
checksum: 002cb584e858b6fda4c922a0300aa5d6954de2efd51528564756b17800c2ef7284f914eb94c952bee5c4e36c5977c25057a3b39cd8ce96c9bda671682d0c2c77
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/logger-commons@npm:6.0.0-6-next.40":
|
||||
version: 6.0.0-6-next.40
|
||||
resolution: "@verdaccio/logger-commons@npm:6.0.0-6-next.40"
|
||||
"@verdaccio/logger-commons@npm:6.0.0-6-next.42":
|
||||
version: 6.0.0-6-next.42
|
||||
resolution: "@verdaccio/logger-commons@npm:6.0.0-6-next.42"
|
||||
dependencies:
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
"@verdaccio/logger-prettify": 6.0.0-6-next.10
|
||||
colorette: 2.0.20
|
||||
debug: 4.3.4
|
||||
checksum: 448bd21ae42463d3cdb30162ef9133f52a3768ab7bab2b5f589599cd4046b0d4f9b8f2c688c0eec645c3b3da9faaca4ace689c84efe0b93f862e8e263c40abdd
|
||||
checksum: ed1d44557c160096901a00136516c54aa686cbfc5263d4b3d1ff974ebf61ff79231086efa4d8fb8a17ba612c96be30a8124c3b3fa21c5500650d6305d701472c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3595,21 +3581,21 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/middleware@npm:6.0.0-6-next.51":
|
||||
version: 6.0.0-6-next.51
|
||||
resolution: "@verdaccio/middleware@npm:6.0.0-6-next.51"
|
||||
"@verdaccio/middleware@npm:6.0.0-6-next.53":
|
||||
version: 6.0.0-6-next.53
|
||||
resolution: "@verdaccio/middleware@npm:6.0.0-6-next.53"
|
||||
dependencies:
|
||||
"@verdaccio/config": 6.0.0-6-next.72
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/url": 11.0.0-6-next.38
|
||||
"@verdaccio/utils": 6.0.0-6-next.40
|
||||
"@verdaccio/config": 6.0.0-6-next.74
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
"@verdaccio/url": 11.0.0-6-next.40
|
||||
"@verdaccio/utils": 6.0.0-6-next.42
|
||||
debug: 4.3.4
|
||||
express: 4.18.2
|
||||
express-rate-limit: 5.5.1
|
||||
lodash: 4.17.21
|
||||
lru-cache: 7.18.3
|
||||
mime: 2.6.0
|
||||
checksum: 50b6c0c1943c5507cd402bd346aee3f4440abf73ec699a27115c2ca4e93ba4a5a4155788d04c82d89c578c8454c64d4f7f72be214957dcdcf0924783306f0070
|
||||
checksum: 646971454a497ba8308f8148b4e5013a427ef138fbcca817c5a75a07647ba9a75048763a97f8a894723f11aabf9d83a696a65a2ee3f1f0d936b7f8ff91a10282
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3638,16 +3624,16 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/tarball@npm:11.0.0-6-next.41":
|
||||
version: 11.0.0-6-next.41
|
||||
resolution: "@verdaccio/tarball@npm:11.0.0-6-next.41"
|
||||
"@verdaccio/tarball@npm:11.0.0-6-next.43":
|
||||
version: 11.0.0-6-next.43
|
||||
resolution: "@verdaccio/tarball@npm:11.0.0-6-next.43"
|
||||
dependencies:
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/url": 11.0.0-6-next.38
|
||||
"@verdaccio/utils": 6.0.0-6-next.40
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
"@verdaccio/url": 11.0.0-6-next.40
|
||||
"@verdaccio/utils": 6.0.0-6-next.42
|
||||
debug: 4.3.4
|
||||
lodash: 4.17.21
|
||||
checksum: 89a6532b7a85d7962b2fb7204a5d4a439534c34329814436d5bf197b15eac2b1724ccfc2dd4598f500db87c83832e3cf4f4090f603b3e47bc0e469a40c2d7138
|
||||
checksum: cd39d065cfcc677f609dd3f277889ef25019a35c42457b792c75252376b3788ffad982e97ecb204c02fbe2ac5173da61620e2d72ba703f0440eb11be583dc94e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3658,34 +3644,34 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/ui-theme@npm:6.0.0-6-next.72":
|
||||
version: 6.0.0-6-next.72
|
||||
resolution: "@verdaccio/ui-theme@npm:6.0.0-6-next.72"
|
||||
checksum: 2b6c09b8230081a1fd63dbd00e7d26d92da286286dc930b10410872afee297b701fcf0f9aa09d3f01c15b0b33e0959ddd375a590b6f3dcdfc6c0ff90653ee624
|
||||
"@verdaccio/ui-theme@npm:6.0.0-6-next.74":
|
||||
version: 6.0.0-6-next.74
|
||||
resolution: "@verdaccio/ui-theme@npm:6.0.0-6-next.74"
|
||||
checksum: 7ab99df04a3297e457a105832fe3028ebca962676b9af727bc1a9515e5ca378ab9c2dca8cf81e9d62f2ced710ba9640fd70fefadfaf1080f752d39314480ab75
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/url@npm:11.0.0-6-next.38":
|
||||
version: 11.0.0-6-next.38
|
||||
resolution: "@verdaccio/url@npm:11.0.0-6-next.38"
|
||||
"@verdaccio/url@npm:11.0.0-6-next.40":
|
||||
version: 11.0.0-6-next.40
|
||||
resolution: "@verdaccio/url@npm:11.0.0-6-next.40"
|
||||
dependencies:
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
debug: 4.3.4
|
||||
lodash: 4.17.21
|
||||
validator: 13.9.0
|
||||
checksum: aac9b04e4fda24e167b3c313e38361069b4b37b4fdf9b848dbc1e6d28341b25a2efbe43a287e3890ff64f10d2f1b9d9c71f1a3a990caa38e5d5b312e40618920
|
||||
checksum: 77889b1fcba2e376e49b97bfdca9431fa79ab8b2270f00f347b94fcce2aad85349d89dc0e5aef5132c5a568cd93701b8027813fe800e5e014628b6d2b045ea77
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@verdaccio/utils@npm:6.0.0-6-next.40":
|
||||
version: 6.0.0-6-next.40
|
||||
resolution: "@verdaccio/utils@npm:6.0.0-6-next.40"
|
||||
"@verdaccio/utils@npm:6.0.0-6-next.42":
|
||||
version: 6.0.0-6-next.42
|
||||
resolution: "@verdaccio/utils@npm:6.0.0-6-next.42"
|
||||
dependencies:
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
lodash: 4.17.21
|
||||
minimatch: 3.1.2
|
||||
semver: 7.5.0
|
||||
checksum: 8522be67ec363d923af92eaf3339a94d4806259c1a9503a7c47214568c1d4235b094c7dcee4f8957777cefdde6b112979b203d7719d080f3588492191f65d722
|
||||
semver: 7.5.4
|
||||
checksum: d9ea0d9f9c81bd6044b93d25ae04e8b327fef52b4b4738c0be4e15ae4d7b1befbde44f4159e87e6b958c4749fda4d84a4a4731e19d7eb8e855cefcdb1fa948ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4258,26 +4244,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"body-parser@npm:1.20.2":
|
||||
version: 1.20.2
|
||||
resolution: "body-parser@npm:1.20.2"
|
||||
dependencies:
|
||||
bytes: 3.1.2
|
||||
content-type: ~1.0.5
|
||||
debug: 2.6.9
|
||||
depd: 2.0.0
|
||||
destroy: 1.2.0
|
||||
http-errors: 2.0.0
|
||||
iconv-lite: 0.4.24
|
||||
on-finished: 2.4.1
|
||||
qs: 6.11.0
|
||||
raw-body: 2.5.2
|
||||
type-is: ~1.6.18
|
||||
unpipe: 1.0.0
|
||||
checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"brace-expansion@npm:^1.1.7":
|
||||
version: 1.1.11
|
||||
resolution: "brace-expansion@npm:1.1.11"
|
||||
|
@ -4750,7 +4716,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
|
||||
"content-type@npm:~1.0.4":
|
||||
version: 1.0.5
|
||||
resolution: "content-type@npm:1.0.5"
|
||||
checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766
|
||||
|
@ -9521,18 +9487,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"raw-body@npm:2.5.2":
|
||||
version: 2.5.2
|
||||
resolution: "raw-body@npm:2.5.2"
|
||||
dependencies:
|
||||
bytes: 3.1.2
|
||||
http-errors: 2.0.0
|
||||
iconv-lite: 0.4.24
|
||||
unpipe: 1.0.0
|
||||
checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-is@npm:^17.0.1":
|
||||
version: 17.0.2
|
||||
resolution: "react-is@npm:17.0.2"
|
||||
|
@ -9951,17 +9905,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:7.5.0":
|
||||
version: 7.5.0
|
||||
resolution: "semver@npm:7.5.0"
|
||||
dependencies:
|
||||
lru-cache: ^6.0.0
|
||||
bin:
|
||||
semver: bin/semver.js
|
||||
checksum: 2d266937756689a76f124ffb4c1ea3e1bbb2b263219f90ada8a11aebebe1280b13bb76cca2ca96bdee3dbc554cbc0b24752eb895b2a51577aa644427e9229f2b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:7.5.4, semver@npm:^7.5.3":
|
||||
version: 7.5.4
|
||||
resolution: "semver@npm:7.5.4"
|
||||
|
@ -11087,16 +11030,16 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"verdaccio-audit@npm:11.0.0-6-next.35":
|
||||
version: 11.0.0-6-next.35
|
||||
resolution: "verdaccio-audit@npm:11.0.0-6-next.35"
|
||||
"verdaccio-audit@npm:11.0.0-6-next.37":
|
||||
version: 11.0.0-6-next.37
|
||||
resolution: "verdaccio-audit@npm:11.0.0-6-next.37"
|
||||
dependencies:
|
||||
"@verdaccio/config": 6.0.0-6-next.72
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/config": 6.0.0-6-next.74
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
express: 4.18.2
|
||||
https-proxy-agent: 5.0.1
|
||||
node-fetch: cjs
|
||||
checksum: 4d94e1b72580fd6f41e63da581950dee79de3884edac431728dd219224baf9061aad8ec8e033d0a0476bdbb5089d23163f568f533be24c68427cfbf41c6ee45c
|
||||
checksum: 8a2babce515d2a09a7373c802b133a1b11bcf6388bb6f05959b9addfcd9329f4ba5ad43c3893900af2d8855659b749e10763c3af30182579672582d9e9f1802a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -11109,11 +11052,11 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"verdaccio-htpasswd@npm:11.0.0-6-next.41":
|
||||
version: 11.0.0-6-next.41
|
||||
resolution: "verdaccio-htpasswd@npm:11.0.0-6-next.41"
|
||||
"verdaccio-htpasswd@npm:11.0.0-6-next.44":
|
||||
version: 11.0.0-6-next.44
|
||||
resolution: "verdaccio-htpasswd@npm:11.0.0-6-next.44"
|
||||
dependencies:
|
||||
"@verdaccio/core": 6.0.0-6-next.71
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
"@verdaccio/file-locking": 11.0.0-6-next.7
|
||||
apache-md5: 1.1.8
|
||||
bcryptjs: 2.4.3
|
||||
|
@ -11121,7 +11064,7 @@ __metadata:
|
|||
debug: 4.3.4
|
||||
http-errors: 2.0.0
|
||||
unix-crypt-td-js: 1.1.4
|
||||
checksum: 768083f3e7a54b504e41afd5c4d9e4057480a87b5434c96e924739086bc07812b6c115a57969008aae86493c2bd99a4ad829bd5d0705e254fc4668b5edf79a28
|
||||
checksum: 1ab224615c532afbb5d8564dfdea4fef80a66b9141874bdee20926cc0ee2bf9e40048d36b43855099a84d2acb765a3cfde1715b9a5758240a039aaea7f78c00d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -11181,24 +11124,23 @@ __metadata:
|
|||
"@typescript-eslint/eslint-plugin": 5.59.11
|
||||
"@typescript-eslint/parser": 5.59.11
|
||||
"@verdaccio-scope/verdaccio-auth-foo": 0.0.2
|
||||
"@verdaccio/config": 6.0.0-6-next.72
|
||||
"@verdaccio/core": 6.0.0-6-next.72
|
||||
"@verdaccio/config": 6.0.0-6-next.74
|
||||
"@verdaccio/core": 6.0.0-6-next.74
|
||||
"@verdaccio/local-storage": 10.3.3
|
||||
"@verdaccio/logger-7": 6.0.0-6-next.17
|
||||
"@verdaccio/middleware": 6.0.0-6-next.51
|
||||
"@verdaccio/logger-7": 6.0.0-6-next.19
|
||||
"@verdaccio/middleware": 6.0.0-6-next.53
|
||||
"@verdaccio/search": 6.0.0-6-next.2
|
||||
"@verdaccio/signature": 6.0.0-6-next.2
|
||||
"@verdaccio/streams": 10.2.1
|
||||
"@verdaccio/tarball": 11.0.0-6-next.41
|
||||
"@verdaccio/tarball": 11.0.0-6-next.43
|
||||
"@verdaccio/types": 11.0.0-6-next.25
|
||||
"@verdaccio/ui-theme": 6.0.0-6-next.72
|
||||
"@verdaccio/url": 11.0.0-6-next.38
|
||||
"@verdaccio/utils": 6.0.0-6-next.40
|
||||
"@verdaccio/ui-theme": 6.0.0-6-next.74
|
||||
"@verdaccio/url": 11.0.0-6-next.40
|
||||
"@verdaccio/utils": 6.0.0-6-next.42
|
||||
JSONStream: 1.3.5
|
||||
async: 3.2.4
|
||||
babel-jest: 29.6.1
|
||||
babel-plugin-dynamic-import-node: 2.3.3
|
||||
body-parser: 1.20.2
|
||||
clipanion: 3.2.1
|
||||
compression: 1.7.4
|
||||
cookies: 0.8.0
|
||||
|
@ -11249,13 +11191,10 @@ __metadata:
|
|||
ts-node: 10.9.1
|
||||
typescript: 4.9.5
|
||||
validator: 13.9.0
|
||||
verdaccio-audit: 11.0.0-6-next.35
|
||||
verdaccio-audit: 11.0.0-6-next.37
|
||||
verdaccio-auth-memory: 10.2.2
|
||||
verdaccio-htpasswd: 11.0.0-6-next.41
|
||||
verdaccio-htpasswd: 11.0.0-6-next.44
|
||||
verdaccio-memory: 10.3.2
|
||||
dependenciesMeta:
|
||||
"@verdaccio/types@11.0.0-6-next.24":
|
||||
unplugged: true
|
||||
bin:
|
||||
verdaccio: ./bin/verdaccio
|
||||
languageName: unknown
|
||||
|
|
Loading…
Add table
Reference in a new issue