Compare commits

..

3 Commits

Author SHA1 Message Date
github-actions[bot]
6a01bdbcc9 chore: update versions (6-next) (#2231)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-05-07 07:41:38 +02:00
Leonardo Metzger
5ddfa5264c fix: fix the exact search phrase (#2225)
* fix: Fix the exact search phrase

* fix: Add changeset to fix of exact search phrase

Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2021-05-07 06:43:29 +02:00
Vitaly Baev
1cc00cf2ab Fixed broken link (#2232) 2021-05-06 18:34:17 +02:00
24 changed files with 146 additions and 43 deletions

View File

@@ -62,6 +62,7 @@
"plenty-spiders-melt",
"plenty-tables-refuse",
"pretty-hounds-tap",
"red-chefs-float",
"shiny-chefs-heal",
"smart-apricots-kneel",
"spicy-frogs-press",

View File

@@ -0,0 +1,12 @@
---
'@verdaccio/store': patch
'@verdaccio/web': patch
---
Fix the search by exact name of the package
Full package name queries was not finding anithing. It was happening
becouse of stemmer of [lunr.js](https://lunrjs.com/).
To fix this, the stemmer of [lunr.js](https://lunrjs.com/) was removed from search pipeline.

View File

@@ -2,4 +2,4 @@
> Before run examples, build the local image by running `pnpm docker`.
- [Docker + Nginx + Verdaccio](v5/reverse_proxy/nginx/README.md)
- [Docker + Nginx + Verdaccio](reverse_proxy/nginx/README.md)

View File

@@ -1,5 +1,12 @@
# @verdaccio/api
## 6.0.0-6-next.11
### Patch Changes
- Updated dependencies [5ddfa526]
- @verdaccio/store@6.0.0-6-next.9
## 6.0.0-6-next.10
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/api",
"version": "6.0.0-6-next.10",
"version": "6.0.0-6-next.11",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -45,7 +45,7 @@
"@verdaccio/hooks": "workspace:6.0.0-6-next.4",
"@verdaccio/logger": "workspace:6.0.0-6-next.4",
"@verdaccio/middleware": "workspace:6.0.0-6-next.8",
"@verdaccio/store": "workspace:6.0.0-6-next.8",
"@verdaccio/store": "workspace:6.0.0-6-next.9",
"@verdaccio/tarball": "workspace:11.0.0-6-next.5",
"@verdaccio/utils": "workspace:6.0.0-6-next.4",
"cookies": "0.8.0",
@@ -56,7 +56,7 @@
"semver": "7.3.2"
},
"devDependencies": {
"@verdaccio/server": "workspace:6.0.0-6-next.14",
"@verdaccio/server": "workspace:6.0.0-6-next.15",
"@verdaccio/types": "workspace:11.0.0-6-next.7",
"body-parser": "1.19.0",
"lodash": "^4.17.20",

View File

@@ -1,5 +1,11 @@
# @verdaccio/cli
## 6.0.0-6-next.16
### Patch Changes
- @verdaccio/node-api@6.0.0-6-next.16
## 6.0.0-6-next.15
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/cli",
"version": "6.0.0-6-next.15",
"version": "6.0.0-6-next.16",
"author": {
"name": "Juan Picado",
"email": "juanpicado19@gmail.com"
@@ -45,7 +45,7 @@
"dependencies": {
"@verdaccio/config": "workspace:6.0.0-6-next.6",
"@verdaccio/logger": "workspace:6.0.0-6-next.4",
"@verdaccio/node-api": "workspace:6.0.0-6-next.15",
"@verdaccio/node-api": "workspace:6.0.0-6-next.16",
"@verdaccio/fastify-migration": "workspace:6.0.0-6-next.9",
"commander": "6.2.0",
"clipanion": "3.0.0-rc.11",

View File

@@ -1,5 +1,11 @@
# @verdaccio/node-api
## 6.0.0-6-next.16
### Patch Changes
- @verdaccio/server@6.0.0-6-next.15
## 6.0.0-6-next.15
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/node-api",
"version": "6.0.0-6-next.15",
"version": "6.0.0-6-next.16",
"description": "node API",
"main": "build/index.js",
"types": "build/index.d.ts",
@@ -41,7 +41,7 @@
"dependencies": {
"@verdaccio/commons-api": "workspace:11.0.0-alpha.3",
"@verdaccio/config": "workspace:6.0.0-6-next.6",
"@verdaccio/server": "workspace:6.0.0-6-next.14",
"@verdaccio/server": "workspace:6.0.0-6-next.15",
"@verdaccio/logger": "workspace:6.0.0-6-next.4",
"core-js": "^3.6.5",
"debug": "^4.2.0",

View File

@@ -29,7 +29,7 @@
"@testing-library/dom": "^7.29.0",
"@testing-library/jest-dom": "^5.11.6",
"@testing-library/react": "10.4.9",
"@verdaccio/node-api": "workspace:6.0.0-6-next.15",
"@verdaccio/node-api": "workspace:6.0.0-6-next.16",
"autosuggest-highlight": "3.1.1",
"babel-loader": "^8.2.2",
"babel-plugin-dynamic-import-node": "^2.3.3",

View File

@@ -1,5 +1,14 @@
# @verdaccio/server
## 6.0.0-6-next.15
### Patch Changes
- Updated dependencies [5ddfa526]
- @verdaccio/store@6.0.0-6-next.9
- @verdaccio/web@6.0.0-6-next.14
- @verdaccio/api@6.0.0-6-next.11
## 6.0.0-6-next.14
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/server",
"version": "6.0.0-6-next.14",
"version": "6.0.0-6-next.15",
"description": "server logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -30,16 +30,16 @@
"npm": ">=6"
},
"dependencies": {
"@verdaccio/api": "workspace:6.0.0-6-next.10",
"@verdaccio/api": "workspace:6.0.0-6-next.11",
"@verdaccio/auth": "workspace:6.0.0-6-next.8",
"@verdaccio/commons-api": "workspace:11.0.0-alpha.3",
"@verdaccio/config": "workspace:6.0.0-6-next.6",
"@verdaccio/loaders": "workspace:6.0.0-6-next.4",
"@verdaccio/logger": "workspace:6.0.0-6-next.4",
"@verdaccio/middleware": "workspace:6.0.0-6-next.8",
"@verdaccio/store": "workspace:6.0.0-6-next.8",
"@verdaccio/store": "workspace:6.0.0-6-next.9",
"@verdaccio/utils": "workspace:6.0.0-6-next.4",
"@verdaccio/web": "workspace:6.0.0-6-next.13",
"@verdaccio/web": "workspace:6.0.0-6-next.14",
"verdaccio-audit": "workspace:11.0.0-alpha.4",
"compression": "1.7.4",
"cors": "2.8.5",

View File

@@ -123,6 +123,16 @@ describe('endpoint web unit test', () => {
});
describe('Search', () => {
test('should find @scope/pk1-test', (done) => {
request(app)
.get('/-/verdaccio/search/@scope%2fpk1-test')
.expect(HTTP_STATUS.OK)
.end(function (err, res) {
expect(res.body).toHaveLength(1);
done();
});
});
test('should not find forbidden-place', (done) => {
request(app)
.get('/-/verdaccio/search/forbidden-place')

View File

@@ -32,7 +32,7 @@
"homepage": "https://verdaccio.org",
"license": "MIT",
"devDependencies": {
"@verdaccio/cli": "workspace:6.0.0-6-next.15",
"@verdaccio/cli": "workspace:6.0.0-6-next.16",
"@verdaccio/ui-theme": "workspace:6.0.0-6-next.8",
"fs-extra": "9.0.1",
"webpack": "^5.11.1",

View File

@@ -1,5 +1,16 @@
# @verdaccio/store
## 6.0.0-6-next.9
### Patch Changes
- 5ddfa526: Fix the search by exact name of the package
Full package name queries was not finding anithing. It was happening
becouse of stemmer of [lunr.js](https://lunrjs.com/).
To fix this, the stemmer of [lunr.js](https://lunrjs.com/) was removed from search pipeline.
## 6.0.0-6-next.8
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/store",
"version": "6.0.0-6-next.8",
"version": "6.0.0-6-next.9",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -50,6 +50,7 @@
"async": "3.1.1",
"debug": "^4.1.1",
"lodash": "4.17.15",
"lunr": "2.3.9",
"lunr-mutable-indexes": "^2.3.2",
"semver": "7.1.2"
},

View File

@@ -1,14 +1,20 @@
// eslint-disable no-invalid-this
import lunr from 'lunr';
import lunrMutable from 'lunr-mutable-indexes';
import { Version, IPluginStorage, Config } from '@verdaccio/types';
import { IStorageHandler, IStorage } from './storage';
export interface ISearchResult {
ref: string;
score: number;
}
export interface IWebSearch {
index: lunrMutable.index;
storage: IStorageHandler;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
query(query: string): any;
query(query: string): ISearchResult[];
add(pkg: Version): void;
remove(name: string): void;
reindex(): void;
@@ -42,6 +48,8 @@ class Search implements IWebSearch {
// @ts-ignore
this.field('readme');
});
this.index.builder.pipeline.remove(lunr.stemmer);
}
public init() {
@@ -55,7 +63,7 @@ class Search implements IWebSearch {
* @param {*} q the keyword
* @return {Array} list of results.
*/
public query(query: string): any[] {
public query(query: string): ISearchResult[] {
const localStorage = this.storage.localStorage as IStorage;
return query === '*'

View File

@@ -1,5 +1,13 @@
# verdaccio
## 6.0.0-6-next.17
### Patch Changes
- @verdaccio/node-api@6.0.0-6-next.16
- @verdaccio/cli@6.0.0-6-next.16
- @verdaccio/ui-theme@6.0.0-6-next.8
## 6.0.0-6-next.16
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "verdaccio",
"version": "6.0.0-6-next.16",
"version": "6.0.0-6-next.17",
"description": "A lightweight private npm proxy registry",
"main": "build/index.js",
"types": "build/index.d.ts",
@@ -36,11 +36,11 @@
},
"homepage": "https://verdaccio.org",
"dependencies": {
"@verdaccio/cli": "workspace:6.0.0-6-next.15",
"@verdaccio/cli": "workspace:6.0.0-6-next.16",
"@verdaccio/hooks": "workspace:6.0.0-6-next.4",
"@verdaccio/logger": "workspace:6.0.0-6-next.4",
"@verdaccio/mock": "workspace:6.0.0-6-next.6",
"@verdaccio/node-api": "workspace:6.0.0-6-next.15",
"@verdaccio/node-api": "workspace:6.0.0-6-next.16",
"@verdaccio/ui-theme": "workspace:6.0.0-6-next.8",
"@verdaccio/utils": "workspace:6.0.0-6-next.4",
"verdaccio-audit": "11.0.0-alpha.4",
@@ -50,7 +50,7 @@
"@verdaccio/auth": "workspace:6.0.0-6-next.8",
"@verdaccio/commons-api": "workspace:11.0.0-alpha.3",
"@verdaccio/config": "workspace:6.0.0-6-next.6",
"@verdaccio/store": "workspace:6.0.0-6-next.8"
"@verdaccio/store": "workspace:6.0.0-6-next.9"
},
"keywords": [
"private",

View File

@@ -1,5 +1,19 @@
# @verdaccio/web
## 6.0.0-6-next.14
### Patch Changes
- 5ddfa526: Fix the search by exact name of the package
Full package name queries was not finding anithing. It was happening
becouse of stemmer of [lunr.js](https://lunrjs.com/).
To fix this, the stemmer of [lunr.js](https://lunrjs.com/) was removed from search pipeline.
- Updated dependencies [5ddfa526]
- @verdaccio/store@6.0.0-6-next.9
## 6.0.0-6-next.13
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/web",
"version": "6.0.0-6-next.13",
"version": "6.0.0-6-next.14",
"description": "web ui middleware",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -32,7 +32,7 @@
"@verdaccio/logger": "workspace:6.0.0-6-next.4",
"@verdaccio/middleware": "workspace:6.0.0-6-next.8",
"@verdaccio/readme": "workspace:11.0.0-alpha.3",
"@verdaccio/store": "workspace:6.0.0-6-next.8",
"@verdaccio/store": "workspace:6.0.0-6-next.9",
"@verdaccio/utils": "workspace:6.0.0-6-next.4",
"@verdaccio/url": "workspace:11.0.0-6-next.4",
"@verdaccio/tarball": "workspace:11.0.0-6-next.5",

View File

@@ -28,6 +28,7 @@ function addSearchWebApi(route: Router, storage: IStorageHandler, auth: IAuth):
debug('is allowed %o', allowed);
if (err || !allowed) {
debug('deny access');
reject(err);
return;
}
debug('access succeed');
@@ -52,17 +53,17 @@ function addSearchWebApi(route: Router, storage: IStorageHandler, auth: IAuth):
res: $ResponseExtend,
next: $NextFunctionVer
): Promise<void> {
const results: string[] = SearchInstance.query(req.params.anything);
const results = SearchInstance.query(req.params.anything);
debug('search results %o', results);
if (results.length > 0) {
let packages: Package[] = [];
for (let pkgName of results) {
for (let result of results) {
try {
const pkg = await getPackageInfo(pkgName, req.remote_user);
debug('package found %o', pkgName);
const pkg = await getPackageInfo(result.ref, req.remote_user);
debug('package found %o', result.ref);
packages.push(pkg);
} catch (err) {
debug('search for %o failed err %o', pkgName, err?.message);
debug('search for %o failed err %o', result.ref, err?.message);
}
}
next(packages);

View File

@@ -9,7 +9,10 @@ import { initializeServer } from './helper';
setup([]);
const mockManifest = jest.fn();
const mockQuery = jest.fn(() => ['pkg1', 'pk2']);
const mockQuery = jest.fn(() => [
{ ref: 'pkg1', score: 1 },
{ ref: 'pk2', score: 0.9 },
]);
jest.mock('@verdaccio/ui-theme', () => mockManifest());
jest.mock('@verdaccio/store', () => ({
@@ -74,7 +77,11 @@ describe('test web server', () => {
test('should fail search api', async () => {
mockQuery.mockImplementation(() => {
return ['aa', 'bb', 'cc'];
return [
{ ref: 'aa', score: 1 },
{ ref: 'bb', score: 0.8 },
{ ref: 'cc', score: 0.6 },
];
});
const response = await supertest(await initializeServer('default-test.yaml'))
.get('/-/verdaccio/search/notFound')

28
pnpm-lock.yaml generated
View File

@@ -224,8 +224,8 @@ importers:
'@verdaccio/hooks': workspace:6.0.0-6-next.4
'@verdaccio/logger': workspace:6.0.0-6-next.4
'@verdaccio/middleware': workspace:6.0.0-6-next.8
'@verdaccio/server': workspace:6.0.0-6-next.14
'@verdaccio/store': workspace:6.0.0-6-next.8
'@verdaccio/server': workspace:6.0.0-6-next.15
'@verdaccio/store': workspace:6.0.0-6-next.9
'@verdaccio/tarball': workspace:11.0.0-6-next.5
'@verdaccio/types': workspace:11.0.0-6-next.7
'@verdaccio/utils': workspace:6.0.0-6-next.4
@@ -293,7 +293,7 @@ importers:
'@verdaccio/config': workspace:6.0.0-6-next.6
'@verdaccio/fastify-migration': workspace:6.0.0-6-next.9
'@verdaccio/logger': workspace:6.0.0-6-next.4
'@verdaccio/node-api': workspace:6.0.0-6-next.15
'@verdaccio/node-api': workspace:6.0.0-6-next.16
clipanion: 3.0.0-rc.11
commander: 6.2.0
envinfo: 7.4.0
@@ -599,7 +599,7 @@ importers:
'@verdaccio/config': workspace:6.0.0-6-next.6
'@verdaccio/logger': workspace:6.0.0-6-next.4
'@verdaccio/mock': workspace:6.0.0-6-next.6
'@verdaccio/server': workspace:6.0.0-6-next.14
'@verdaccio/server': workspace:6.0.0-6-next.15
'@verdaccio/types': workspace:11.0.0-6-next.7
core-js: ^3.6.5
debug: ^4.2.0
@@ -731,7 +731,7 @@ importers:
'@testing-library/dom': ^7.29.0
'@testing-library/jest-dom': ^5.11.6
'@testing-library/react': 10.4.9
'@verdaccio/node-api': workspace:6.0.0-6-next.15
'@verdaccio/node-api': workspace:6.0.0-6-next.16
autosuggest-highlight: 3.1.1
babel-loader: ^8.2.2
babel-plugin-dynamic-import-node: ^2.3.3
@@ -902,7 +902,7 @@ importers:
packages/server:
specifiers:
'@verdaccio/api': workspace:6.0.0-6-next.10
'@verdaccio/api': workspace:6.0.0-6-next.11
'@verdaccio/auth': workspace:6.0.0-6-next.8
'@verdaccio/commons-api': workspace:11.0.0-alpha.3
'@verdaccio/config': workspace:6.0.0-6-next.6
@@ -911,9 +911,9 @@ importers:
'@verdaccio/middleware': workspace:6.0.0-6-next.8
'@verdaccio/mock': workspace:6.0.0-6-next.6
'@verdaccio/proxy': workspace:6.0.0-6-next.8
'@verdaccio/store': workspace:6.0.0-6-next.8
'@verdaccio/store': workspace:6.0.0-6-next.9
'@verdaccio/utils': workspace:6.0.0-6-next.4
'@verdaccio/web': workspace:6.0.0-6-next.13
'@verdaccio/web': workspace:6.0.0-6-next.14
compression: 1.7.4
cors: 2.8.5
express: 4.17.1
@@ -947,7 +947,7 @@ importers:
packages/standalone:
specifiers:
'@verdaccio/cli': workspace:6.0.0-6-next.15
'@verdaccio/cli': workspace:6.0.0-6-next.16
'@verdaccio/ui-theme': workspace:6.0.0-6-next.8
fs-extra: 9.0.1
webpack: ^5.11.1
@@ -978,6 +978,7 @@ importers:
async: 3.1.1
debug: ^4.1.1
lodash: 4.17.15
lunr: 2.3.9
lunr-mutable-indexes: ^2.3.2
semver: 7.1.2
dependencies:
@@ -992,6 +993,7 @@ importers:
async: 3.1.1
debug: 4.1.1
lodash: 4.17.15
lunr: 2.3.9
lunr-mutable-indexes: 2.3.2
semver: 7.1.2
devDependencies:
@@ -1018,14 +1020,14 @@ importers:
packages/verdaccio:
specifiers:
'@verdaccio/auth': workspace:6.0.0-6-next.8
'@verdaccio/cli': workspace:6.0.0-6-next.15
'@verdaccio/cli': workspace:6.0.0-6-next.16
'@verdaccio/commons-api': workspace:11.0.0-alpha.3
'@verdaccio/config': workspace:6.0.0-6-next.6
'@verdaccio/hooks': workspace:6.0.0-6-next.4
'@verdaccio/logger': workspace:6.0.0-6-next.4
'@verdaccio/mock': workspace:6.0.0-6-next.6
'@verdaccio/node-api': workspace:6.0.0-6-next.15
'@verdaccio/store': workspace:6.0.0-6-next.8
'@verdaccio/node-api': workspace:6.0.0-6-next.16
'@verdaccio/store': workspace:6.0.0-6-next.9
'@verdaccio/ui-theme': workspace:6.0.0-6-next.8
'@verdaccio/utils': workspace:6.0.0-6-next.4
verdaccio-audit: 11.0.0-alpha.4
@@ -1055,7 +1057,7 @@ importers:
'@verdaccio/logger': workspace:6.0.0-6-next.4
'@verdaccio/middleware': workspace:6.0.0-6-next.8
'@verdaccio/readme': workspace:11.0.0-alpha.3
'@verdaccio/store': workspace:6.0.0-6-next.8
'@verdaccio/store': workspace:6.0.0-6-next.9
'@verdaccio/tarball': workspace:11.0.0-6-next.5
'@verdaccio/types': workspace:11.0.0-6-next.7
'@verdaccio/url': workspace:11.0.0-6-next.4