@verdaccio/store 7.0.0-next-7.19 → 7.0.0-next-8.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/store",
3
- "version": "7.0.0-next-7.19",
3
+ "version": "7.0.0-next-8.21",
4
4
  "description": "loaders logic",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -29,22 +29,22 @@
29
29
  "node": ">=18"
30
30
  },
31
31
  "dependencies": {
32
- "@verdaccio/config": "7.0.0-next-7.19",
33
- "@verdaccio/core": "7.0.0-next-7.19",
34
- "@verdaccio/hooks": "7.0.0-next-7.19",
35
- "@verdaccio/loaders": "7.0.0-next-7.19",
36
- "@verdaccio/local-storage": "12.0.0-next-7.19",
37
- "@verdaccio/logger": "7.0.0-next-7.19",
38
- "@verdaccio/search": "7.0.0-next-7.8",
39
- "@verdaccio/proxy": "7.0.0-next-7.19",
40
- "@verdaccio/tarball": "12.0.0-next-7.19",
41
- "@verdaccio/url": "12.0.0-next-7.19",
42
- "@verdaccio/utils": "7.0.0-next-7.19",
32
+ "@verdaccio/config": "7.0.0-next-8.21",
33
+ "@verdaccio/core": "7.0.0-next-8.21",
34
+ "@verdaccio/hooks": "7.0.0-next-8.21",
35
+ "@verdaccio/loaders": "7.0.0-next-8.21",
36
+ "@verdaccio/local-storage": "12.0.0-next-8.21",
37
+ "@verdaccio/logger": "7.0.0-next-8.21",
38
+ "@verdaccio/proxy": "7.0.0-next-8.21",
39
+ "@verdaccio/search": "7.0.0-next-8.10",
40
+ "@verdaccio/tarball": "12.0.0-next-8.21",
41
+ "@verdaccio/url": "12.0.0-next-8.21",
42
+ "@verdaccio/utils": "7.0.0-next-8.21",
43
43
  "JSONStream": "1.3.5",
44
- "debug": "4.3.4",
44
+ "debug": "4.3.6",
45
45
  "lodash": "4.17.21",
46
46
  "merge2": "1.4.1",
47
- "semver": "7.6.2"
47
+ "semver": "7.6.3"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@verdaccio/test-helper": "3.0.0-next-7.2",
@@ -2,7 +2,7 @@ import assert from 'assert';
2
2
  import buildDebug from 'debug';
3
3
  import _ from 'lodash';
4
4
 
5
- import { errorUtils, pluginUtils } from '@verdaccio/core';
5
+ import { PLUGIN_CATEGORY, errorUtils, pluginUtils } from '@verdaccio/core';
6
6
  import { asyncLoadPlugin } from '@verdaccio/loaders';
7
7
  import LocalDatabase from '@verdaccio/local-storage';
8
8
  import { Config, Logger } from '@verdaccio/types';
@@ -75,7 +75,8 @@ class LocalStorage {
75
75
  (plugin) => {
76
76
  return typeof plugin.getPackageStorage !== 'undefined';
77
77
  },
78
- this.config?.serverSettings?.pluginPrefix
78
+ this.config?.serverSettings?.pluginPrefix,
79
+ PLUGIN_CATEGORY.STORAGE
79
80
  );
80
81
 
81
82
  if (plugins.length > 1) {
package/src/storage.ts CHANGED
@@ -15,6 +15,7 @@ import {
15
15
  HEADER_TYPE,
16
16
  HTTP_STATUS,
17
17
  MAINTAINERS,
18
+ PLUGIN_CATEGORY,
18
19
  SUPPORT_ERRORS,
19
20
  USERS,
20
21
  errorUtils,
@@ -24,7 +25,6 @@ import {
24
25
  validatioUtils,
25
26
  } from '@verdaccio/core';
26
27
  import { asyncLoadPlugin } from '@verdaccio/loaders';
27
- import { logger } from '@verdaccio/logger';
28
28
  import {
29
29
  IProxy,
30
30
  ISyncUplinksOptions,
@@ -101,7 +101,7 @@ class Storage {
101
101
  public readonly logger: Logger;
102
102
  public readonly uplinks: ProxyInstanceList;
103
103
  private searchService: Search;
104
- public constructor(config: Config) {
104
+ public constructor(config: Config, logger: Logger) {
105
105
  this.config = config;
106
106
  this.logger = logger.child({ module: 'storage' });
107
107
  this.uplinks = setupUpLinks(config, this.logger);
@@ -501,7 +501,7 @@ class Storage {
501
501
  try {
502
502
  await this.checkAllowedToChangePackage(manifest, options.requestOptions.username);
503
503
  } catch (error: any) {
504
- logger.error({ error: error.message }, 'getting package has failed: @{error}');
504
+ this.logger.error({ error: error.message }, 'getting package has failed: @{error}');
505
505
  throw errorUtils.getBadRequest(error.message);
506
506
  }
507
507
  }
@@ -647,7 +647,7 @@ class Storage {
647
647
  */
648
648
  public async init(config: Config): Promise<void> {
649
649
  if (this.localStorage === null) {
650
- this.localStorage = new LocalStorage(this.config, logger);
650
+ this.localStorage = new LocalStorage(this.config, this.logger);
651
651
  await this.localStorage.init();
652
652
  debug('local init storage initialized');
653
653
  await this.localStorage.getSecret(config);
@@ -665,7 +665,8 @@ class Storage {
665
665
  (plugin: pluginUtils.ManifestFilter<Config>) => {
666
666
  return typeof plugin.filter_metadata !== 'undefined';
667
667
  },
668
- this.config?.serverSettings?.pluginPrefix
668
+ this.config?.serverSettings?.pluginPrefix,
669
+ PLUGIN_CATEGORY.FILTER
669
670
  );
670
671
  debug('filters available %o', this.filters.length);
671
672
  }
@@ -713,13 +714,13 @@ class Storage {
713
714
  return results;
714
715
  }
715
716
 
716
- logger.info(
717
+ this.logger.info(
717
718
  { t: query.text, q: query.quality, p: query.popularity, m: query.maintenance, s: query.size },
718
719
  'search by text @{t}| maintenance @{m}| quality @{q}| popularity @{p}'
719
720
  );
720
721
 
721
722
  if (typeof this.localStorage.getStoragePlugin().search === 'undefined') {
722
- logger.info('plugin search not implemented yet');
723
+ this.logger.info('plugin search not implemented yet');
723
724
  } else {
724
725
  debug('search on each package by plugin query');
725
726
  const items = await this.localStorage.getStoragePlugin().search(query);
@@ -768,10 +769,10 @@ class Storage {
768
769
  manifest = normalizePackage(manifest);
769
770
  } catch (err: any) {
770
771
  if (err.code === STORAGE.NO_SUCH_FILE_ERROR || err.code === HTTP_STATUS.NOT_FOUND) {
771
- logger.info({ pkgName, revision }, 'package not found');
772
+ this.logger.info({ pkgName, revision }, 'package not found');
772
773
  throw errorUtils.getNotFound();
773
774
  }
774
- logger.error(
775
+ this.logger.error(
775
776
  { pkgName, revision, err: err.message },
776
777
  'error @{err} while reading package @{pkgName}-{revision}'
777
778
  );
@@ -790,7 +791,7 @@ class Storage {
790
791
  for (let attachment of attachments) {
791
792
  debug('remove attachment %s', attachment);
792
793
  await storage.deletePackage(attachment);
793
- logger.info({ attachment }, 'attachment @{attachment} removed');
794
+ this.logger.info({ attachment }, 'attachment @{attachment} removed');
794
795
  }
795
796
  // remove package.json
796
797
  debug('remove package.json');
@@ -798,7 +799,7 @@ class Storage {
798
799
  // remove folder
799
800
  debug('remove package folder');
800
801
  await storage.removePackage();
801
- logger.info({ pkgName }, 'package @{pkgName} removed');
802
+ this.logger.info({ pkgName }, 'package @{pkgName} removed');
802
803
  } catch (err: any) {
803
804
  this.logger.error({ err }, 'removed package has failed @{err.message}');
804
805
  throw errorUtils.getBadData(err.message);
@@ -897,7 +898,7 @@ class Storage {
897
898
  cache: true,
898
899
  },
899
900
  this.config,
900
- logger
901
+ this.logger
901
902
  );
902
903
  }
903
904
  return uplink;
@@ -944,14 +945,14 @@ class Storage {
944
945
  try {
945
946
  const { name } = mergedManifest;
946
947
  await this.notify(mergedManifest, `${name}@${version}`);
947
- logger.info({ name, version }, 'notify for @{name}@@{version} has been sent');
948
+ this.logger.info({ name, version }, 'notify for @{name}@@{version} has been sent');
948
949
  } catch (error: any) {
949
- logger.error({ error: error.message }, 'notify batch service has failed: @{error}');
950
+ this.logger.error({ error: error.message }, 'notify batch service has failed: @{error}');
950
951
  }
951
952
  return message;
952
953
  } else {
953
954
  debug('invalid body format');
954
- logger.warn(
955
+ this.logger.warn(
955
956
  { packageName: options.name },
956
957
  `wrong package format on publish a package @{packageName}`
957
958
  );
@@ -1146,7 +1147,7 @@ class Storage {
1146
1147
  }
1147
1148
  } catch (err: any) {
1148
1149
  debug('error on change or update a package with %o', err.message);
1149
- logger.error({ err: err.message }, 'error on publish new version: @{err}');
1150
+ this.logger.error({ err: err.message }, 'error on publish new version: @{err}');
1150
1151
  throw err;
1151
1152
  }
1152
1153
 
@@ -1161,7 +1162,7 @@ class Storage {
1161
1162
  // addVersion will move the readme from the the published version to the root level
1162
1163
  await this.addVersion(name, versionToPublish, versions[versionToPublish], null, tarballStats);
1163
1164
  } catch (err: any) {
1164
- logger.error({ err: err.message }, 'updated version has failed: @{err}');
1165
+ this.logger.error({ err: err.message }, 'updated version has failed: @{err}');
1165
1166
  debug('error on create a version for %o with error %o', name, err.message);
1166
1167
  throw err;
1167
1168
  }
@@ -1176,7 +1177,7 @@ class Storage {
1176
1177
  // 4. update once to the storage (easy peasy)
1177
1178
  mergedManifest = await this.mergeTagsNext(name, manifest[DIST_TAGS]);
1178
1179
  } catch (err: any) {
1179
- logger.error({ err: err.message }, 'merge version has failed: @{err}');
1180
+ this.logger.error({ err: err.message }, 'merge version has failed: @{err}');
1180
1181
  debug('error on create a version for %o with error %o', name, err.message);
1181
1182
  // TODO: undo if this fails
1182
1183
  // 1. remove updated version
@@ -1190,14 +1191,14 @@ class Storage {
1190
1191
  signal: options.signal,
1191
1192
  });
1192
1193
  } catch (err: any) {
1193
- logger.error({ err: err.message }, 'upload tarball has failed: @{err}');
1194
+ this.logger.error({ err: err.message }, 'upload tarball has failed: @{err}');
1194
1195
  // TODO: undo if this fails
1195
1196
  // 1. remove updated version
1196
1197
  // 2. remove new dist tags
1197
1198
  throw err;
1198
1199
  }
1199
1200
 
1200
- logger.info(
1201
+ this.logger.info(
1201
1202
  { name, version: versionToPublish },
1202
1203
  'package @{name}@@{version} has been published'
1203
1204
  );
@@ -2028,7 +2029,7 @@ class Storage {
2028
2029
  manifest.maintainers.length > 0 &&
2029
2030
  !manifest.maintainers.some((maintainer) => maintainer.name === username)
2030
2031
  ) {
2031
- logger.error({ username }, '@{username} is not a maintainer (package owner)');
2032
+ this.logger.error({ username }, '@{username} is not a maintainer (package owner)');
2032
2033
  throw Error('only owners are allowed to change package');
2033
2034
  }
2034
2035
  }
@@ -8,7 +8,7 @@ import { generatePackageMetadata } from '@verdaccio/test-helper';
8
8
 
9
9
  import { Storage } from '../src';
10
10
 
11
- setup({});
11
+ const logger = setup({});
12
12
 
13
13
  describe('search', () => {
14
14
  describe('search manager utils', () => {
@@ -39,7 +39,7 @@ describe('search', () => {
39
39
  ...getDefaultConfig(),
40
40
  storage: await fileUtils.createTempStorageFolder('fix-1'),
41
41
  });
42
- const storage = new Storage(config);
42
+ const storage = new Storage(config, logger);
43
43
  await storage.init(config);
44
44
  const abort = new AbortController();
45
45
  const pkgName = 'verdaccio';
@@ -44,7 +44,7 @@ function generateRandomStorage() {
44
44
  return path.join(tempRoot, tempStorage);
45
45
  }
46
46
 
47
- setup({ type: 'stdout', format: 'pretty', level: 'trace' });
47
+ const logger = setup({ type: 'stdout', format: 'pretty', level: 'trace' });
48
48
 
49
49
  const domain = 'https://registry.npmjs.org';
50
50
  const fakeHost = 'localhost:4873';
@@ -149,7 +149,7 @@ describe('storage', () => {
149
149
  __dirname
150
150
  )
151
151
  );
152
- const storage = new Storage(config);
152
+ const storage = new Storage(config, logger);
153
153
  await storage.init(config);
154
154
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
155
155
  await storage.updateManifest(bodyNewManifest, {
@@ -194,7 +194,7 @@ describe('storage', () => {
194
194
  __dirname
195
195
  )
196
196
  );
197
- const storage = new Storage(config);
197
+ const storage = new Storage(config, logger);
198
198
  await storage.init(config);
199
199
  const ac = new AbortController();
200
200
  setTimeout(() => {
@@ -239,7 +239,7 @@ describe('storage', () => {
239
239
  __dirname
240
240
  )
241
241
  );
242
- const storage = new Storage(config);
242
+ const storage = new Storage(config, logger);
243
243
  await storage.init(config);
244
244
  // create a package
245
245
  const bodyNewManifest1 = generatePackageMetadata(pkgName, '1.0.0');
@@ -328,7 +328,7 @@ describe('storage', () => {
328
328
  __dirname
329
329
  )
330
330
  );
331
- const storage = new Storage(config);
331
+ const storage = new Storage(config, logger);
332
332
  await storage.init(config);
333
333
  const bodyNewManifest1 = generatePackageMetadata(pkgName, '1.0.0');
334
334
  const bodyNewManifest2 = generatePackageMetadata(pkgName, '1.0.0');
@@ -365,7 +365,7 @@ describe('storage', () => {
365
365
  __dirname
366
366
  )
367
367
  );
368
- const storage = new Storage(config);
368
+ const storage = new Storage(config, logger);
369
369
  await storage.init(config);
370
370
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
371
371
 
@@ -395,7 +395,7 @@ describe('storage', () => {
395
395
  const mockDate = '2018-01-14T11:17:40.712Z';
396
396
  MockDate.set(mockDate);
397
397
  const config = getConfig('deprecate.yaml');
398
- const storage = new Storage(config);
398
+ const storage = new Storage(config, logger);
399
399
  await storage.init(config);
400
400
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
401
401
  await storage.updateManifest(bodyNewManifest, {
@@ -442,7 +442,7 @@ describe('storage', () => {
442
442
  const mockDate = '2018-01-14T11:17:40.712Z';
443
443
  MockDate.set(mockDate);
444
444
  const config = getConfig('deprecate.yaml');
445
- const storage = new Storage(config);
445
+ const storage = new Storage(config, logger);
446
446
  await storage.init(config);
447
447
  // publish new package
448
448
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
@@ -516,7 +516,7 @@ describe('storage', () => {
516
516
  describe('star', () => {
517
517
  test.each([['foo']])('star package %s', async (pkgName) => {
518
518
  const config = getConfig('deprecate.yaml');
519
- const storage = new Storage(config);
519
+ const storage = new Storage(config, logger);
520
520
  await storage.init(config);
521
521
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
522
522
  await storage.updateManifest(bodyNewManifest, {
@@ -549,7 +549,7 @@ describe('storage', () => {
549
549
  const mockDate = '2018-01-14T11:17:40.712Z';
550
550
  MockDate.set(mockDate);
551
551
  const config = getConfig('deprecate.yaml');
552
- const storage = new Storage(config);
552
+ const storage = new Storage(config, logger);
553
553
  await storage.init(config);
554
554
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
555
555
  await storage.updateManifest(bodyNewManifest, {
@@ -591,7 +591,7 @@ describe('storage', () => {
591
591
  const mockDate = '2018-01-14T11:17:40.712Z';
592
592
  MockDate.set(mockDate);
593
593
  const config = getConfig('deprecate.yaml');
594
- const storage = new Storage(config);
594
+ const storage = new Storage(config, logger);
595
595
  await storage.init(config);
596
596
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
597
597
  await storage.updateManifest(bodyNewManifest, {
@@ -630,7 +630,7 @@ describe('storage', () => {
630
630
 
631
631
  test.each([['foo']])('should unstar a package %s', async (pkgName) => {
632
632
  const config = getConfig('deprecate.yaml');
633
- const storage = new Storage(config);
633
+ const storage = new Storage(config, logger);
634
634
  await storage.init(config);
635
635
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
636
636
  await storage.updateManifest(bodyNewManifest, {
@@ -667,7 +667,7 @@ describe('storage', () => {
667
667
 
668
668
  test.each([['foo']])('should handle missing username %s', async (pkgName) => {
669
669
  const config = getConfig('deprecate.yaml');
670
- const storage = new Storage(config);
670
+ const storage = new Storage(config, logger);
671
671
  await storage.init(config);
672
672
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
673
673
  await storage.updateManifest(bodyNewManifest, {
@@ -695,7 +695,7 @@ describe('storage', () => {
695
695
  ['foo', 'publishWithOwnerAndCheck.yaml'],
696
696
  ])('new package %s, %s (anonymous)', async (pkgName, configFile) => {
697
697
  const config = getConfig(configFile);
698
- const storage = new Storage(config);
698
+ const storage = new Storage(config, logger);
699
699
  await storage.init(config);
700
700
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
701
701
  await storage.updateManifest(bodyNewManifest, {
@@ -717,7 +717,7 @@ describe('storage', () => {
717
717
  ['foo', 'publishWithOwnerAndCheck.yaml'],
718
718
  ])('new package %s, %s (logged in)', async (pkgName, configFile) => {
719
719
  const config = getConfig(configFile);
720
- const storage = new Storage(config);
720
+ const storage = new Storage(config, logger);
721
721
  await storage.init(config);
722
722
  const owner = { name: 'fooUser', email: '' };
723
723
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
@@ -742,7 +742,7 @@ describe('storage', () => {
742
742
  ['foo', 'publishWithOwnerAndCheck.yaml'],
743
743
  ])('add/remove owner %s, %s', async (pkgName, configFile) => {
744
744
  const config = getConfig(configFile);
745
- const storage = new Storage(config);
745
+ const storage = new Storage(config, logger);
746
746
  await storage.init(config);
747
747
  const firstOwner = { name: 'fooUser', email: '' };
748
748
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
@@ -802,7 +802,7 @@ describe('storage', () => {
802
802
  ['foo', 'publishWithOwnerAndCheck.yaml'],
803
803
  ])('should fail removing last owner %s, %s', async (pkgName, configFile) => {
804
804
  const config = getConfig(configFile);
805
- const storage = new Storage(config);
805
+ const storage = new Storage(config, logger);
806
806
  await storage.init(config);
807
807
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
808
808
  const owner = 'fooUser';
@@ -830,7 +830,7 @@ describe('storage', () => {
830
830
  'ok to publish as non-owner without check %s, %s',
831
831
  async (pkgName, configFile) => {
832
832
  const config = getConfig(configFile);
833
- const storage = new Storage(config);
833
+ const storage = new Storage(config, logger);
834
834
  await storage.init(config);
835
835
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
836
836
  const owner = 'fooUser';
@@ -860,7 +860,7 @@ describe('storage', () => {
860
860
  'should fail publishing as non-owner with check %s, %s',
861
861
  async (pkgName, configFile) => {
862
862
  const config = getConfig(configFile);
863
- const storage = new Storage(config);
863
+ const storage = new Storage(config, logger);
864
864
  await storage.init(config);
865
865
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
866
866
  const owner = 'fooUser';
@@ -898,7 +898,7 @@ describe('storage', () => {
898
898
  storage: generateRandomStorage(),
899
899
  })
900
900
  );
901
- const storage = new Storage(config);
901
+ const storage = new Storage(config, logger);
902
902
  storage.init(config).then(() => {
903
903
  const ac = new AbortController();
904
904
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
@@ -938,7 +938,7 @@ describe('storage', () => {
938
938
  storage: generateRandomStorage(),
939
939
  })
940
940
  );
941
- const storage = new Storage(config);
941
+ const storage = new Storage(config, logger);
942
942
  storage.init(config).then(() => {
943
943
  const abort = new AbortController();
944
944
  storage
@@ -978,7 +978,7 @@ describe('storage', () => {
978
978
  __dirname
979
979
  )
980
980
  );
981
- const storage = new Storage(config);
981
+ const storage = new Storage(config, logger);
982
982
  storage.init(config).then(() => {
983
983
  const abort = new AbortController();
984
984
  storage
@@ -1022,7 +1022,7 @@ describe('storage', () => {
1022
1022
  __dirname
1023
1023
  )
1024
1024
  );
1025
- const storage = new Storage(config);
1025
+ const storage = new Storage(config, logger);
1026
1026
  storage.init(config).then(() => {
1027
1027
  const ac = new AbortController();
1028
1028
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
@@ -1086,7 +1086,7 @@ describe('storage', () => {
1086
1086
  __dirname
1087
1087
  )
1088
1088
  );
1089
- const storage = new Storage(config);
1089
+ const storage = new Storage(config, logger);
1090
1090
  storage.init(config).then(() => {
1091
1091
  const req = httpMocks.createRequest({
1092
1092
  method: 'GET',
@@ -1139,7 +1139,7 @@ describe('storage', () => {
1139
1139
  __dirname
1140
1140
  )
1141
1141
  );
1142
- const storage = new Storage(config);
1142
+ const storage = new Storage(config, logger);
1143
1143
  storage.init(config).then(() => {
1144
1144
  const ac = new AbortController();
1145
1145
  const bodyNewManifest = generatePackageMetadata(pkgName, '1.0.0');
@@ -1196,7 +1196,7 @@ describe('storage', () => {
1196
1196
  )
1197
1197
  );
1198
1198
 
1199
- const storage = new Storage(config);
1199
+ const storage = new Storage(config, logger);
1200
1200
  await storage.init(config);
1201
1201
  await expect(
1202
1202
  storage.syncUplinksMetadata(fooManifest.name, null, {
@@ -1220,7 +1220,7 @@ describe('storage', () => {
1220
1220
  __dirname
1221
1221
  )
1222
1222
  );
1223
- const storage = new Storage(config);
1223
+ const storage = new Storage(config, logger);
1224
1224
  await storage.init(config);
1225
1225
  await expect(
1226
1226
  storage.syncUplinksMetadata(fooManifest.name, null, {
@@ -1241,7 +1241,7 @@ describe('storage', () => {
1241
1241
  __dirname
1242
1242
  )
1243
1243
  );
1244
- const storage = new Storage(config);
1244
+ const storage = new Storage(config, logger);
1245
1245
  await storage.init(config);
1246
1246
  const [manifest] = await storage.syncUplinksMetadata(fooManifest.name, fooManifest, {
1247
1247
  retry: { limit: 0 },
@@ -1263,7 +1263,7 @@ describe('storage', () => {
1263
1263
  __dirname
1264
1264
  )
1265
1265
  );
1266
- const storage = new Storage(config);
1266
+ const storage = new Storage(config, logger);
1267
1267
  await storage.init(config);
1268
1268
 
1269
1269
  const [response] = await storage.syncUplinksMetadata(fooManifest.name, fooManifest);
@@ -1304,7 +1304,7 @@ describe('storage', () => {
1304
1304
  __dirname
1305
1305
  )
1306
1306
  );
1307
- const storage = new Storage(config);
1307
+ const storage = new Storage(config, logger);
1308
1308
  await storage.init(config);
1309
1309
 
1310
1310
  const [response] = await storage.syncUplinksMetadata(fooManifest.name, null);
@@ -1326,7 +1326,7 @@ describe('storage', () => {
1326
1326
  __dirname
1327
1327
  )
1328
1328
  );
1329
- const storage = new Storage(config);
1329
+ const storage = new Storage(config, logger);
1330
1330
  await storage.init(config);
1331
1331
 
1332
1332
  const [response] = await storage.syncUplinksMetadata(fooManifest.name, fooManifest);
@@ -1350,7 +1350,7 @@ describe('storage', () => {
1350
1350
  __dirname
1351
1351
  )
1352
1352
  );
1353
- const storage = new Storage(config);
1353
+ const storage = new Storage(config, logger);
1354
1354
  await storage.init(config);
1355
1355
 
1356
1356
  const [response] = await storage.syncUplinksMetadata(fooManifest.name, fooManifest, {
@@ -1379,7 +1379,7 @@ describe('storage', () => {
1379
1379
  __dirname
1380
1380
  )
1381
1381
  );
1382
- const storage = new Storage(config);
1382
+ const storage = new Storage(config, logger);
1383
1383
  await storage.init(config);
1384
1384
 
1385
1385
  const [response] = await storage.syncUplinksMetadata('foo', null, {
@@ -1400,7 +1400,7 @@ describe('storage', () => {
1400
1400
  storage: generateRandomStorage(),
1401
1401
  })
1402
1402
  );
1403
- const storage = new Storage(config);
1403
+ const storage = new Storage(config, logger);
1404
1404
  await storage.init(config);
1405
1405
  await expect(storage.getLocalDatabase()).resolves.toHaveLength(0);
1406
1406
  });
@@ -1420,7 +1420,7 @@ describe('storage', () => {
1420
1420
  },
1421
1421
  url: '/',
1422
1422
  });
1423
- const storage = new Storage(config);
1423
+ const storage = new Storage(config, logger);
1424
1424
  await storage.init(config);
1425
1425
  const manifest = generatePackageMetadata('foo');
1426
1426
  const ac = new AbortController();
@@ -1449,7 +1449,7 @@ describe('storage', () => {
1449
1449
  storage: generateRandomStorage(),
1450
1450
  })
1451
1451
  );
1452
- const storage = new Storage(config);
1452
+ const storage = new Storage(config, logger);
1453
1453
  await storage.init(config);
1454
1454
  await storage.saveToken({
1455
1455
  user: 'foo',
@@ -1471,7 +1471,7 @@ describe('storage', () => {
1471
1471
  storage: generateRandomStorage(),
1472
1472
  })
1473
1473
  );
1474
- const storage = new Storage(config);
1474
+ const storage = new Storage(config, logger);
1475
1475
  await storage.init(config);
1476
1476
  await storage.saveToken({
1477
1477
  user: 'foo',
@@ -1498,7 +1498,7 @@ describe('storage', () => {
1498
1498
  storage: generateRandomStorage(),
1499
1499
  })
1500
1500
  );
1501
- const storage = new Storage(config);
1501
+ const storage = new Storage(config, logger);
1502
1502
  await storage.init(config);
1503
1503
  await expect(storage.removeTarball('foo', 'foo-1.0.0.tgz', 'rev', username)).rejects.toThrow(
1504
1504
  API_ERROR.NO_PACKAGE
@@ -1524,7 +1524,7 @@ describe('storage', () => {
1524
1524
  },
1525
1525
  url: '/',
1526
1526
  });
1527
- const storage = new Storage(config);
1527
+ const storage = new Storage(config, logger);
1528
1528
  await storage.init(config);
1529
1529
 
1530
1530
  const manifest = generatePackageMetadata('foo');
@@ -1573,7 +1573,7 @@ describe('storage', () => {
1573
1573
 
1574
1574
  test('ok to remove package as non-owner without check', async () => {
1575
1575
  const config = getConfig('publishWithOwnerDefault.yaml');
1576
- const storage = new Storage(config);
1576
+ const storage = new Storage(config, logger);
1577
1577
  await storage.init(config);
1578
1578
  const owner = 'fooUser';
1579
1579
  const options = { ...defaultRequestOptions, username: owner };
@@ -1612,7 +1612,7 @@ describe('storage', () => {
1612
1612
 
1613
1613
  test('should fail as non-owner with check', async () => {
1614
1614
  const config = getConfig('publishWithOwnerAndCheck.yaml');
1615
- const storage = new Storage(config);
1615
+ const storage = new Storage(config, logger);
1616
1616
  await storage.init(config);
1617
1617
  const owner = 'fooUser';
1618
1618
  const options = { ...defaultRequestOptions, username: owner };
@@ -1661,7 +1661,7 @@ describe('storage', () => {
1661
1661
  },
1662
1662
  url: '/',
1663
1663
  });
1664
- const storage = new Storage(config);
1664
+ const storage = new Storage(config, logger);
1665
1665
  await storage.init(config);
1666
1666
  await expect(
1667
1667
  storage.getPackageByOptions({
@@ -1693,7 +1693,7 @@ describe('storage', () => {
1693
1693
  },
1694
1694
  url: '/',
1695
1695
  });
1696
- const storage = new Storage(config);
1696
+ const storage = new Storage(config, logger);
1697
1697
  await storage.init(config);
1698
1698
  await expect(
1699
1699
  storage.getPackageByOptions({
@@ -1726,7 +1726,7 @@ describe('storage', () => {
1726
1726
  },
1727
1727
  url: '/',
1728
1728
  });
1729
- const storage = new Storage(config);
1729
+ const storage = new Storage(config, logger);
1730
1730
  await storage.init(config);
1731
1731
  await expect(
1732
1732
  storage.getPackageByOptions({
@@ -1759,7 +1759,7 @@ describe('storage', () => {
1759
1759
  },
1760
1760
  url: '/',
1761
1761
  });
1762
- const storage = new Storage(config);
1762
+ const storage = new Storage(config, logger);
1763
1763
  await storage.init(config);
1764
1764
  await expect(
1765
1765
  storage.getPackageByOptions({
@@ -1799,7 +1799,7 @@ describe('storage', () => {
1799
1799
  },
1800
1800
  url: '/',
1801
1801
  });
1802
- const storage = new Storage(config);
1802
+ const storage = new Storage(config, logger);
1803
1803
  await storage.init(config);
1804
1804
  await expect(
1805
1805
  storage.getPackageByOptions({
@@ -1839,7 +1839,7 @@ describe('storage', () => {
1839
1839
  },
1840
1840
  url: '/',
1841
1841
  });
1842
- const storage = new Storage(config);
1842
+ const storage = new Storage(config, logger);
1843
1843
  await storage.init(config);
1844
1844
  await expect(
1845
1845
  storage.getPackageByOptions({
@@ -1873,7 +1873,7 @@ describe('storage', () => {
1873
1873
  },
1874
1874
  url: '/',
1875
1875
  });
1876
- const storage = new Storage(config);
1876
+ const storage = new Storage(config, logger);
1877
1877
  await storage.init(config);
1878
1878
 
1879
1879
  const manifest = (await storage.getPackageByOptions({