@verdaccio/config 6.0.0-6-next.75 → 7.0.0-next.0

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +376 -0
  2. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,381 @@
1
1
  # @verdaccio/config
2
2
 
3
+ ## 7.0.0-next.0
4
+
5
+ ### Major Changes
6
+
7
+ - feat!: bump to v7
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @verdaccio/core@7.0.0-next.0
13
+ - @verdaccio/utils@7.0.0-next.0
14
+
15
+ ## 6.0.0
16
+
17
+ ### Major Changes
18
+
19
+ - 292c0a37f: feat!: replace deprecated request dependency by got
20
+
21
+ This is a big refactoring of the core, fetching dependencies, improve code, more tests and better stability. This is essential for the next release, will take some time but would allow modularize more the core.
22
+
23
+ ## Notes
24
+
25
+ - Remove deprecated `request` by other `got`, retry improved, custom Agent ( got does not include it built-in)
26
+ - Remove `async` dependency from storage (used by core) it was linked with proxy somehow safe to remove now
27
+ - Refactor with promises instead callback wherever is possible
28
+ - ~Document the API~
29
+ - Improve testing, integration tests
30
+ - Bugfix
31
+ - Clean up old validations
32
+ - Improve performance
33
+
34
+ ## 💥 Breaking changes
35
+
36
+ - Plugin API methods were callbacks based are returning promises, this will break current storage plugins, check documentation for upgrade.
37
+ - Write Tarball, Read Tarball methods parameters change, a new set of options like `AbortController` signals are being provided to the `addAbortSignal` can be internally used with Streams when a request is aborted. eg: `addAbortSignal(signal, fs.createReadStream(pathName));`
38
+ - `@verdaccio/streams` stream abort support is legacy is being deprecated removed
39
+ - Remove AWS and Google Cloud packages for future refactoring [#2574](https://github.com/verdaccio/verdaccio/pull/2574).
40
+
41
+ - 459b6fa72: refactor: search v1 endpoint and local-database
42
+
43
+ - refactor search `api v1` endpoint, improve performance
44
+ - remove usage of `async` dependency https://github.com/verdaccio/verdaccio/issues/1225
45
+ - refactor method storage class
46
+ - create new module `core` to reduce the ammount of modules with utilities
47
+ - use `undici` instead `node-fetch`
48
+ - use `fastify` instead `express` for functional test
49
+
50
+ ### Breaking changes
51
+
52
+ - plugin storage API changes
53
+ - remove old search endpoint (return 404)
54
+ - filter local private packages at plugin level
55
+
56
+ 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.
57
+
58
+ ```ts
59
+ export interface IPluginStorage<T> extends IPlugin {
60
+ add(name: string): Promise<void>;
61
+ remove(name: string): Promise<void>;
62
+ get(): Promise<any>;
63
+ init(): Promise<void>;
64
+ getSecret(): Promise<string>;
65
+ setSecret(secret: string): Promise<any>;
66
+ getPackageStorage(packageInfo: string): IPackageStorage;
67
+ search(query: searchUtils.SearchQuery): Promise<searchUtils.SearchItem[]>;
68
+ saveToken(token: Token): Promise<any>;
69
+ deleteToken(user: string, tokenKey: string): Promise<any>;
70
+ readTokens(filter: TokenFilter): Promise<Token[]>;
71
+ }
72
+ ```
73
+
74
+ - 9fc2e7961: feat(plugins): improve plugin loader
75
+
76
+ ### Changes
77
+
78
+ - Add scope plugin support to 6.x https://github.com/verdaccio/verdaccio/pull/3227
79
+ - Avoid config collisions https://github.com/verdaccio/verdaccio/issues/928
80
+ - https://github.com/verdaccio/verdaccio/issues/1394
81
+ - `config.plugins` plugin path validations
82
+ - Updated algorithm for plugin loader.
83
+ - improved documentation (included dev)
84
+
85
+ ## Features
86
+
87
+ - Add scope plugin support to 6.x https://github.com/verdaccio/verdaccio/pull/3227
88
+ - Custom prefix:
89
+
90
+ ```
91
+ // config.yaml
92
+ server:
93
+ pluginPrefix: mycompany
94
+ middleware:
95
+ audit:
96
+ foo: 1
97
+ ```
98
+
99
+ This configuration will look up for `mycompany-audit` instead `Verdaccio-audit`.
100
+
101
+ ## Breaking Changes
102
+
103
+ ### sinopia plugins
104
+
105
+ - `sinopia` fallback support is removed, but can be restored using `pluginPrefix`
106
+
107
+ ### plugin filter
108
+
109
+ - method rename `filter_metadata`->`filterMetadata`
110
+
111
+ ### Plugin constructor does not merge configs anymore https://github.com/verdaccio/verdaccio/issues/928
112
+
113
+ The plugin receives as first argument `config`, which represents the config of the plugin. Example:
114
+
115
+ ```
116
+ // config.yaml
117
+ auth:
118
+ plugin:
119
+ foo: 1
120
+ bar: 2
121
+
122
+ export class Plugin<T> {
123
+ public constructor(config: T, options: PluginOptions) {
124
+ console.log(config);
125
+ // {foo:1, bar: 2}
126
+ }
127
+ }
128
+ ```
129
+
130
+ - 794af76c5: Remove Node 12 support
131
+
132
+ - We need move to the new `undici` and does not support Node.js 12
133
+
134
+ - 10aeb4f13: feat!: experiments config renamed to flags
135
+
136
+ - The `experiments` configuration is renamed to `flags`. The functionality is exactly the same.
137
+
138
+ ```js
139
+ flags: token: false;
140
+ search: false;
141
+ ```
142
+
143
+ - The `self_path` property from the config file is being removed in favor of `config_file` full path.
144
+ - Refactor `config` module, better types and utilities
145
+
146
+ - e367c3f1e: - Replace signature handler for legacy tokens by removing deprecated crypto.createDecipher by createCipheriv
147
+
148
+ - Introduce environment variables for legacy tokens
149
+
150
+ ### Code Improvements
151
+
152
+ - Add debug library for improve developer experience
153
+
154
+ ### Breaking change
155
+
156
+ - The new signature invalidates all previous tokens generated by Verdaccio 4 or previous versions.
157
+ - The secret key must have 32 characters long.
158
+
159
+ ### New environment variables
160
+
161
+ - `VERDACCIO_LEGACY_ALGORITHM`: Allows to define the specific algorithm for the token signature which by default is `aes-256-ctr`
162
+ - `VERDACCIO_LEGACY_ENCRYPTION_KEY`: By default, the token stores in the database, but using this variable allows to get it from memory
163
+
164
+ - 82cb0f2bf: feat!: config.logs throw an error, logging config not longer accept array or logs property
165
+
166
+ ### 💥 Breaking change
167
+
168
+ This is valid
169
+
170
+ ```yaml
171
+ log: { type: stdout, format: pretty, level: http }
172
+ ```
173
+
174
+ This is invalid
175
+
176
+ ```yaml
177
+ logs: { type: stdout, format: pretty, level: http }
178
+ ```
179
+
180
+ or
181
+
182
+ ```yaml
183
+ logs:
184
+ - [{ type: stdout, format: pretty, level: http }]
185
+ ```
186
+
187
+ - 8f43bf17d: feat: node api new structure based on promise
188
+
189
+ ```js
190
+ import { runServer } from '@verdaccio/node-api';
191
+ // or
192
+ import { runServer } from 'verdaccio';
193
+
194
+ const app = await runServer(); // default configuration
195
+ const app = await runServer('./config/config.yaml');
196
+ const app = await runServer({ configuration });
197
+ app.listen(4000, (event) => {
198
+ // do something
199
+ });
200
+ ```
201
+
202
+ ### Breaking Change
203
+
204
+ If you are using the node-api, the new structure is Promise based and less arguments.
205
+
206
+ ### Minor Changes
207
+
208
+ - ef88da3b4: feat: improve support for fs promises older nodejs
209
+ - 1b217fd34: Some verdaccio modules depend on 'mkdirp' library which provides recursive directory creation functionality.
210
+ NodeJS can do this out of the box since v.10.12. The last commit in 'mkdirp' was made in early 2016, and it's mid 2021 now.
211
+ Time to stick with a built-in library solution!
212
+
213
+ - All 'mkdirp' calls are replaced with appropriate 'fs' calls.
214
+
215
+ - d167f92e1: chore: rollback yaml dep support old nodejs versions
216
+ - ddb6a2239: feat: signature package
217
+ - b61f762d6: feat: add server rate limit protection to all request
218
+
219
+ To modify custom values, use the server settings property.
220
+
221
+ ```markdown
222
+ server:
223
+
224
+ ## https://www.npmjs.com/package/express-rate-limit#configuration-options
225
+
226
+ rateLimit:
227
+ windowMs: 1000
228
+ max: 10000
229
+ ```
230
+
231
+ The values are intended to be high, if you want to improve security of your server consider
232
+ using different values.
233
+
234
+ - d43894e8f: feat: rework web header for mobile, add new settings and raw manifest button
235
+
236
+ ### New set of variables to hide features
237
+
238
+ Add set of new variables that allow hide different parts of the UI, buttons, footer or download tarballs. _All are
239
+ enabled by default_.
240
+
241
+ ```yaml
242
+ # login: true <-- already exist but worth the reminder
243
+ # showInfo: true
244
+ # showSettings: true
245
+ # In combination with darkMode you can force specific theme
246
+ # showThemeSwitch: true
247
+ # showFooter: true
248
+ # showSearch: true
249
+ # showDownloadTarball: true
250
+ ```
251
+
252
+ > If you disable `showThemeSwitch` and force `darkMode: true` the local storage settings would be
253
+ > ignored and force all themes to the one in the configuration file.
254
+
255
+ Future could be extended to
256
+
257
+ ### Raw button to display manifest package
258
+
259
+ A new experimental feature (enabled by default), button named RAW to be able navigate on the package manifest directly on the ui, kudos to [react-json-view](https://www.npmjs.com/package/react-json-view) that allows an easy integration, not configurable yet until get more feedback.
260
+
261
+ ```yaml
262
+ showRaw: true
263
+ ```
264
+
265
+ #### Rework header buttons
266
+
267
+ - The header has been rework, the mobile was not looking broken.
268
+ - Removed info button in the header and moved to a dialog
269
+ - Info dialog now contains more information about the project, license and the aid content for Ukrania now is inside of the info modal.
270
+ - Separate settings and info to avoid collapse too much info (for mobile still need some work)
271
+
272
+ - 154b2ecd3: refactor: remove @verdaccio/commons-api in favor @verdaccio/core and remove duplications
273
+ - aa763baec: feat: add typescript project references settings
274
+
275
+ Reading https://ebaytech.berlin/optimizing-multi-package-apps-with-typescript-project-references-d5c57a3b4440 I realized I can use project references to solve the issue to pre-compile modules on develop mode.
276
+
277
+ It allows to navigate (IDE) trough the packages without need compile the packages.
278
+
279
+ Add two `tsconfig`, one using the previous existing configuration that is able to produce declaration files (`tsconfig.build`) and a new one `tsconfig` which is enables [_projects references_](https://www.typescriptlang.org/docs/handbook/project-references.html).
280
+
281
+ - 16e38df8a: feat: trustProxy property
282
+ - dc571aabd: feat: add forceEnhancedLegacySignature
283
+ - 62c24b632: feat: add passwordValidationRegex property
284
+ - d08fe29d9: feat(web): add a config item to web,let the developer can select whet……her enable the html cache
285
+ - 5167bb528: feat: ui search support for remote, local and private packages
286
+
287
+ The command `npm search` search globally and return all matches, with this improvement the user interface
288
+ is powered with the same capabilities.
289
+
290
+ The UI also tag where is the origin the package with a tag, also provide the latest version and description of the package.
291
+
292
+ - 4b29d715b: chore: move improvements from v5 to v6
293
+
294
+ Migrate improvements form v5 to v6:
295
+
296
+ - https://github.com/verdaccio/verdaccio/pull/3158
297
+ - https://github.com/verdaccio/verdaccio/pull/3151
298
+ - https://github.com/verdaccio/verdaccio/pull/2271
299
+ - https://github.com/verdaccio/verdaccio/pull/2787
300
+ - https://github.com/verdaccio/verdaccio/pull/2791
301
+ - https://github.com/verdaccio/verdaccio/pull/2205
302
+
303
+ - 45c03819e: refactor: render html middleware
304
+
305
+ ### Patch Changes
306
+
307
+ - 679c19c1b: Respect the `changePassword` configuration flag to enable changing the password through the web API.
308
+
309
+ > **Note**
310
+ > This feature is still experimental and not fully supported in the default web application.
311
+
312
+ - 9718e0330: fix: build targets for 5x modules
313
+ - 1810ed0d8: Feature
314
+
315
+ - add option to set storage from environment variable VERDACCIO_STORAGE_PATH
316
+
317
+ #### Related tickets
318
+
319
+ https://github.com/verdaccio/verdaccio/issues/1681
320
+
321
+ - a610ef26b: chore: add release step to private regisry on merge changeset pr
322
+ - 34f0f1101: Enable prerelease mode with **changesets**
323
+ - 68ea21214: ESLint Warnings Fixed
324
+
325
+ Related to issue #1461
326
+
327
+ - max-len: most of the sensible max-len errors are fixed
328
+ - no-unused-vars: most of these types of errors are fixed by deleting not needed declarations
329
+ - @typescript-eslint/no-unused-vars: same as above
330
+
331
+ - Updated dependencies [292c0a37f]
332
+ - Updated dependencies [a1986e098]
333
+ - Updated dependencies [974cd8c19]
334
+ - Updated dependencies [a828271d6]
335
+ - Updated dependencies [ef88da3b4]
336
+ - Updated dependencies [43f32687c]
337
+ - Updated dependencies [a3a209b5e]
338
+ - Updated dependencies [459b6fa72]
339
+ - Updated dependencies [24b9be020]
340
+ - Updated dependencies [794af76c5]
341
+ - Updated dependencies [351aeeaa8]
342
+ - Updated dependencies [10aeb4f13]
343
+ - Updated dependencies [9718e0330]
344
+ - Updated dependencies [e367c3f1e]
345
+ - Updated dependencies [a1da11308]
346
+ - Updated dependencies [d2c65da9c]
347
+ - Updated dependencies [00d1d2a17]
348
+ - Updated dependencies [a610ef26b]
349
+ - Updated dependencies [648575aa4]
350
+ - Updated dependencies [b61f762d6]
351
+ - Updated dependencies [154b2ecd3]
352
+ - Updated dependencies [aa763baec]
353
+ - Updated dependencies [378e907d5]
354
+ - Updated dependencies [16e38df8a]
355
+ - Updated dependencies [34f0f1101]
356
+ - Updated dependencies [82cb0f2bf]
357
+ - Updated dependencies [dc571aabd]
358
+ - Updated dependencies [f859d2b1a]
359
+ - Updated dependencies [6c1eb021b]
360
+ - Updated dependencies [62c24b632]
361
+ - Updated dependencies [0a6412ca9]
362
+ - Updated dependencies [5167bb528]
363
+ - Updated dependencies [f86c31ed0]
364
+ - Updated dependencies [c9d1af0e5]
365
+ - Updated dependencies [4b29d715b]
366
+ - Updated dependencies [b13a3fefd]
367
+ - Updated dependencies [68ea21214]
368
+ - Updated dependencies [b849128de]
369
+ - @verdaccio/core@6.0.0
370
+ - @verdaccio/utils@6.0.0
371
+
372
+ ## 6.0.0-6-next.76
373
+
374
+ ### Patch Changes
375
+
376
+ - @verdaccio/core@6.0.0-6-next.76
377
+ - @verdaccio/utils@6.0.0-6-next.44
378
+
3
379
  ## 6.0.0-6-next.75
4
380
 
5
381
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/config",
3
- "version": "6.0.0-6-next.75",
3
+ "version": "7.0.0-next.0",
4
4
  "description": "logger",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -29,8 +29,8 @@
29
29
  "node": ">=12"
30
30
  },
31
31
  "dependencies": {
32
- "@verdaccio/core": "6.0.0-6-next.75",
33
- "@verdaccio/utils": "6.0.0-6-next.43",
32
+ "@verdaccio/core": "7.0.0-next.0",
33
+ "@verdaccio/utils": "7.0.0-next.0",
34
34
  "debug": "4.3.4",
35
35
  "js-yaml": "4.1.0",
36
36
  "lodash": "4.17.21",