@verdaccio/server-fastify
Version:
fastify server api implementation
784 lines (578 loc) • 20.3 kB
Markdown
# /server-fastify
## 6.0.0-6-next.57
### Patch Changes
- /store@6.0.0-6-next.56
- /core@6.0.0-6-next.76
- /config@6.0.0-6-next.76
- /auth@6.0.0-6-next.55
- /tarball@11.0.0-6-next.45
- /utils@6.0.0-6-next.44
- /logger@6.0.0-6-next.44
## 6.0.0-6-next.56
### Patch Changes
- Updated dependencies [0a6412ca9]
- Updated dependencies [0a6412ca9]
- /core@6.0.0-6-next.75
- /store@6.0.0-6-next.55
- /auth@6.0.0-6-next.54
- /config@6.0.0-6-next.75
- /tarball@11.0.0-6-next.44
- /utils@6.0.0-6-next.43
- /logger@6.0.0-6-next.43
## 6.0.0-6-next.55
### Patch Changes
- /core@6.0.0-6-next.74
- /config@6.0.0-6-next.74
- /auth@6.0.0-6-next.53
- /tarball@11.0.0-6-next.43
- /store@6.0.0-6-next.54
- /utils@6.0.0-6-next.42
- /logger@6.0.0-6-next.42
## 6.0.0-6-next.54
### Patch Changes
- Updated dependencies [f859d2b1a]
- /core@6.0.0-6-next.73
- /auth@6.0.0-6-next.52
- /config@6.0.0-6-next.73
- /tarball@11.0.0-6-next.42
- /store@6.0.0-6-next.53
- /utils@6.0.0-6-next.41
- /logger@6.0.0-6-next.41
## 6.0.0-6-next.53
### Patch Changes
- 702d5c497: Fix the password validation logic for the `/reset_password` route to ensure that the password is only reset if it is valid.
- /core@6.0.0-6-next.72
- /config@6.0.0-6-next.72
- /auth@6.0.0-6-next.51
- /tarball@11.0.0-6-next.41
- /store@6.0.0-6-next.52
- /utils@6.0.0-6-next.40
- /logger@6.0.0-6-next.40
## 6.0.0-6-next.52
### Patch Changes
- Updated dependencies [679c19c1b]
- /config@6.0.0-6-next.71
- /auth@6.0.0-6-next.50
- /store@6.0.0-6-next.51
- /logger@6.0.0-6-next.39
- /core@6.0.0-6-next.71
- /tarball@11.0.0-6-next.40
- /utils@6.0.0-6-next.39
## 6.0.0-6-next.51
### Patch Changes
- /logger@6.0.0-6-next.38
- /auth@6.0.0-6-next.49
- /store@6.0.0-6-next.50
- /core@6.0.0-6-next.70
- /config@6.0.0-6-next.70
- /tarball@11.0.0-6-next.39
- /utils@6.0.0-6-next.38
## 6.0.0-6-next.50
### Patch Changes
- Updated dependencies [c9d1af0e]
- /auth@6.0.0-6-next.48
- /core@6.0.0-6-next.69
- /config@6.0.0-6-next.69
- /tarball@11.0.0-6-next.38
- /store@6.0.0-6-next.49
- /utils@6.0.0-6-next.37
- /logger@6.0.0-6-next.37
## 6.0.0-6-next.49
### Patch Changes
- /auth@6.0.0-6-next.47
- /core@6.0.0-6-next.68
- /config@6.0.0-6-next.68
- /tarball@11.0.0-6-next.37
- /store@6.0.0-6-next.48
- /utils@6.0.0-6-next.36
- /logger@6.0.0-6-next.36
## 6.0.0-6-next.48
### Patch Changes
- Updated dependencies [16e38df8]
- /config@6.0.0-6-next.67
- /core@6.0.0-6-next.67
- /store@6.0.0-6-next.47
- /auth@6.0.0-6-next.46
- /tarball@11.0.0-6-next.36
- /utils@6.0.0-6-next.35
- /logger@6.0.0-6-next.35
## 6.0.0-6-next.47
### Patch Changes
- /auth@6.0.0-6-next.45
- /core@6.0.0-6-next.66
- /tarball@11.0.0-6-next.35
- /logger@6.0.0-6-next.34
- /store@6.0.0-6-next.46
- /config@6.0.0-6-next.66
- /utils@6.0.0-6-next.34
## 6.0.0-6-next.46
### Patch Changes
- Updated dependencies [a1da1130]
- /core@6.0.0-6-next.65
- /auth@6.0.0-6-next.44
- /config@6.0.0-6-next.65
- /tarball@11.0.0-6-next.34
- /store@6.0.0-6-next.45
- /utils@6.0.0-6-next.33
- /logger@6.0.0-6-next.33
## 6.0.0-6-next.45
### Patch Changes
- Updated dependencies [974cd8c1]
- /core@6.0.0-6-next.64
- /auth@6.0.0-6-next.43
- /config@6.0.0-6-next.64
- /tarball@11.0.0-6-next.33
- /store@6.0.0-6-next.44
- /utils@6.0.0-6-next.32
- /logger@6.0.0-6-next.32
## 6.0.0-6-next.44
### Patch Changes
- Updated dependencies [ddb6a223]
- Updated dependencies [dc571aab]
- /auth@6.0.0-6-next.42
- /config@6.0.0-6-next.63
- /core@6.0.0-6-next.63
- /store@6.0.0-6-next.43
- /tarball@11.0.0-6-next.32
- /utils@6.0.0-6-next.31
- /logger@6.0.0-6-next.31
## 6.0.0-6-next.43
### Patch Changes
- Updated dependencies [378e907d]
- /core@6.0.0-6-next.62
- /auth@6.0.0-6-next.41
- /tarball@11.0.0-6-next.31
- /logger@6.0.0-6-next.30
- /store@6.0.0-6-next.42
- /config@6.0.0-6-next.62
- /utils@6.0.0-6-next.30
## 6.0.0-6-next.42
### Patch Changes
- Updated dependencies [d167f92e]
- /config@6.0.0-6-next.61
- /auth@6.0.0-6-next.40
- /store@6.0.0-6-next.41
- /core@6.0.0-6-next.61
- /tarball@11.0.0-6-next.30
- /utils@6.0.0-6-next.29
- /logger@6.0.0-6-next.29
## 6.0.0-6-next.41
### Patch Changes
- Updated dependencies [45c03819]
- /config@6.0.0-6-next.60
- /store@6.0.0-6-next.40
- /auth@6.0.0-6-next.39
- /core@6.0.0-6-next.60
- /tarball@11.0.0-6-next.29
- /logger@6.0.0-6-next.28
- /utils@6.0.0-6-next.28
## 6.0.0-6-next.40
### Patch Changes
- Updated dependencies [65f88b82]
- /logger@6.0.0-6-next.27
- /auth@6.0.0-6-next.38
- /store@6.0.0-6-next.39
- /core@6.0.0-6-next.59
- /config@6.0.0-6-next.59
- /tarball@11.0.0-6-next.28
- /utils@6.0.0-6-next.27
## 6.0.0-6-next.39
### Patch Changes
- /core@6.0.0-6-next.58
- /config@6.0.0-6-next.58
- /auth@6.0.0-6-next.37
- /tarball@11.0.0-6-next.27
- /store@6.0.0-6-next.38
- /utils@6.0.0-6-next.26
- /logger@6.0.0-6-next.26
## 6.0.0-6-next.38
### Patch Changes
- /store@6.0.0-6-next.37
- /core@6.0.0-6-next.57
- /config@6.0.0-6-next.57
- /auth@6.0.0-6-next.36
- /tarball@11.0.0-6-next.26
- /logger@6.0.0-6-next.25
- /utils@6.0.0-6-next.25
## 6.0.0-6-next.37
### Patch Changes
- Updated dependencies [a1986e09]
- /utils@6.0.0-6-next.24
- /auth@6.0.0-6-next.35
- /config@6.0.0-6-next.56
- /tarball@11.0.0-6-next.25
- /store@6.0.0-6-next.36
- /core@6.0.0-6-next.56
- /logger@6.0.0-6-next.24
## 6.0.0-6-next.36
### Patch Changes
- Updated dependencies [9718e033]
- /config@6.0.0-6-next.55
- /core@6.0.0-6-next.55
- /tarball@11.0.0-6-next.24
- /store@6.0.0-6-next.35
- /utils@6.0.0-6-next.23
- /auth@6.0.0-6-next.34
- /logger@6.0.0-6-next.23
## 6.0.0-6-next.35
### Patch Changes
- Updated dependencies [ef88da3b]
- /config@6.0.0-6-next.54
- /core@6.0.0-6-next.54
- /tarball@11.0.0-6-next.23
- /logger@6.0.0-6-next.22
- /utils@6.0.0-6-next.22
- /auth@6.0.0-6-next.33
- /store@6.0.0-6-next.34
## 6.0.0-6-next.34
### Patch Changes
- /auth@6.0.0-6-next.32
- /core@6.0.0-6-next.53
- /tarball@11.0.0-6-next.22
- /logger@6.0.0-6-next.21
- /store@6.0.0-6-next.33
- /config@6.0.0-6-next.53
- /utils@6.0.0-6-next.21
## 6.0.0-6-next.33
### Patch Changes
- /core@6.0.0-6-next.52
- /config@6.0.0-6-next.52
- /auth@6.0.0-6-next.31
- /tarball@11.0.0-6-next.21
- /logger@6.0.0-6-next.20
- /store@6.0.0-6-next.32
- /utils@6.0.0-6-next.20
## 6.0.0-6-next.32
### Minor Changes
- a23628be: feat: parse and sanitize on ui
### Patch Changes
- Updated dependencies [4b29d715]
- /auth@6.0.0-6-next.30
- /config@6.0.0-6-next.51
- /core@6.0.0-6-next.51
- /store@6.0.0-6-next.31
- /tarball@11.0.0-6-next.20
- /logger@6.0.0-6-next.19
- /utils@6.0.0-6-next.19
## 6.0.0-6-next.31
### Patch Changes
- /core@6.0.0-6-next.50
- /config@6.0.0-6-next.50
- /auth@6.0.0-6-next.29
- /tarball@11.0.0-6-next.19
- /logger@6.0.0-6-next.18
- /store@6.0.0-6-next.30
- /utils@6.0.0-6-next.18
## 6.0.0-6-next.30
### Patch Changes
- Updated dependencies [ce013d2f]
- /store@6.0.0-6-next.29
- /tarball@11.0.0-6-next.18
- /core@6.0.0-6-next.49
- /config@6.0.0-6-next.49
- /auth@6.0.0-6-next.28
- /logger@6.0.0-6-next.17
- /utils@6.0.0-6-next.17
## 6.0.0-6-next.29
### Major Changes
- 9fc2e796: feat(plugins): improve plugin loader
### Changes
- Add scope plugin support to 6.x https://github.com/verdaccio/verdaccio/pull/3227
- Avoid config collisions https://github.com/verdaccio/verdaccio/issues/928
- https://github.com/verdaccio/verdaccio/issues/1394
- `config.plugins` plugin path validations
- Updated algorithm for plugin loader.
- improved documentation (included dev)
## Features
- Add scope plugin support to 6.x https://github.com/verdaccio/verdaccio/pull/3227
- Custom prefix:
```
// config.yaml
server:
pluginPrefix: mycompany
middleware:
audit:
foo: 1
```
This configuration will look up for `mycompany-audit` instead `Verdaccio-audit`.
## Breaking Changes
### sinopia plugins
- `sinopia` fallback support is removed, but can be restored using `pluginPrefix`
### plugin filter
- method rename `filter_metadata`->`filterMetadata`
### Plugin constructor does not merge configs anymore https://github.com/verdaccio/verdaccio/issues/928
The plugin receives as first argument `config`, which represents the config of the plugin. Example:
```
// config.yaml
auth:
plugin:
foo: 1
bar: 2
export class Plugin<T> {
public constructor(config: T, options: PluginOptions) {
console.log(config);
// {foo:1, bar: 2}
}
}
```
### Minor Changes
- 62c24b63: feat: add passwordValidationRegex property
### Patch Changes
- 43f32687: fix: abbreviated headers handle quality values
- Updated dependencies [43f32687]
- Updated dependencies [9fc2e796]
- Updated dependencies [62c24b63]
- /core@6.0.0-6-next.48
- /store@6.0.0-6-next.28
- /auth@6.0.0-6-next.27
- /config@6.0.0-6-next.48
- /utils@6.0.0-6-next.16
- /tarball@11.0.0-6-next.17
- /logger@6.0.0-6-next.16
- /readme@11.0.0-6-next.6
## 6.0.0-6-next.28
### Patch Changes
- /core@6.0.0-6-next.47
- /config@6.0.0-6-next.47
- /auth@6.0.0-6-next.26
- /tarball@11.0.0-6-next.16
- /logger@6.0.0-6-next.15
- /store@6.0.0-6-next.27
- /utils@6.0.0-6-next.15
## 6.0.0-6-next.27
### Patch Changes
- Updated dependencies [b849128d]
- /core@6.0.0-6-next.8
- /store@6.0.0-6-next.26
- /auth@6.0.0-6-next.25
- /config@6.0.0-6-next.17
- /tarball@11.0.0-6-next.15
- /logger@6.0.0-6-next.14
- /utils@6.0.0-6-next.14
- /readme@11.0.0-6-next.6
## 6.0.0-6-next.26
### Patch Changes
- 351aeeaa: fix(deps): /utils should be a prod dep of local-storage
- Updated dependencies [351aeeaa]
- /auth@6.0.0-6-next.24
- /core@6.0.0-6-next.7
- /readme@11.0.0-6-next.6
- /tarball@11.0.0-6-next.14
- /logger@6.0.0-6-next.13
- /store@6.0.0-6-next.25
- /config@6.0.0-6-next.16
- /utils@6.0.0-6-next.13
## 6.0.0-6-next.25
### Minor Changes
- 37274e4c: feat: implement abbreviated manifest
Enable abbreviated manifest data by adding the header:
```
curl -H "Accept: application/vnd.npm.install-v1+json" https://registry.npmjs.org/verdaccio
```
It returns a filtered manifest, additionally includes the [time](https://github.com/pnpm/rfcs/pull/2) field by request.
Current support for packages managers:
- npm: yes
- pnpm: yes
- yarn classic: yes
- yarn modern (+2.x): [no](https://github.com/yarnpkg/berry/pull/3981#issuecomment-1076566096)
https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md#abbreviated-metadata-format
### Patch Changes
- Updated dependencies [37274e4c]
- /store@6.0.0-6-next.24
- /auth@6.0.0-6-next.23
- /core@6.0.0-6-next.6
- /readme@11.0.0-6-next.5
- /tarball@11.0.0-6-next.13
- /logger@6.0.0-6-next.12
## 6.0.0-6-next.24
### Minor Changes
- 00d1d2a1: chore: env variable for launch fastify
- Update fastify to major release `v4.3.0`
- Update CLI launcher
via CLI
```
VERDACCIO_SERVER=fastify verdaccio
```
with docker
```
docker run -it --rm --name verdaccio \
-e "VERDACCIO_SERVER=8080" -p 8080:8080 \
-e "VERDACCIO_SERVER=fastify" \
verdaccio/verdaccio
```
### Patch Changes
- Updated dependencies [292c0a37]
- Updated dependencies [a3a209b5]
- Updated dependencies [00d1d2a1]
- /auth@6.0.0-6-next.23
- /config@6.0.0-6-next.15
- /core@6.0.0-6-next.6
- /readme@11.0.0-6-next.5
- /tarball@11.0.0-6-next.13
- /logger@6.0.0-6-next.12
- /store@6.0.0-6-next.23
- /utils@6.0.0-6-next.12
## 6.0.0-6-next.23
### Patch Changes
- Updated dependencies [d43894e8]
- Updated dependencies [d08fe29d]
- /config@6.0.0-6-next.14
- /auth@6.0.0-6-next.22
- /store@6.0.0-6-next.22
- /core@6.0.0-6-next.5
- /readme@11.0.0-6-next.4
- /tarball@11.0.0-6-next.12
- /logger@6.0.0-6-next.11
## 6.0.0-6-next.22
### Patch Changes
- Updated dependencies [82cb0f2b]
- Updated dependencies [5167bb52]
- /config@6.0.0-6-next.13
- /core@6.0.0-6-next.5
- /logger@6.0.0-6-next.11
- /store@6.0.0-6-next.21
- /auth@6.0.0-6-next.21
- /tarball@11.0.0-6-next.12
- /utils@6.0.0-6-next.11
- /readme@11.0.0-6-next.4
## 6.0.0-6-next.21
### Patch Changes
- /auth@6.0.0-6-next.20
- /store@6.0.0-6-next.20
## 6.0.0-6-next.20
### Patch Changes
- Updated dependencies [aeff267d]
- /auth@6.0.0-6-next.19
## 6.0.0-6-next.19
### Patch Changes
- Updated dependencies [b78f3525]
- /logger@6.0.0-6-next.10
- /auth@6.0.0-6-next.18
- /store@6.0.0-6-next.19
## 6.0.0-6-next.18
### Patch Changes
- Updated dependencies [730b5d8c]
- /logger@6.0.0-6-next.9
- /auth@6.0.0-6-next.17
- /store@6.0.0-6-next.18
## 6.0.0-6-next.17
### Major Changes
- a828271d: refactor: download manifest endpoint and integrate fastify
Much simpler API for fetching a package
```
const manifest = await storage.getPackageNext({
name,
uplinksLook: true,
req,
version: queryVersion,
requestOptions,
});
```
> not perfect, the `req` still is being passed to the proxy (this has to be refactored at proxy package) and then removed from here, in proxy we pass the request instance to the `request` library.
### Details
- `async/await` sugar for getPackage()
- Improve and reuse code between current implementation and new fastify endpoint (add scaffolding for request manifest)
- Improve performance
- Add new tests
### Breaking changes
All storage plugins will stop to work since the storage uses `getPackageNext` method which is Promise based, I won't replace this now because will force me to update all plugins, I'll follow up in another PR. Currently will throw http 500
### Patch Changes
- Updated dependencies [a828271d]
- Updated dependencies [24b9be02]
- Updated dependencies [e75c0a3b]
- Updated dependencies [b13a3fef]
- /tarball@11.0.0-6-next.11
- /store@6.0.0-6-next.17
- /utils@6.0.0-6-next.10
- /core@6.0.0-6-next.4
- /logger@6.0.0-6-next.8
- /auth@6.0.0-6-next.16
- /config@6.0.0-6-next.12
- /readme@11.0.0-6-next.4
## 6.0.0-6-next.16
### Minor Changes
- f86c31ed: feat: migrate web sidebar endpoint to fastify
reuse utils methods between packages
- 20c9e43e: dist tags Implementation on Fastify
### Patch Changes
- Updated dependencies [f86c31ed]
- Updated dependencies [20c9e43e]
- /store@6.0.0-6-next.16
- /utils@6.0.0-6-next.9
- /auth@6.0.0-6-next.15
- /config@6.0.0-6-next.11
- /tarball@11.0.0-6-next.10
## 6.0.0-6-next.15
### Patch Changes
- Updated dependencies [6c1eb021]
- /core@6.0.0-6-next.3
- /logger@6.0.0-6-next.7
- /auth@6.0.0-6-next.14
- /config@6.0.0-6-next.10
- /tarball@11.0.0-6-next.9
- /store@6.0.0-6-next.15
- /utils@6.0.0-6-next.8
## 6.0.0-6-next.14
### Major Changes
- 794af76c: Remove Node 12 support
- We need move to the new `undici` and does not support Node.js 12
### Minor Changes
- b702ea36: abort search request support for proxy
- 154b2ecd: refactor: remove /commons-api in favor /core and remove duplications
### Patch Changes
- Updated dependencies [794af76c]
- Updated dependencies [b702ea36]
- Updated dependencies [154b2ecd]
- /auth@6.0.0-6-next.13
- /config@6.0.0-6-next.9
- /logger@6.0.0-6-next.6
- /store@6.0.0-6-next.14
## 6.0.0-6-next.13
### Patch Changes
- Updated dependencies [2c594910]
- /logger@6.0.0-6-next.5
- /auth@6.0.0-6-next.12
- /store@6.0.0-6-next.13
## 6.0.0-6-next.12
### Major Changes
- 459b6fa7: refactor: search v1 endpoint and local-database
- refactor search `api v1` endpoint, improve performance
- remove usage of `async` dependency https://github.com/verdaccio/verdaccio/issues/1225
- refactor method storage class
- create new module `core` to reduce the ammount of modules with utilities
- use `undici` instead `node-fetch`
- use `fastify` instead `express` for functional test
### Breaking changes
- plugin storage API changes
- remove old search endpoint (return 404)
- filter local private packages at plugin level
The storage api changes for methods `get`, `add`, `remove` as promise base. The `search` methods also changes and recieves a `query` object that contains all query params from the client.
```ts
export interface IPluginStorage<T> extends IPlugin {
add(name: string): Promise<void>;
remove(name: string): Promise<void>;
get(): Promise<any>;
init(): Promise<void>;
getSecret(): Promise<string>;
setSecret(secret: string): Promise<any>;
getPackageStorage(packageInfo: string): IPackageStorage;
search(query: searchUtils.SearchQuery): Promise<searchUtils.SearchItem[]>;
saveToken(token: Token): Promise<any>;
deleteToken(user: string, tokenKey: string): Promise<any>;
readTokens(filter: TokenFilter): Promise<Token[]>;
}
```
### Patch Changes
- Updated dependencies [459b6fa7]
- /auth@6.0.0-6-next.11
- /config@6.0.0-6-next.8
- /store@6.0.0-6-next.12
- /logger@6.0.0-6-next.4
## 6.0.0-6-next.11
### Patch Changes
- df0da3d6: Added core-js missing from dependencies though referenced in .js sources
- /auth@6.0.0-6-next.10
- /store@6.0.0-6-next.11
## 6.0.0-6-next.10
### Minor Changes
- 55ee3fdd: [Fastify] Add ping endpoint