@verdaccio/api 6.0.0-6-next.38 → 6.0.0-6-next.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/build/index.js +0 -1
- package/build/index.js.map +1 -1
- package/build/package.js +3 -3
- package/build/package.js.map +1 -1
- package/package.json +10 -10
- package/src/index.ts +0 -1
- package/src/package.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @verdaccio/api
|
|
2
2
|
|
|
3
|
+
## 6.0.0-6-next.40
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [9943e2b1]
|
|
8
|
+
- @verdaccio/middleware@6.0.0-6-next.36
|
|
9
|
+
- @verdaccio/store@6.0.0-6-next.37
|
|
10
|
+
- @verdaccio/core@6.0.0-6-next.57
|
|
11
|
+
- @verdaccio/config@6.0.0-6-next.57
|
|
12
|
+
- @verdaccio/auth@6.0.0-6-next.36
|
|
13
|
+
- @verdaccio/logger@6.0.0-6-next.25
|
|
14
|
+
- @verdaccio/utils@6.0.0-6-next.25
|
|
15
|
+
|
|
16
|
+
## 6.0.0-6-next.39
|
|
17
|
+
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- a1986e09: feat: expose middleware utils
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Updated dependencies [a1986e09]
|
|
25
|
+
- @verdaccio/middleware@6.0.0-6-next.35
|
|
26
|
+
- @verdaccio/utils@6.0.0-6-next.24
|
|
27
|
+
- @verdaccio/auth@6.0.0-6-next.35
|
|
28
|
+
- @verdaccio/config@6.0.0-6-next.56
|
|
29
|
+
- @verdaccio/store@6.0.0-6-next.36
|
|
30
|
+
- @verdaccio/core@6.0.0-6-next.56
|
|
31
|
+
- @verdaccio/logger@6.0.0-6-next.24
|
|
32
|
+
|
|
3
33
|
## 6.0.0-6-next.38
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/build/index.js
CHANGED
|
@@ -37,7 +37,6 @@ function _default(config, auth, storage) {
|
|
|
37
37
|
// TODO: For some reason? what reason?
|
|
38
38
|
app.param('_rev', (0, _middleware.match)(/^-rev$/));
|
|
39
39
|
app.param('org_couchdb_user', (0, _middleware.match)(/^org\.couchdb\.user:/));
|
|
40
|
-
app.param('anything', (0, _middleware.match)(/.*/));
|
|
41
40
|
app.use(auth.apiJWTmiddleware());
|
|
42
41
|
app.use(_bodyParser.default.json({
|
|
43
42
|
strict: false,
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["config","auth","storage","app","express","Router","param","validatePackage","validateName","match","use","apiJWTmiddleware","bodyParser","json","strict","limit","max_body_size","antiLoop","encodeScopePackage","whoami","pkg","profile","search","user","distTags","publish","ping","stars","v1Search","token"],"sources":["../src/index.ts"],"sourcesContent":["import bodyParser from 'body-parser';\nimport express, { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n antiLoop,\n encodeScopePackage,\n match,\n validateName,\n validatePackage,\n} from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Config } from '@verdaccio/types';\n\nimport distTags from './dist-tags';\nimport pkg from './package';\nimport ping from './ping';\nimport publish from './publish';\nimport search from './search';\nimport stars from './stars';\nimport user from './user';\nimport profile from './v1/profile';\nimport v1Search from './v1/search';\nimport token from './v1/token';\nimport whoami from './whoami';\n\nexport default function (config: Config, auth: Auth, storage: Storage): Router {\n /* eslint new-cap:off */\n const app = express.Router();\n /* eslint new-cap:off */\n\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble\n app.param('package', validatePackage);\n app.param('filename', validateName);\n app.param('tag', validateName);\n app.param('version', validateName);\n app.param('revision', validateName);\n app.param('token', validateName);\n\n // these can't be safely put into express url for some reason\n // TODO: For some reason? what reason?\n app.param('_rev', match(/^-rev$/));\n app.param('org_couchdb_user', match(/^org\\.couchdb\\.user:/));\n app.
|
|
1
|
+
{"version":3,"file":"index.js","names":["config","auth","storage","app","express","Router","param","validatePackage","validateName","match","use","apiJWTmiddleware","bodyParser","json","strict","limit","max_body_size","antiLoop","encodeScopePackage","whoami","pkg","profile","search","user","distTags","publish","ping","stars","v1Search","token"],"sources":["../src/index.ts"],"sourcesContent":["import bodyParser from 'body-parser';\nimport express, { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n antiLoop,\n encodeScopePackage,\n match,\n validateName,\n validatePackage,\n} from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Config } from '@verdaccio/types';\n\nimport distTags from './dist-tags';\nimport pkg from './package';\nimport ping from './ping';\nimport publish from './publish';\nimport search from './search';\nimport stars from './stars';\nimport user from './user';\nimport profile from './v1/profile';\nimport v1Search from './v1/search';\nimport token from './v1/token';\nimport whoami from './whoami';\n\nexport default function (config: Config, auth: Auth, storage: Storage): Router {\n /* eslint new-cap:off */\n const app = express.Router();\n /* eslint new-cap:off */\n\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble\n app.param('package', validatePackage);\n app.param('filename', validateName);\n app.param('tag', validateName);\n app.param('version', validateName);\n app.param('revision', validateName);\n app.param('token', validateName);\n\n // these can't be safely put into express url for some reason\n // TODO: For some reason? what reason?\n app.param('_rev', match(/^-rev$/));\n app.param('org_couchdb_user', match(/^org\\.couchdb\\.user:/));\n app.use(auth.apiJWTmiddleware());\n app.use(bodyParser.json({ strict: false, limit: config.max_body_size || '10mb' }));\n // @ts-ignore\n app.use(antiLoop(config));\n // encode / in a scoped package name to be matched as a single parameter in routes\n app.use(encodeScopePackage);\n // for \"npm whoami\"\n whoami(app);\n pkg(app, auth, storage);\n profile(app, auth, config);\n // @deprecated endpoint, 404 by default\n search(app);\n user(app, auth, config);\n distTags(app, auth, storage);\n publish(app, auth, storage);\n ping(app);\n stars(app, storage);\n // @ts-ignore\n v1Search(app, auth, storage);\n token(app, auth, storage, config);\n return app;\n}\n"],"mappings":";;;;;;AAAA;AACA;AAGA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8B;AAEf,kBAAUA,MAAc,EAAEC,IAAU,EAAEC,OAAgB,EAAU;EAC7E;EACA,MAAMC,GAAG,GAAGC,gBAAO,CAACC,MAAM,EAAE;EAC5B;;EAEA;EACA;EACAF,GAAG,CAACG,KAAK,CAAC,SAAS,EAAEC,2BAAe,CAAC;EACrCJ,GAAG,CAACG,KAAK,CAAC,UAAU,EAAEE,wBAAY,CAAC;EACnCL,GAAG,CAACG,KAAK,CAAC,KAAK,EAAEE,wBAAY,CAAC;EAC9BL,GAAG,CAACG,KAAK,CAAC,SAAS,EAAEE,wBAAY,CAAC;EAClCL,GAAG,CAACG,KAAK,CAAC,UAAU,EAAEE,wBAAY,CAAC;EACnCL,GAAG,CAACG,KAAK,CAAC,OAAO,EAAEE,wBAAY,CAAC;;EAEhC;EACA;EACAL,GAAG,CAACG,KAAK,CAAC,MAAM,EAAE,IAAAG,iBAAK,EAAC,QAAQ,CAAC,CAAC;EAClCN,GAAG,CAACG,KAAK,CAAC,kBAAkB,EAAE,IAAAG,iBAAK,EAAC,sBAAsB,CAAC,CAAC;EAC5DN,GAAG,CAACO,GAAG,CAACT,IAAI,CAACU,gBAAgB,EAAE,CAAC;EAChCR,GAAG,CAACO,GAAG,CAACE,mBAAU,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAE,KAAK;IAAEC,KAAK,EAAEf,MAAM,CAACgB,aAAa,IAAI;EAAO,CAAC,CAAC,CAAC;EAClF;EACAb,GAAG,CAACO,GAAG,CAAC,IAAAO,oBAAQ,EAACjB,MAAM,CAAC,CAAC;EACzB;EACAG,GAAG,CAACO,GAAG,CAACQ,8BAAkB,CAAC;EAC3B;EACA,IAAAC,eAAM,EAAChB,GAAG,CAAC;EACX,IAAAiB,gBAAG,EAACjB,GAAG,EAAEF,IAAI,EAAEC,OAAO,CAAC;EACvB,IAAAmB,gBAAO,EAAClB,GAAG,EAAEF,IAAI,EAAED,MAAM,CAAC;EAC1B;EACA,IAAAsB,eAAM,EAACnB,GAAG,CAAC;EACX,IAAAoB,aAAI,EAACpB,GAAG,EAAEF,IAAI,EAAED,MAAM,CAAC;EACvB,IAAAwB,iBAAQ,EAACrB,GAAG,EAAEF,IAAI,EAAEC,OAAO,CAAC;EAC5B,IAAAuB,gBAAO,EAACtB,GAAG,EAAEF,IAAI,EAAEC,OAAO,CAAC;EAC3B,IAAAwB,aAAI,EAACvB,GAAG,CAAC;EACT,IAAAwB,cAAK,EAACxB,GAAG,EAAED,OAAO,CAAC;EACnB;EACA,IAAA0B,gBAAQ,EAACzB,GAAG,EAAEF,IAAI,EAAEC,OAAO,CAAC;EAC5B,IAAA2B,cAAK,EAAC1B,GAAG,EAAEF,IAAI,EAAEC,OAAO,EAAEF,MAAM,CAAC;EACjC,OAAOG,GAAG;AACZ"}
|
package/build/package.js
CHANGED
|
@@ -44,14 +44,14 @@ function _default(route, auth, storage) {
|
|
|
44
44
|
next(err);
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
|
-
route.get('/:
|
|
47
|
+
route.get('/:package/-/:filename', can('access'), async function (req, res, next) {
|
|
48
48
|
const {
|
|
49
|
-
|
|
49
|
+
package: pkgName,
|
|
50
50
|
filename
|
|
51
51
|
} = req.params;
|
|
52
52
|
const abort = new AbortController();
|
|
53
53
|
try {
|
|
54
|
-
const stream = await storage.getTarballNext(
|
|
54
|
+
const stream = await storage.getTarballNext(pkgName, filename, {
|
|
55
55
|
signal: abort.signal
|
|
56
56
|
// TODO: review why this param
|
|
57
57
|
// enableRemote: true,
|
package/build/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","names":["debug","buildDebug","route","auth","storage","can","allow","get","req","_res","next","name","params","package","version","write","query","abbreviated","stringUtils","getByQualityPriorityValue","Storage","ABBREVIATED_HEADER","requestOptions","protocol","headers","host","remoteAddress","socket","byPassCache","manifest","getPackageByOptions","uplinksLook","setHeader","HEADER_TYPE","CONTENT_TYPE","HEADERS","JSON_INSTALL_CHARSET","JSON","err","res","
|
|
1
|
+
{"version":3,"file":"package.js","names":["debug","buildDebug","route","auth","storage","can","allow","get","req","_res","next","name","params","package","version","write","query","abbreviated","stringUtils","getByQualityPriorityValue","Storage","ABBREVIATED_HEADER","requestOptions","protocol","headers","host","remoteAddress","socket","byPassCache","manifest","getPackageByOptions","uplinksLook","setHeader","HEADER_TYPE","CONTENT_TYPE","HEADERS","JSON_INSTALL_CHARSET","JSON","err","res","pkgName","filename","abort","AbortController","stream","getTarballNext","signal","on","size","header","CONTENT_LENGTH","once","locals","report_error","url","OCTET_STREAM","pipe"],"sources":["../src/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { HEADERS, HEADER_TYPE, stringUtils } from '@verdaccio/core';\nimport { allow } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nconst debug = buildDebug('verdaccio:api:package');\n\nexport default function (route: Router, auth: Auth, storage: Storage): void {\n const can = allow(auth);\n\n route.get(\n '/:package/:version?',\n can('access'),\n async function (\n req: $RequestExtend,\n _res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('init package by version');\n const name = req.params.package;\n let version = req.params.version;\n const write = req.query.write === 'true';\n const abbreviated =\n stringUtils.getByQualityPriorityValue(req.get('Accept')) === Storage.ABBREVIATED_HEADER;\n const requestOptions = {\n protocol: req.protocol,\n headers: req.headers as any,\n // FIXME: if we migrate to req.hostname, the port is not longer included.\n host: req.host,\n remoteAddress: req.socket.remoteAddress,\n byPassCache: write,\n };\n\n try {\n const manifest = await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n abbreviated,\n version,\n requestOptions,\n });\n if (abbreviated) {\n _res.setHeader(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_INSTALL_CHARSET);\n } else {\n _res.setHeader(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON);\n }\n\n next(manifest);\n } catch (err) {\n next(err);\n }\n }\n );\n\n route.get(\n '/:package/-/:filename',\n can('access'),\n async function (req: $RequestExtend, res: $ResponseExtend, next): Promise<void> {\n const { package: pkgName, filename } = req.params;\n const abort = new AbortController();\n try {\n const stream = (await storage.getTarballNext(pkgName, filename, {\n signal: abort.signal,\n // TODO: review why this param\n // enableRemote: true,\n })) as any;\n\n stream.on('content-length', (size) => {\n res.header(HEADER_TYPE.CONTENT_LENGTH, size);\n });\n\n stream.once('error', (err) => {\n res.locals.report_error(err);\n next(err);\n });\n\n req.on('abort', () => {\n debug('request aborted for %o', req.url);\n abort.abort();\n });\n\n res.header(HEADERS.CONTENT_TYPE, HEADERS.OCTET_STREAM);\n stream.pipe(res);\n } catch (err: any) {\n // console.log('catch API error request', err);\n res.locals.report_error(err);\n next(err);\n }\n }\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/api",
|
|
3
|
-
"version": "6.0.0-6-next.
|
|
3
|
+
"version": "6.0.0-6-next.40",
|
|
4
4
|
"description": "loaders logic",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
},
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@verdaccio/auth": "6.0.0-6-next.
|
|
34
|
-
"@verdaccio/config": "6.0.0-6-next.
|
|
35
|
-
"@verdaccio/core": "6.0.0-6-next.
|
|
36
|
-
"@verdaccio/logger": "6.0.0-6-next.
|
|
37
|
-
"@verdaccio/middleware": "6.0.0-6-next.
|
|
38
|
-
"@verdaccio/store": "6.0.0-6-next.
|
|
39
|
-
"@verdaccio/utils": "6.0.0-6-next.
|
|
33
|
+
"@verdaccio/auth": "6.0.0-6-next.36",
|
|
34
|
+
"@verdaccio/config": "6.0.0-6-next.57",
|
|
35
|
+
"@verdaccio/core": "6.0.0-6-next.57",
|
|
36
|
+
"@verdaccio/logger": "6.0.0-6-next.25",
|
|
37
|
+
"@verdaccio/middleware": "6.0.0-6-next.36",
|
|
38
|
+
"@verdaccio/store": "6.0.0-6-next.37",
|
|
39
|
+
"@verdaccio/utils": "6.0.0-6-next.25",
|
|
40
40
|
"abortcontroller-polyfill": "1.7.5",
|
|
41
41
|
"cookies": "0.8.0",
|
|
42
42
|
"debug": "4.3.4",
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "16.18.10",
|
|
51
|
-
"@verdaccio/server": "6.0.0-6-next.
|
|
51
|
+
"@verdaccio/server": "6.0.0-6-next.46",
|
|
52
52
|
"@verdaccio/types": "11.0.0-6-next.19",
|
|
53
|
-
"@verdaccio/test-helper": "2.0.0-6-next.
|
|
53
|
+
"@verdaccio/test-helper": "2.0.0-6-next.7",
|
|
54
54
|
"supertest": "6.3.3",
|
|
55
55
|
"nock": "13.2.9",
|
|
56
56
|
"mockdate": "3.0.5"
|
package/src/index.ts
CHANGED
|
@@ -42,7 +42,6 @@ export default function (config: Config, auth: Auth, storage: Storage): Router {
|
|
|
42
42
|
// TODO: For some reason? what reason?
|
|
43
43
|
app.param('_rev', match(/^-rev$/));
|
|
44
44
|
app.param('org_couchdb_user', match(/^org\.couchdb\.user:/));
|
|
45
|
-
app.param('anything', match(/.*/));
|
|
46
45
|
app.use(auth.apiJWTmiddleware());
|
|
47
46
|
app.use(bodyParser.json({ strict: false, limit: config.max_body_size || '10mb' }));
|
|
48
47
|
// @ts-ignore
|
package/src/package.ts
CHANGED
|
@@ -58,13 +58,13 @@ export default function (route: Router, auth: Auth, storage: Storage): void {
|
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
route.get(
|
|
61
|
-
'/:
|
|
61
|
+
'/:package/-/:filename',
|
|
62
62
|
can('access'),
|
|
63
63
|
async function (req: $RequestExtend, res: $ResponseExtend, next): Promise<void> {
|
|
64
|
-
const {
|
|
64
|
+
const { package: pkgName, filename } = req.params;
|
|
65
65
|
const abort = new AbortController();
|
|
66
66
|
try {
|
|
67
|
-
const stream = (await storage.getTarballNext(
|
|
67
|
+
const stream = (await storage.getTarballNext(pkgName, filename, {
|
|
68
68
|
signal: abort.signal,
|
|
69
69
|
// TODO: review why this param
|
|
70
70
|
// enableRemote: true,
|