@verdaccio/api 6.0.0-6-next.32 → 6.0.0-6-next.33
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 +13 -0
- package/build/v1/search.js +2 -1
- package/build/v1/search.js.map +1 -1
- package/package.json +15 -15
- package/src/v1/search.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @verdaccio/api
|
|
2
2
|
|
|
3
|
+
## 6.0.0-6-next.33
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b4cc8001: fix: improve abort request search
|
|
8
|
+
- @verdaccio/core@6.0.0-6-next.50
|
|
9
|
+
- @verdaccio/config@6.0.0-6-next.50
|
|
10
|
+
- @verdaccio/auth@6.0.0-6-next.29
|
|
11
|
+
- @verdaccio/logger@6.0.0-6-next.18
|
|
12
|
+
- @verdaccio/middleware@6.0.0-6-next.29
|
|
13
|
+
- @verdaccio/store@6.0.0-6-next.30
|
|
14
|
+
- @verdaccio/utils@6.0.0-6-next.18
|
|
15
|
+
|
|
3
16
|
## 6.0.0-6-next.32
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/build/v1/search.js
CHANGED
|
@@ -55,7 +55,8 @@ function _default(route, auth, storage) {
|
|
|
55
55
|
let [size, from] = ['size', 'from'].map(k => query[k]);
|
|
56
56
|
let data;
|
|
57
57
|
const abort = new AbortController();
|
|
58
|
-
req.on('
|
|
58
|
+
req.socket.on('close', function () {
|
|
59
|
+
debug('search web aborted');
|
|
59
60
|
abort.abort();
|
|
60
61
|
});
|
|
61
62
|
size = parseInt(size, 10) || 20;
|
package/build/v1/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","names":["debug","buildDebug","route","auth","storage","checkAccess","pkg","remoteUser","Promise","resolve","reject","allow_access","packageName","package","name","err","allowed","status","String","match","get","req","res","next","query","url","size","from","map","k","data","abort","AbortController","on","parseInt","search","checkAccessPromises","all","pkgItem","remote_user","final","filter","i","_","isNull","slice","logger","length","response","objects","total","time","Date","toUTCString","HTTP_STATUS","OK","json","error"],"sources":["../../src/v1/search.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport { HTTP_STATUS, searchUtils } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { Storage } from '@verdaccio/store';\nimport { Manifest } from '@verdaccio/types';\n\nconst debug = buildDebug('verdaccio:api:search');\n\n/**\n * Endpoint for npm search v1\n * Empty value\n * - {\"objects\":[],\"total\":0,\"time\":\"Sun Jul 25 2021 14:09:11 GMT+0000 (Coordinated Universal Time)\"}\n * req: 'GET /-/v1/search?text=react&size=20&frpom=0&quality=0.65&popularity=0.98&maintenance=0.5'\n */\nexport default function (route, auth: Auth, storage: Storage): void {\n function checkAccess(pkg: any, auth: any, remoteUser): Promise<Manifest | null> {\n return new Promise((resolve, reject) => {\n auth.allow_access({ packageName: pkg?.package?.name }, remoteUser, function (err, allowed) {\n if (err) {\n if (err.status && String(err.status).match(/^4\\d\\d$/)) {\n // auth plugin returns 4xx user error,\n // that's equivalent of !allowed basically\n allowed = false;\n return resolve(null);\n } else {\n reject(err);\n }\n } else {\n return resolve(allowed ? pkg : null);\n }\n });\n });\n }\n\n route.get('/-/v1/search', async (req, res, next) => {\n const { query, url } = req;\n let [size, from] = ['size', 'from'].map((k) => query[k]);\n let data;\n const abort = new AbortController();\n\n req.on('
|
|
1
|
+
{"version":3,"file":"search.js","names":["debug","buildDebug","route","auth","storage","checkAccess","pkg","remoteUser","Promise","resolve","reject","allow_access","packageName","package","name","err","allowed","status","String","match","get","req","res","next","query","url","size","from","map","k","data","abort","AbortController","socket","on","parseInt","search","checkAccessPromises","all","pkgItem","remote_user","final","filter","i","_","isNull","slice","logger","length","response","objects","total","time","Date","toUTCString","HTTP_STATUS","OK","json","error"],"sources":["../../src/v1/search.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport { HTTP_STATUS, searchUtils } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { Storage } from '@verdaccio/store';\nimport { Manifest } from '@verdaccio/types';\n\nconst debug = buildDebug('verdaccio:api:search');\n\n/**\n * Endpoint for npm search v1\n * Empty value\n * - {\"objects\":[],\"total\":0,\"time\":\"Sun Jul 25 2021 14:09:11 GMT+0000 (Coordinated Universal Time)\"}\n * req: 'GET /-/v1/search?text=react&size=20&frpom=0&quality=0.65&popularity=0.98&maintenance=0.5'\n */\nexport default function (route, auth: Auth, storage: Storage): void {\n function checkAccess(pkg: any, auth: any, remoteUser): Promise<Manifest | null> {\n return new Promise((resolve, reject) => {\n auth.allow_access({ packageName: pkg?.package?.name }, remoteUser, function (err, allowed) {\n if (err) {\n if (err.status && String(err.status).match(/^4\\d\\d$/)) {\n // auth plugin returns 4xx user error,\n // that's equivalent of !allowed basically\n allowed = false;\n return resolve(null);\n } else {\n reject(err);\n }\n } else {\n return resolve(allowed ? pkg : null);\n }\n });\n });\n }\n\n route.get('/-/v1/search', async (req, res, next) => {\n const { query, url } = req;\n let [size, from] = ['size', 'from'].map((k) => query[k]);\n let data;\n const abort = new AbortController();\n\n req.socket.on('close', function () {\n debug('search web aborted');\n abort.abort();\n });\n\n size = parseInt(size, 10) || 20;\n from = parseInt(from, 10) || 0;\n\n try {\n data = await storage.search({\n query,\n url,\n abort,\n });\n debug('stream finish');\n const checkAccessPromises: searchUtils.SearchItemPkg[] = await Promise.all(\n data.map((pkgItem) => {\n return checkAccess(pkgItem, auth, req.remote_user);\n })\n );\n\n const final: searchUtils.SearchItemPkg[] = checkAccessPromises\n .filter((i) => !_.isNull(i))\n .slice(from, size);\n logger.debug(`search results ${final?.length}`);\n\n const response: searchUtils.SearchResults = {\n objects: final,\n total: final.length,\n time: new Date().toUTCString(),\n };\n\n res.status(HTTP_STATUS.OK).json(response);\n } catch (error) {\n logger.error({ error }, 'search endpoint has failed @{error.message}');\n next(next);\n return;\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.33",
|
|
4
4
|
"description": "loaders logic",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -30,28 +30,28 @@
|
|
|
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.
|
|
40
|
-
"abortcontroller-polyfill": "1.7.
|
|
33
|
+
"@verdaccio/auth": "6.0.0-6-next.29",
|
|
34
|
+
"@verdaccio/config": "6.0.0-6-next.50",
|
|
35
|
+
"@verdaccio/core": "6.0.0-6-next.50",
|
|
36
|
+
"@verdaccio/logger": "6.0.0-6-next.18",
|
|
37
|
+
"@verdaccio/middleware": "6.0.0-6-next.29",
|
|
38
|
+
"@verdaccio/store": "6.0.0-6-next.30",
|
|
39
|
+
"@verdaccio/utils": "6.0.0-6-next.18",
|
|
40
|
+
"abortcontroller-polyfill": "1.7.5",
|
|
41
41
|
"cookies": "0.8.0",
|
|
42
42
|
"debug": "4.3.4",
|
|
43
|
-
"body-parser": "1.20.
|
|
44
|
-
"express": "4.18.
|
|
43
|
+
"body-parser": "1.20.1",
|
|
44
|
+
"express": "4.18.2",
|
|
45
45
|
"lodash": "4.17.21",
|
|
46
46
|
"mime": "2.6.0",
|
|
47
|
-
"semver": "7.3.
|
|
47
|
+
"semver": "7.3.8"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@types/node": "16.11.
|
|
51
|
-
"@verdaccio/server": "6.0.0-6-next.
|
|
50
|
+
"@types/node": "16.11.65",
|
|
51
|
+
"@verdaccio/server": "6.0.0-6-next.39",
|
|
52
52
|
"@verdaccio/types": "11.0.0-6-next.17",
|
|
53
53
|
"@verdaccio/test-helper": "2.0.0-6-next.6",
|
|
54
|
-
"supertest": "6.
|
|
54
|
+
"supertest": "6.3.0",
|
|
55
55
|
"nock": "13.2.9",
|
|
56
56
|
"mockdate": "3.0.5"
|
|
57
57
|
},
|
package/src/v1/search.ts
CHANGED