verdaccio 5.11.0 → 5.12.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [5.12.0](https://github.com/verdaccio/verdaccio/compare/v5.11.0...v5.12.0) (2022-06-14)
6
+
7
+
8
+ ### Features
9
+
10
+ * add scope support loading plugins ([#3227](https://github.com/verdaccio/verdaccio/issues/3227)) ([5c50ec9](https://github.com/verdaccio/verdaccio/commit/5c50ec9a2ced21c06ce690bb45af2019a514149d))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **deps:** update dependency @verdaccio/local-storage to v10.3.0 ([#3223](https://github.com/verdaccio/verdaccio/issues/3223)) ([2b8ac7a](https://github.com/verdaccio/verdaccio/commit/2b8ac7a1aca0c898edad89ea8e3dbb5c33ee8134))
16
+ * **deps:** update dependency async to v3.2.4 ([#3224](https://github.com/verdaccio/verdaccio/issues/3224)) ([c486af2](https://github.com/verdaccio/verdaccio/commit/c486af23eaa583f4c5042f51769f363731bd6f84))
17
+ * **deps:** update dependency dayjs to v1.11.3 ([#3225](https://github.com/verdaccio/verdaccio/issues/3225)) ([325e536](https://github.com/verdaccio/verdaccio/commit/325e536f0323f6c1b17de594afe1fce5d6368624))
18
+ * **deps:** update dependency lru-cache to v7.10.1 ([#3182](https://github.com/verdaccio/verdaccio/issues/3182)) ([7bc60ff](https://github.com/verdaccio/verdaccio/commit/7bc60ffca8109adbdea2462370b7c553129dcdcb))
19
+ * **deps:** update dependency marked to v4.0.17 ([#3226](https://github.com/verdaccio/verdaccio/issues/3226)) ([9d9c086](https://github.com/verdaccio/verdaccio/commit/9d9c086ba36fca787eb97fe70cf6c7eea9128c3c))
20
+ * **deps:** update dependency minimatch to v5.1.0 ([#3183](https://github.com/verdaccio/verdaccio/issues/3183)) ([e5dbd9b](https://github.com/verdaccio/verdaccio/commit/e5dbd9bbd1306ef5856717eb440ba8694c6e81e4))
21
+ * **deps:** update dependency verdaccio-htpasswd to v10.3.1 ([#3220](https://github.com/verdaccio/verdaccio/issues/3220)) ([25a2825](https://github.com/verdaccio/verdaccio/commit/25a2825f8b98d8563ad850e354941fb65a4024af))
22
+
5
23
  ## [5.11.0](https://github.com/verdaccio/verdaccio/compare/v5.10.3...v5.11.0) (2022-06-02)
6
24
 
7
25
 
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = loadPlugin;
7
7
 
8
+ var _debug = _interopRequireDefault(require("debug"));
9
+
8
10
  var _lodash = _interopRequireDefault(require("lodash"));
9
11
 
10
12
  var _path = _interopRequireDefault(require("path"));
@@ -15,19 +17,27 @@ var _logger = require("./logger");
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
20
+ const debug = (0, _debug.default)('verdaccio:plugin:loader');
18
21
  /**
19
22
  * Requires a module.
20
23
  * @param {*} path the module's path
21
24
  * @return {Object}
22
25
  */
26
+
23
27
  function tryLoad(path) {
24
28
  try {
29
+ debug('loading plugin %s', path);
25
30
  return require(path);
26
31
  } catch (err) {
27
32
  if (err.code === _constants.MODULE_NOT_FOUND) {
33
+ debug('plugin %s not found', path);
28
34
  return null;
29
35
  }
30
36
 
37
+ _logger.logger.error({
38
+ err: err.msg
39
+ }, 'error loading plugin @{err}');
40
+
31
41
  throw err;
32
42
  }
33
43
  }
@@ -47,6 +57,7 @@ function isES6(plugin) {
47
57
  /**
48
58
  * Load a plugin following the rules
49
59
  * - First try to load from the internal directory plugins (which will disappear soon or later).
60
+ * - If the package is scoped eg: @scope/foo, try to load as a package
50
61
  * - A second attempt from the external plugin directory
51
62
  * - A third attempt from node_modules, in case to have multiple match as for instance verdaccio-ldap
52
63
  * and sinopia-ldap. All verdaccio prefix will have preferences.
@@ -61,6 +72,12 @@ function isES6(plugin) {
61
72
  function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'verdaccio') {
62
73
  return Object.keys(pluginConfigs).map(pluginId => {
63
74
  let plugin;
75
+ const isScoped = pluginId.startsWith('@') && pluginId.includes('/');
76
+ debug('isScoped %s', isScoped);
77
+
78
+ if (isScoped) {
79
+ plugin = tryLoad(pluginId);
80
+ }
64
81
 
65
82
  const localPlugin = _path.default.resolve(__dirname + '/../plugins', pluginId); // try local plugins first
66
83
 
@@ -79,6 +96,12 @@ function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'v
79
96
 
80
97
  if (!plugin) {
81
98
  plugin = tryLoad(_path.default.resolve(pluginDir, `sinopia-${pluginId}`));
99
+
100
+ if (plugin) {
101
+ _logger.logger.warn({
102
+ name: pluginId
103
+ }, `plugin names that start with sinopia-* will be removed in the future, please rename package to verdaccio-*`);
104
+ }
82
105
  }
83
106
  }
84
107
  } // npm package
@@ -90,6 +113,10 @@ function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'v
90
113
  if (!plugin) {
91
114
  plugin = tryLoad(`sinopia-${pluginId}`);
92
115
  }
116
+
117
+ if (plugin) {
118
+ debug('plugin %s is an npm package', pluginId);
119
+ }
93
120
  }
94
121
 
95
122
  if (plugin === null) {
@@ -102,13 +129,21 @@ function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'v
102
129
  }
103
130
 
104
131
  if (plugin === null) {
105
- _logger.logger.error({
106
- content: pluginId,
107
- prefix
108
- }, 'plugin not found. try npm install @{prefix}-@{content}');
132
+ if (isScoped) {
133
+ _logger.logger.error({
134
+ content: pluginId
135
+ }, 'plugin not found. try npm install @{content}');
136
+ } else {
137
+ _logger.logger.error({
138
+ content: pluginId,
139
+ prefix
140
+ }, 'plugin not found. try npm install @{prefix}-@{content}');
141
+ }
109
142
 
110
- throw Error(`
111
- ${prefix}-${pluginId} plugin not found. try "npm install ${prefix}-${pluginId}"`);
143
+ const msg = isScoped ? `
144
+ ${pluginId} plugin not found. try "npm install ${pluginId}"` : `
145
+ ${prefix}-${pluginId} plugin not found. try "npm install ${prefix}-${pluginId}"`;
146
+ throw Error(msg);
112
147
  }
113
148
 
114
149
  if (!isValid(plugin)) {
@@ -122,7 +157,13 @@ function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'v
122
157
 
123
158
 
124
159
  try {
125
- plugin = isES6(plugin) ? new plugin.default(mergeConfig(config, pluginConfigs[pluginId]), params) : plugin(pluginConfigs[pluginId], params);
160
+ if (isES6(plugin)) {
161
+ debug('plugin is ES6');
162
+ plugin = new plugin.default(mergeConfig(config, pluginConfigs[pluginId]), params);
163
+ } else {
164
+ debug('plugin is commonJS');
165
+ plugin = plugin(pluginConfigs[pluginId], params);
166
+ }
126
167
  } catch (error) {
127
168
  plugin = null;
128
169
 
@@ -135,20 +176,32 @@ function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'v
135
176
 
136
177
 
137
178
  if (plugin === null || !sanityCheck(plugin)) {
138
- _logger.logger.error({
139
- content: pluginId,
140
- prefix
141
- }, "@{prefix}-@{content} doesn't look like a valid plugin");
179
+ if (isScoped) {
180
+ _logger.logger.error({
181
+ content: pluginId
182
+ }, "@{content} doesn't look like a valid plugin");
183
+ } else {
184
+ _logger.logger.error({
185
+ content: pluginId,
186
+ prefix
187
+ }, "@{prefix}-@{content} doesn't look like a valid plugin");
188
+ }
142
189
 
143
190
  throw Error(`sanity check has failed, "${pluginId}" is not a valid plugin`);
144
191
  }
145
192
 
146
- _logger.logger.warn({
147
- content: pluginId,
148
- prefix
149
- }, 'Plugin successfully loaded: @{prefix}-@{content}');
193
+ if (isScoped) {
194
+ _logger.logger.info({
195
+ content: pluginId
196
+ }, 'plugin successfully loaded: @{content}');
197
+ } else {
198
+ _logger.logger.info({
199
+ content: pluginId,
200
+ prefix
201
+ }, 'plugin successfully loaded: @{prefix}-@{content}');
202
+ }
150
203
 
151
204
  return plugin;
152
205
  });
153
206
  }
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0cnlMb2FkIiwicGF0aCIsInJlcXVpcmUiLCJlcnIiLCJjb2RlIiwiTU9EVUxFX05PVF9GT1VORCIsIm1lcmdlQ29uZmlnIiwiYXBwQ29uZmlnIiwicGx1Z2luQ29uZmlnIiwiXyIsIm1lcmdlIiwiaXNWYWxpZCIsInBsdWdpbiIsImlzRnVuY3Rpb24iLCJkZWZhdWx0IiwiaXNFUzYiLCJPYmplY3QiLCJrZXlzIiwiaW5jbHVkZXMiLCJsb2FkUGx1Z2luIiwiY29uZmlnIiwicGx1Z2luQ29uZmlncyIsInBhcmFtcyIsInNhbml0eUNoZWNrIiwicHJlZml4IiwibWFwIiwicGx1Z2luSWQiLCJsb2NhbFBsdWdpbiIsIlBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwicGx1Z2lucyIsInBsdWdpbkRpciIsImV4dGVybmFsRmlsZVBsdWdpbiIsIm1hdGNoIiwiZGlybmFtZSIsInNlbGZfcGF0aCIsImxvZ2dlciIsImVycm9yIiwiY29udGVudCIsIkVycm9yIiwid2FybiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGx1Z2luLWxvYWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IENvbmZpZywgSVBsdWdpbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBNT0RVTEVfTk9UX0ZPVU5EIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuXG4vKipcbiAqIFJlcXVpcmVzIGEgbW9kdWxlLlxuICogQHBhcmFtIHsqfSBwYXRoIHRoZSBtb2R1bGUncyBwYXRoXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHRyeUxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVxdWlyZShwYXRoKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVyci5jb2RlID09PSBNT0RVTEVfTk9UX0ZPVU5EKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlQ29uZmlnKGFwcENvbmZpZywgcGx1Z2luQ29uZmlnKTogQ29uZmlnIHtcbiAgcmV0dXJuIF8ubWVyZ2UoYXBwQ29uZmlnLCBwbHVnaW5Db25maWcpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkKHBsdWdpbik6IGJvb2xlYW4ge1xuICByZXR1cm4gXy5pc0Z1bmN0aW9uKHBsdWdpbikgfHwgXy5pc0Z1bmN0aW9uKHBsdWdpbi5kZWZhdWx0KTtcbn1cblxuZnVuY3Rpb24gaXNFUzYocGx1Z2luKTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwbHVnaW4pLmluY2x1ZGVzKCdkZWZhdWx0Jyk7XG59XG5cbi8vIGV4cG9ydCB0eXBlIFBsdWdpbkdlbmVyaWM8UiwgVCBleHRlbmRzIElQbHVnaW48Uj4gPSA7XG5cbi8qKlxuICogTG9hZCBhIHBsdWdpbiBmb2xsb3dpbmcgdGhlIHJ1bGVzXG4gKiAtIEZpcnN0IHRyeSB0byBsb2FkIGZyb20gdGhlIGludGVybmFsIGRpcmVjdG9yeSBwbHVnaW5zICh3aGljaCB3aWxsIGRpc2FwcGVhciBzb29uIG9yIGxhdGVyKS5cbiAqIC0gQSBzZWNvbmQgYXR0ZW1wdCBmcm9tIHRoZSBleHRlcm5hbCBwbHVnaW4gZGlyZWN0b3J5XG4gKiAtIEEgdGhpcmQgYXR0ZW1wdCBmcm9tIG5vZGVfbW9kdWxlcywgaW4gY2FzZSB0byBoYXZlIG11bHRpcGxlIG1hdGNoIGFzIGZvciBpbnN0YW5jZSB2ZXJkYWNjaW8tbGRhcFxuICogYW5kIHNpbm9waWEtbGRhcC4gQWxsIHZlcmRhY2NpbyBwcmVmaXggd2lsbCBoYXZlIHByZWZlcmVuY2VzLlxuICogQHBhcmFtIHsqfSBjb25maWcgYSByZWZlcmVuY2Ugb2YgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3NcbiAqIEBwYXJhbSB7Kn0gcGx1Z2luQ29uZmlnc1xuICogQHBhcmFtIHsqfSBwYXJhbXMgYSBzZXQgb2YgcGFyYW1zIHRvIGluaXRpYWxpemUgdGhlIHBsdWdpblxuICogQHBhcmFtIHsqfSBzYW5pdHlDaGVjayBjYWxsYmFjayB0aGF0IGNoZWNrIHRoZSBzaGFwZSB0aGF0IHNob3VsZCBmdWxmaWxsIHRoZSBwbHVnaW5cbiAqIEByZXR1cm4ge0FycmF5fSBsaXN0IG9mIHBsdWdpbnNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9hZFBsdWdpbjxUIGV4dGVuZHMgSVBsdWdpbjxUPj4oY29uZmlnOiBDb25maWcsIHBsdWdpbkNvbmZpZ3M6IGFueSA9IHt9LCBwYXJhbXM6IGFueSwgc2FuaXR5Q2hlY2s6IGFueSwgcHJlZml4OiBzdHJpbmcgPSAndmVyZGFjY2lvJyk6IGFueVtdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHBsdWdpbkNvbmZpZ3MpLm1hcCgocGx1Z2luSWQ6IHN0cmluZyk6IElQbHVnaW48VD4gPT4ge1xuICAgIGxldCBwbHVnaW47XG5cbiAgICBjb25zdCBsb2NhbFBsdWdpbiA9IFBhdGgucmVzb2x2ZShfX2Rpcm5hbWUgKyAnLy4uL3BsdWdpbnMnLCBwbHVnaW5JZCk7XG4gICAgLy8gdHJ5IGxvY2FsIHBsdWdpbnMgZmlyc3RcbiAgICBwbHVnaW4gPSB0cnlMb2FkKGxvY2FsUGx1Z2luKTtcblxuICAgIC8vIHRyeSB0aGUgZXh0ZXJuYWwgcGx1Z2luIGRpcmVjdG9yeVxuICAgIGlmIChwbHVnaW4gPT09IG51bGwgJiYgY29uZmlnLnBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IHBsdWdpbkRpciA9IGNvbmZpZy5wbHVnaW5zO1xuICAgICAgY29uc3QgZXh0ZXJuYWxGaWxlUGx1Z2luID0gUGF0aC5yZXNvbHZlKHBsdWdpbkRpciwgcGx1Z2luSWQpO1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChleHRlcm5hbEZpbGVQbHVnaW4pO1xuXG4gICAgICAvLyBucG0gcGFja2FnZVxuICAgICAgaWYgKHBsdWdpbiA9PT0gbnVsbCAmJiBwbHVnaW5JZC5tYXRjaCgvXlteXFwuXFwvXS8pKSB7XG4gICAgICAgIHBsdWdpbiA9IHRyeUxvYWQoUGF0aC5yZXNvbHZlKHBsdWdpbkRpciwgYCR7cHJlZml4fS0ke3BsdWdpbklkfWApKTtcbiAgICAgICAgLy8gY29tcGF0aWJpbGl0eSBmb3Igb2xkIHNpbm9waWEgcGx1Z2luc1xuICAgICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAgIHBsdWdpbiA9IHRyeUxvYWQoUGF0aC5yZXNvbHZlKHBsdWdpbkRpciwgYHNpbm9waWEtJHtwbHVnaW5JZH1gKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBucG0gcGFja2FnZVxuICAgIGlmIChwbHVnaW4gPT09IG51bGwgJiYgcGx1Z2luSWQubWF0Y2goL15bXlxcLlxcL10vKSkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChgJHtwcmVmaXh9LSR7cGx1Z2luSWR9YCk7XG4gICAgICAvLyBjb21wYXRpYmlsaXR5IGZvciBvbGQgc2lub3BpYSBwbHVnaW5zXG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKGBzaW5vcGlhLSR7cGx1Z2luSWR9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBsdWdpbiA9PT0gbnVsbCkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChwbHVnaW5JZCk7XG4gICAgfVxuXG4gICAgLy8gcmVsYXRpdmUgdG8gY29uZmlnIHBhdGhcbiAgICBpZiAocGx1Z2luID09PSBudWxsICYmIHBsdWdpbklkLm1hdGNoKC9eXFwuXFwuPygkfFxcLykvKSkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChQYXRoLnJlc29sdmUoUGF0aC5kaXJuYW1lKGNvbmZpZy5zZWxmX3BhdGgpLCBwbHVnaW5JZCkpO1xuICAgIH1cblxuICAgIGlmIChwbHVnaW4gPT09IG51bGwpIHtcbiAgICAgIGxvZ2dlci5lcnJvcih7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSwgJ3BsdWdpbiBub3QgZm91bmQuIHRyeSBucG0gaW5zdGFsbCBAe3ByZWZpeH0tQHtjb250ZW50fScpO1xuICAgICAgdGhyb3cgRXJyb3IoYFxuICAgICAgICAke3ByZWZpeH0tJHtwbHVnaW5JZH0gcGx1Z2luIG5vdCBmb3VuZC4gdHJ5IFwibnBtIGluc3RhbGwgJHtwcmVmaXh9LSR7cGx1Z2luSWR9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWQocGx1Z2luKSkge1xuICAgICAgbG9nZ2VyLmVycm9yKHsgY29udGVudDogcGx1Z2luSWQgfSwgJ0B7cHJlZml4fS1Ae2NvbnRlbnR9IHBsdWdpbiBkb2VzIG5vdCBoYXZlIHRoZSByaWdodCBjb2RlIHN0cnVjdHVyZScpO1xuICAgICAgdGhyb3cgRXJyb3IoYFwiJHtwbHVnaW5JZH1cIiBwbHVnaW4gZG9lcyBub3QgaGF2ZSB0aGUgcmlnaHQgY29kZSBzdHJ1Y3R1cmVgKTtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgICB0cnkge1xuICAgICAgcGx1Z2luID0gaXNFUzYocGx1Z2luKSA/IG5ldyBwbHVnaW4uZGVmYXVsdChtZXJnZUNvbmZpZyhjb25maWcsIHBsdWdpbkNvbmZpZ3NbcGx1Z2luSWRdKSwgcGFyYW1zKSA6IHBsdWdpbihwbHVnaW5Db25maWdzW3BsdWdpbklkXSwgcGFyYW1zKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcGx1Z2luID0gbnVsbDtcbiAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yLCBwbHVnaW5JZCB9LCAnZXJyb3IgbG9hZGluZyBhIHBsdWdpbiBAe3BsdWdpbklkfTogQHtlcnJvcn0nKTtcbiAgICB9XG4gICAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG5cbiAgICBpZiAocGx1Z2luID09PSBudWxsIHx8ICFzYW5pdHlDaGVjayhwbHVnaW4pKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoeyBjb250ZW50OiBwbHVnaW5JZCwgcHJlZml4IH0sIFwiQHtwcmVmaXh9LUB7Y29udGVudH0gZG9lc24ndCBsb29rIGxpa2UgYSB2YWxpZCBwbHVnaW5cIik7XG4gICAgICB0aHJvdyBFcnJvcihgc2FuaXR5IGNoZWNrIGhhcyBmYWlsZWQsIFwiJHtwbHVnaW5JZH1cIiBpcyBub3QgYSB2YWxpZCBwbHVnaW5gKTtcbiAgICB9XG5cbiAgICBsb2dnZXIud2Fybih7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSwgJ1BsdWdpbiBzdWNjZXNzZnVsbHkgbG9hZGVkOiBAe3ByZWZpeH0tQHtjb250ZW50fScpO1xuICAgIHJldHVybiBwbHVnaW47XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBSUE7O0FBQ0E7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsT0FBVCxDQUFpQkMsSUFBakIsRUFBb0M7RUFDbEMsSUFBSTtJQUNGLE9BQU9DLE9BQU8sQ0FBQ0QsSUFBRCxDQUFkO0VBQ0QsQ0FGRCxDQUVFLE9BQU9FLEdBQVAsRUFBWTtJQUNaLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSixLQUFhQywyQkFBakIsRUFBbUM7TUFDakMsT0FBTyxJQUFQO0lBQ0Q7O0lBQ0QsTUFBTUYsR0FBTjtFQUNEO0FBQ0Y7O0FBRUQsU0FBU0csV0FBVCxDQUFxQkMsU0FBckIsRUFBZ0NDLFlBQWhDLEVBQXNEO0VBQ3BELE9BQU9DLGVBQUEsQ0FBRUMsS0FBRixDQUFRSCxTQUFSLEVBQW1CQyxZQUFuQixDQUFQO0FBQ0Q7O0FBRUQsU0FBU0csT0FBVCxDQUFpQkMsTUFBakIsRUFBa0M7RUFDaEMsT0FBT0gsZUFBQSxDQUFFSSxVQUFGLENBQWFELE1BQWIsS0FBd0JILGVBQUEsQ0FBRUksVUFBRixDQUFhRCxNQUFNLENBQUNFLE9BQXBCLENBQS9CO0FBQ0Q7O0FBRUQsU0FBU0MsS0FBVCxDQUFlSCxNQUFmLEVBQWdDO0VBQzlCLE9BQU9JLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTCxNQUFaLEVBQW9CTSxRQUFwQixDQUE2QixT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
207
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWJ1ZyIsImJ1aWxkRGVidWciLCJ0cnlMb2FkIiwicGF0aCIsInJlcXVpcmUiLCJlcnIiLCJjb2RlIiwiTU9EVUxFX05PVF9GT1VORCIsImxvZ2dlciIsImVycm9yIiwibXNnIiwibWVyZ2VDb25maWciLCJhcHBDb25maWciLCJwbHVnaW5Db25maWciLCJfIiwibWVyZ2UiLCJpc1ZhbGlkIiwicGx1Z2luIiwiaXNGdW5jdGlvbiIsImRlZmF1bHQiLCJpc0VTNiIsIk9iamVjdCIsImtleXMiLCJpbmNsdWRlcyIsImxvYWRQbHVnaW4iLCJjb25maWciLCJwbHVnaW5Db25maWdzIiwicGFyYW1zIiwic2FuaXR5Q2hlY2siLCJwcmVmaXgiLCJtYXAiLCJwbHVnaW5JZCIsImlzU2NvcGVkIiwic3RhcnRzV2l0aCIsImxvY2FsUGx1Z2luIiwiUGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJwbHVnaW5zIiwicGx1Z2luRGlyIiwiZXh0ZXJuYWxGaWxlUGx1Z2luIiwibWF0Y2giLCJ3YXJuIiwibmFtZSIsImRpcm5hbWUiLCJzZWxmX3BhdGgiLCJjb250ZW50IiwiRXJyb3IiLCJpbmZvIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9wbHVnaW4tbG9hZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ29uZmlnLCBJUGx1Z2luIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IE1PRFVMRV9OT1RfRk9VTkQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvOnBsdWdpbjpsb2FkZXInKTtcblxuLyoqXG4gKiBSZXF1aXJlcyBhIG1vZHVsZS5cbiAqIEBwYXJhbSB7Kn0gcGF0aCB0aGUgbW9kdWxlJ3MgcGF0aFxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiB0cnlMb2FkKHBhdGg6IHN0cmluZyk6IGFueSB7XG4gIHRyeSB7XG4gICAgZGVidWcoJ2xvYWRpbmcgcGx1Z2luICVzJywgcGF0aCk7XG4gICAgcmV0dXJuIHJlcXVpcmUocGF0aCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIuY29kZSA9PT0gTU9EVUxFX05PVF9GT1VORCkge1xuICAgICAgZGVidWcoJ3BsdWdpbiAlcyBub3QgZm91bmQnLCBwYXRoKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBsb2dnZXIuZXJyb3IoeyBlcnI6IGVyci5tc2cgfSwgJ2Vycm9yIGxvYWRpbmcgcGx1Z2luIEB7ZXJyfScpO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUNvbmZpZyhhcHBDb25maWcsIHBsdWdpbkNvbmZpZyk6IENvbmZpZyB7XG4gIHJldHVybiBfLm1lcmdlKGFwcENvbmZpZywgcGx1Z2luQ29uZmlnKTtcbn1cblxuZnVuY3Rpb24gaXNWYWxpZChwbHVnaW4pOiBib29sZWFuIHtcbiAgcmV0dXJuIF8uaXNGdW5jdGlvbihwbHVnaW4pIHx8IF8uaXNGdW5jdGlvbihwbHVnaW4uZGVmYXVsdCk7XG59XG5cbmZ1bmN0aW9uIGlzRVM2KHBsdWdpbik6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMocGx1Z2luKS5pbmNsdWRlcygnZGVmYXVsdCcpO1xufVxuXG4vLyBleHBvcnQgdHlwZSBQbHVnaW5HZW5lcmljPFIsIFQgZXh0ZW5kcyBJUGx1Z2luPFI+ID0gO1xuXG4vKipcbiAqIExvYWQgYSBwbHVnaW4gZm9sbG93aW5nIHRoZSBydWxlc1xuICogLSBGaXJzdCB0cnkgdG8gbG9hZCBmcm9tIHRoZSBpbnRlcm5hbCBkaXJlY3RvcnkgcGx1Z2lucyAod2hpY2ggd2lsbCBkaXNhcHBlYXIgc29vbiBvciBsYXRlcikuXG4gKiAtIElmIHRoZSBwYWNrYWdlIGlzIHNjb3BlZCBlZzogQHNjb3BlL2ZvbywgdHJ5IHRvIGxvYWQgYXMgYSBwYWNrYWdlXG4gKiAtIEEgc2Vjb25kIGF0dGVtcHQgZnJvbSB0aGUgZXh0ZXJuYWwgcGx1Z2luIGRpcmVjdG9yeVxuICogLSBBIHRoaXJkIGF0dGVtcHQgZnJvbSBub2RlX21vZHVsZXMsIGluIGNhc2UgdG8gaGF2ZSBtdWx0aXBsZSBtYXRjaCBhcyBmb3IgaW5zdGFuY2UgdmVyZGFjY2lvLWxkYXBcbiAqIGFuZCBzaW5vcGlhLWxkYXAuIEFsbCB2ZXJkYWNjaW8gcHJlZml4IHdpbGwgaGF2ZSBwcmVmZXJlbmNlcy5cbiAqIEBwYXJhbSB7Kn0gY29uZmlnIGEgcmVmZXJlbmNlIG9mIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gKiBAcGFyYW0geyp9IHBsdWdpbkNvbmZpZ3NcbiAqIEBwYXJhbSB7Kn0gcGFyYW1zIGEgc2V0IG9mIHBhcmFtcyB0byBpbml0aWFsaXplIHRoZSBwbHVnaW5cbiAqIEBwYXJhbSB7Kn0gc2FuaXR5Q2hlY2sgY2FsbGJhY2sgdGhhdCBjaGVjayB0aGUgc2hhcGUgdGhhdCBzaG91bGQgZnVsZmlsbCB0aGUgcGx1Z2luXG4gKiBAcmV0dXJuIHtBcnJheX0gbGlzdCBvZiBwbHVnaW5zXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvYWRQbHVnaW48VCBleHRlbmRzIElQbHVnaW48VD4+KGNvbmZpZzogQ29uZmlnLCBwbHVnaW5Db25maWdzOiBhbnkgPSB7fSwgcGFyYW1zOiBhbnksIHNhbml0eUNoZWNrOiBhbnksIHByZWZpeDogc3RyaW5nID0gJ3ZlcmRhY2NpbycpOiBhbnlbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwbHVnaW5Db25maWdzKS5tYXAoKHBsdWdpbklkOiBzdHJpbmcpOiBJUGx1Z2luPFQ+ID0+IHtcbiAgICBsZXQgcGx1Z2luO1xuICAgIGNvbnN0IGlzU2NvcGVkOiBib29sZWFuID0gcGx1Z2luSWQuc3RhcnRzV2l0aCgnQCcpICYmIHBsdWdpbklkLmluY2x1ZGVzKCcvJyk7XG4gICAgZGVidWcoJ2lzU2NvcGVkICVzJywgaXNTY29wZWQpO1xuICAgIGlmIChpc1Njb3BlZCkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChwbHVnaW5JZCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxQbHVnaW4gPSBQYXRoLnJlc29sdmUoX19kaXJuYW1lICsgJy8uLi9wbHVnaW5zJywgcGx1Z2luSWQpO1xuICAgIC8vIHRyeSBsb2NhbCBwbHVnaW5zIGZpcnN0XG4gICAgcGx1Z2luID0gdHJ5TG9hZChsb2NhbFBsdWdpbik7XG5cbiAgICAvLyB0cnkgdGhlIGV4dGVybmFsIHBsdWdpbiBkaXJlY3RvcnlcbiAgICBpZiAocGx1Z2luID09PSBudWxsICYmIGNvbmZpZy5wbHVnaW5zKSB7XG4gICAgICBjb25zdCBwbHVnaW5EaXIgPSBjb25maWcucGx1Z2lucztcbiAgICAgIGNvbnN0IGV4dGVybmFsRmlsZVBsdWdpbiA9IFBhdGgucmVzb2x2ZShwbHVnaW5EaXIsIHBsdWdpbklkKTtcbiAgICAgIHBsdWdpbiA9IHRyeUxvYWQoZXh0ZXJuYWxGaWxlUGx1Z2luKTtcblxuICAgICAgLy8gbnBtIHBhY2thZ2VcbiAgICAgIGlmIChwbHVnaW4gPT09IG51bGwgJiYgcGx1Z2luSWQubWF0Y2goL15bXlxcLlxcL10vKSkge1xuICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKFBhdGgucmVzb2x2ZShwbHVnaW5EaXIsIGAke3ByZWZpeH0tJHtwbHVnaW5JZH1gKSk7XG4gICAgICAgIC8vIGNvbXBhdGliaWxpdHkgZm9yIG9sZCBzaW5vcGlhIHBsdWdpbnNcbiAgICAgICAgaWYgKCFwbHVnaW4pIHtcbiAgICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKFBhdGgucmVzb2x2ZShwbHVnaW5EaXIsIGBzaW5vcGlhLSR7cGx1Z2luSWR9YCkpO1xuICAgICAgICAgIGlmIChwbHVnaW4pIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKHsgbmFtZTogcGx1Z2luSWQgfSwgYHBsdWdpbiBuYW1lcyB0aGF0IHN0YXJ0IHdpdGggc2lub3BpYS0qIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLCBwbGVhc2UgcmVuYW1lIHBhY2thZ2UgdG8gdmVyZGFjY2lvLSpgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBucG0gcGFja2FnZVxuICAgIGlmIChwbHVnaW4gPT09IG51bGwgJiYgcGx1Z2luSWQubWF0Y2goL15bXlxcLlxcL10vKSkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChgJHtwcmVmaXh9LSR7cGx1Z2luSWR9YCk7XG4gICAgICAvLyBjb21wYXRpYmlsaXR5IGZvciBvbGQgc2lub3BpYSBwbHVnaW5zXG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKGBzaW5vcGlhLSR7cGx1Z2luSWR9YCk7XG4gICAgICB9XG4gICAgICBpZiAocGx1Z2luKSB7XG4gICAgICAgIGRlYnVnKCdwbHVnaW4gJXMgaXMgYW4gbnBtIHBhY2thZ2UnLCBwbHVnaW5JZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBsdWdpbiA9PT0gbnVsbCkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChwbHVnaW5JZCk7XG4gICAgfVxuXG4gICAgLy8gcmVsYXRpdmUgdG8gY29uZmlnIHBhdGhcbiAgICBpZiAocGx1Z2luID09PSBudWxsICYmIHBsdWdpbklkLm1hdGNoKC9eXFwuXFwuPygkfFxcLykvKSkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChQYXRoLnJlc29sdmUoUGF0aC5kaXJuYW1lKGNvbmZpZy5zZWxmX3BhdGgpLCBwbHVnaW5JZCkpO1xuICAgIH1cblxuICAgIGlmIChwbHVnaW4gPT09IG51bGwpIHtcbiAgICAgIGlmIChpc1Njb3BlZCkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoeyBjb250ZW50OiBwbHVnaW5JZCB9LCAncGx1Z2luIG5vdCBmb3VuZC4gdHJ5IG5wbSBpbnN0YWxsIEB7Y29udGVudH0nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcih7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSwgJ3BsdWdpbiBub3QgZm91bmQuIHRyeSBucG0gaW5zdGFsbCBAe3ByZWZpeH0tQHtjb250ZW50fScpO1xuICAgICAgfVxuICAgICAgY29uc3QgbXNnID0gaXNTY29wZWRcbiAgICAgICAgPyBgXG4gICAgICAke3BsdWdpbklkfSBwbHVnaW4gbm90IGZvdW5kLiB0cnkgXCJucG0gaW5zdGFsbCAke3BsdWdpbklkfVwiYFxuICAgICAgICA6IGBcbiAgICAgICR7cHJlZml4fS0ke3BsdWdpbklkfSBwbHVnaW4gbm90IGZvdW5kLiB0cnkgXCJucG0gaW5zdGFsbCAke3ByZWZpeH0tJHtwbHVnaW5JZH1cImA7XG4gICAgICB0aHJvdyBFcnJvcihtc2cpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZChwbHVnaW4pKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoeyBjb250ZW50OiBwbHVnaW5JZCB9LCAnQHtwcmVmaXh9LUB7Y29udGVudH0gcGx1Z2luIGRvZXMgbm90IGhhdmUgdGhlIHJpZ2h0IGNvZGUgc3RydWN0dXJlJyk7XG4gICAgICB0aHJvdyBFcnJvcihgXCIke3BsdWdpbklkfVwiIHBsdWdpbiBkb2VzIG5vdCBoYXZlIHRoZSByaWdodCBjb2RlIHN0cnVjdHVyZWApO1xuICAgIH1cblxuICAgIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFUzYocGx1Z2luKSkge1xuICAgICAgICBkZWJ1ZygncGx1Z2luIGlzIEVTNicpO1xuICAgICAgICBwbHVnaW4gPSBuZXcgcGx1Z2luLmRlZmF1bHQobWVyZ2VDb25maWcoY29uZmlnLCBwbHVnaW5Db25maWdzW3BsdWdpbklkXSksIHBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWJ1ZygncGx1Z2luIGlzIGNvbW1vbkpTJyk7XG4gICAgICAgIHBsdWdpbiA9IHBsdWdpbihwbHVnaW5Db25maWdzW3BsdWdpbklkXSwgcGFyYW1zKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcGx1Z2luID0gbnVsbDtcbiAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yLCBwbHVnaW5JZCB9LCAnZXJyb3IgbG9hZGluZyBhIHBsdWdpbiBAe3BsdWdpbklkfTogQHtlcnJvcn0nKTtcbiAgICB9XG4gICAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG5cbiAgICBpZiAocGx1Z2luID09PSBudWxsIHx8ICFzYW5pdHlDaGVjayhwbHVnaW4pKSB7XG4gICAgICBpZiAoaXNTY29wZWQpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKHsgY29udGVudDogcGx1Z2luSWQgfSwgXCJAe2NvbnRlbnR9IGRvZXNuJ3QgbG9vayBsaWtlIGEgdmFsaWQgcGx1Z2luXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKHsgY29udGVudDogcGx1Z2luSWQsIHByZWZpeCB9LCBcIkB7cHJlZml4fS1Ae2NvbnRlbnR9IGRvZXNuJ3QgbG9vayBsaWtlIGEgdmFsaWQgcGx1Z2luXCIpO1xuICAgICAgfVxuICAgICAgdGhyb3cgRXJyb3IoYHNhbml0eSBjaGVjayBoYXMgZmFpbGVkLCBcIiR7cGx1Z2luSWR9XCIgaXMgbm90IGEgdmFsaWQgcGx1Z2luYCk7XG4gICAgfVxuXG4gICAgaWYgKGlzU2NvcGVkKSB7XG4gICAgICBsb2dnZXIuaW5mbyh7IGNvbnRlbnQ6IHBsdWdpbklkIH0sICdwbHVnaW4gc3VjY2Vzc2Z1bGx5IGxvYWRlZDogQHtjb250ZW50fScpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuaW5mbyh7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSwgJ3BsdWdpbiBzdWNjZXNzZnVsbHkgbG9hZGVkOiBAe3ByZWZpeH0tQHtjb250ZW50fScpO1xuICAgIH1cbiAgICByZXR1cm4gcGx1Z2luO1xuICB9KTtcbn1cbiJd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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio",
3
- "version": "5.11.0",
3
+ "version": "5.12.0",
4
4
  "description": "A lightweight private npm proxy registry",
5
5
  "author": {
6
6
  "name": "Verdaccio Maintainers",
@@ -19,18 +19,18 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "@verdaccio/commons-api": "10.2.0",
22
- "@verdaccio/local-storage": "10.2.1",
22
+ "@verdaccio/local-storage": "10.3.0",
23
23
  "@verdaccio/readme": "10.3.4",
24
24
  "@verdaccio/streams": "10.2.0",
25
25
  "@verdaccio/ui-theme": "6.0.0-6-next.24",
26
26
  "JSONStream": "1.3.5",
27
- "async": "3.2.3",
27
+ "async": "3.2.4",
28
28
  "body-parser": "1.20.0",
29
29
  "clipanion": "3.1.0",
30
30
  "compression": "1.7.4",
31
31
  "cookies": "0.8.0",
32
32
  "cors": "2.8.5",
33
- "dayjs": "1.11.2",
33
+ "dayjs": "1.11.3",
34
34
  "debug": "^4.3.3",
35
35
  "envinfo": "7.8.1",
36
36
  "eslint-import-resolver-node": "0.3.6",
@@ -43,12 +43,12 @@
43
43
  "jsonwebtoken": "8.5.1",
44
44
  "kleur": "4.1.4",
45
45
  "lodash": "4.17.21",
46
- "lru-cache": "7.9.0",
46
+ "lru-cache": "7.10.1",
47
47
  "lunr-mutable-indexes": "2.3.2",
48
- "marked": "4.0.16",
48
+ "marked": "4.0.17",
49
49
  "memoizee": "0.4.15",
50
50
  "mime": "3.0.0",
51
- "minimatch": "5.0.1",
51
+ "minimatch": "5.1.0",
52
52
  "mkdirp": "1.0.4",
53
53
  "mv": "2.1.1",
54
54
  "pino": "6.14.0",
@@ -59,7 +59,7 @@
59
59
  "semver": "7.3.7",
60
60
  "validator": "13.7.0",
61
61
  "verdaccio-audit": "10.2.2",
62
- "verdaccio-htpasswd": "10.3.0"
62
+ "verdaccio-htpasswd": "10.3.1"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@babel/cli": "7.17.10",
@@ -89,7 +89,7 @@
89
89
  "@commitlint/config-conventional": "12.1.4",
90
90
  "@octokit/rest": "18.12.0",
91
91
  "@trivago/prettier-plugin-sort-imports": "3.1.1",
92
- "@types/async": "3.2.12",
92
+ "@types/async": "3.2.13",
93
93
  "@types/express": "4.17.13",
94
94
  "@types/express-rate-limit": "5.1.3",
95
95
  "@types/express-serve-static-core": "4.17.28",
@@ -104,8 +104,9 @@
104
104
  "@types/semver": "7.3.9",
105
105
  "@typescript-eslint/eslint-plugin": "4.33.0",
106
106
  "@typescript-eslint/parser": "4.33.0",
107
- "@verdaccio/eslint-config": "^8.5.0",
108
- "@verdaccio/types": "10.4.2",
107
+ "@verdaccio-scope/verdaccio-auth-foo": "0.0.2",
108
+ "@verdaccio/eslint-config": "^10.0.0",
109
+ "@verdaccio/types": "10.5.1",
109
110
  "all-contributors-cli": "6.20.0",
110
111
  "babel-eslint": "10.1.0",
111
112
  "babel-jest": "26.6.3",
@@ -141,7 +142,7 @@
141
142
  "ts-node": "10.7.0",
142
143
  "typescript": "4.1.3",
143
144
  "verdaccio-auth-memory": "10.2.0",
144
- "verdaccio-memory": "10.2.1"
145
+ "verdaccio-memory": "10.3.0"
145
146
  },
146
147
  "keywords": [
147
148
  "private",