@jayxuz/verdaccio-offline-storage 3.0.0 → 3.1.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/README.md CHANGED
@@ -25,6 +25,12 @@ This is an improved fork of the original `verdaccio-offline-storage` plugin. Key
25
25
  - **Graceful Degradation**: Better error handling that doesn't break the entire request on partial failures
26
26
  - **Detailed Logging**: More informative debug and trace logs for troubleshooting
27
27
 
28
+ ### Metadata Operation Tracking (New in v3.1.0)
29
+ - **savePackage Override**: Tracks metadata save operations with detailed logging (version count, dist-tags, latest version)
30
+ - **updatePackage Override**: Monitors metadata update flow with before/after version tracking
31
+ - **Improved Offline Detection**: Enhanced `readPackage` logic with better null safety for `getMatchedPackagesSpec`
32
+ - **Storage Path Logging**: `getPackageStorage` now logs package storage path creation for debugging
33
+
28
34
  ### Code Quality
29
35
  - **Modern JavaScript**: ES2020+ features, async/await, optional chaining
30
36
  - **Type Definitions**: Full TypeScript type definitions included
package/README.zh-CN.md CHANGED
@@ -25,6 +25,12 @@
25
25
  - **优雅降级**:更好的错误处理,部分失败不会导致整个请求失败
26
26
  - **详细日志**:更丰富的 debug 和 trace 日志,便于故障排查
27
27
 
28
+ ### 元数据操作追踪(v3.1.0 新增)
29
+ - **savePackage 重写**:追踪元数据保存操作,记录详细日志(版本数量、dist-tags、最新版本)
30
+ - **updatePackage 重写**:监控元数据更新流程,记录更新前后的版本变化
31
+ - **改进的离线检测**:增强 `readPackage` 逻辑,改进 `getMatchedPackagesSpec` 的空值安全处理
32
+ - **存储路径日志**:`getPackageStorage` 现在记录包存储路径创建信息,便于调试
33
+
28
34
  ### 代码质量
29
35
  - **现代 JavaScript**:ES2020+ 特性、async/await、可选链
30
36
  - **类型定义**:包含完整的 TypeScript 类型定义
@@ -1,4 +1,4 @@
1
- import { Logger, Callback } from '@verdaccio/types';
1
+ import { Logger, Manifest, Callback } from '@verdaccio/types';
2
2
  import { OfflineStorageConfig } from './types';
3
3
  declare let LocalFS: any;
4
4
  /**
@@ -12,6 +12,16 @@ export declare class OfflinePackageStorage extends LocalFS {
12
12
  private config;
13
13
  protected logger: Logger;
14
14
  constructor(path: string, logger: Logger, config: OfflineStorageConfig);
15
+ /**
16
+ * 保存包元数据到本地文件
17
+ * 重写此方法以添加调试日志,跟踪元数据保存操作
18
+ */
19
+ savePackage(name: string, value: Manifest, cb: Callback): void;
20
+ /**
21
+ * 更新包元数据
22
+ * 重写此方法以添加调试日志,跟踪元数据更新流程
23
+ */
24
+ updatePackage(name: string, updateHandler: (data: Manifest, cb: Callback) => void, onWrite: (name: string, data: Manifest, cb: Callback) => void, transformPackage: (data: Manifest) => Manifest, onEnd: Callback): void;
15
25
  /**
16
26
  * Computes a package's definition that only lists the locally available versions.
17
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OfflinePackageStorage.d.ts","sourceRoot":"","sources":["../src/OfflinePackageStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAI/C,QAAA,IAAI,OAAO,EAAE,GAAG,CAAC;AAejB;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,OAAO,CAAC,MAAM,CAAuB;IACrC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAMtE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;CAqG9C"}
1
+ {"version":3,"file":"OfflinePackageStorage.d.ts","sourceRoot":"","sources":["../src/OfflinePackageStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAI/C,QAAA,IAAI,OAAO,EAAE,GAAG,CAAC;AAejB;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,OAAO,CAAC,MAAM,CAAuB;IACrC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAYtE;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAgC9D;;;OAGG;IACH,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EACrD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EAC7D,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,EAC9C,KAAK,EAAE,QAAQ,GACd,IAAI;IAgDP;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;CAuH9C"}
@@ -37,16 +37,86 @@ class OfflinePackageStorage extends LocalFS {
37
37
  super(path, logger);
38
38
  this.config = config;
39
39
  this.logger = logger;
40
+ // 添加构造函数日志,确认插件被加载
41
+ this.logger.warn({ path }, '[verdaccio-offline-storage] OfflinePackageStorage initialized for path: @{path}');
42
+ }
43
+ /**
44
+ * 保存包元数据到本地文件
45
+ * 重写此方法以添加调试日志,跟踪元数据保存操作
46
+ */
47
+ savePackage(name, value, cb) {
48
+ const versionCount = Object.keys(value.versions || {}).length;
49
+ const distTags = value['dist-tags'] || {};
50
+ // 使用 warn 级别确保日志可见
51
+ this.logger.warn({
52
+ packageName: name,
53
+ versions: versionCount,
54
+ latest: distTags.latest,
55
+ tags: Object.keys(distTags).join(', ')
56
+ }, '[verdaccio-offline-storage/savePackage] Saving package @{packageName} with @{versions} versions, latest: @{latest}, tags: @{tags}');
57
+ // 调用父类方法保存元数据
58
+ super.savePackage(name, value, (err) => {
59
+ if (err) {
60
+ this.logger.error({ packageName: name, error: err.message }, '[verdaccio-offline-storage/savePackage] Failed to save package @{packageName}: @{error}');
61
+ }
62
+ else {
63
+ this.logger.info({ packageName: name }, '[verdaccio-offline-storage/savePackage] Successfully saved package @{packageName}');
64
+ }
65
+ cb(err);
66
+ });
67
+ }
68
+ /**
69
+ * 更新包元数据
70
+ * 重写此方法以添加调试日志,跟踪元数据更新流程
71
+ */
72
+ updatePackage(name, updateHandler, onWrite, transformPackage, onEnd) {
73
+ // 使用 warn 级别确保日志可见
74
+ this.logger.warn({ packageName: name }, '[verdaccio-offline-storage/updatePackage] Starting update for package @{packageName}');
75
+ super.updatePackage(name, (data, cb) => {
76
+ const beforeVersions = Object.keys(data.versions || {}).length;
77
+ this.logger.debug({ packageName: name, versions: beforeVersions }, '[verdaccio-offline-storage/updatePackage] Before update: @{packageName} has @{versions} versions');
78
+ updateHandler(data, cb);
79
+ }, (pkgName, data, cb) => {
80
+ const versionCount = Object.keys(data.versions || {}).length;
81
+ const distTags = data['dist-tags'] || {};
82
+ this.logger.info({
83
+ packageName: pkgName,
84
+ versions: versionCount,
85
+ latest: distTags.latest
86
+ }, '[verdaccio-offline-storage/updatePackage] Writing package @{packageName} with @{versions} versions, latest: @{latest}');
87
+ onWrite(pkgName, data, cb);
88
+ }, transformPackage, (err) => {
89
+ if (err) {
90
+ this.logger.error({ packageName: name, error: err?.message || err }, '[verdaccio-offline-storage/updatePackage] Update failed for @{packageName}: @{error}');
91
+ }
92
+ else {
93
+ this.logger.info({ packageName: name }, '[verdaccio-offline-storage/updatePackage] Update completed for @{packageName}');
94
+ }
95
+ onEnd(err);
96
+ });
40
97
  }
41
98
  /**
42
99
  * Computes a package's definition that only lists the locally available versions.
43
100
  */
44
101
  readPackage(name, cb) {
45
- const packageAccess = this.config.getMatchedPackagesSpec
46
- ? this.config.getMatchedPackagesSpec(name)
47
- : { proxy: [] };
48
- // It's offline if set explicitly in the config or if no proxy is defined for the package
49
- const offline = this.config.offline || !packageAccess?.proxy || packageAccess.proxy.length === 0;
102
+ // 尝试获取包的访问配置
103
+ let packageAccess = { proxy: [] };
104
+ const hasGetMatchedPackagesSpec = typeof this.config.getMatchedPackagesSpec === 'function';
105
+ if (hasGetMatchedPackagesSpec) {
106
+ packageAccess = this.config.getMatchedPackagesSpec(name) || { proxy: [] };
107
+ }
108
+ // 判断是否为 offline 模式
109
+ const hasProxy = packageAccess?.proxy && packageAccess.proxy.length > 0;
110
+ const offline = this.config.offline === true || !hasProxy;
111
+ // 添加详细的调试日志
112
+ this.logger.debug({
113
+ packageName: name,
114
+ offline,
115
+ hasProxy,
116
+ configOffline: this.config.offline,
117
+ hasGetMatchedPackagesSpec,
118
+ proxy: packageAccess?.proxy ? JSON.stringify(packageAccess.proxy) : 'undefined'
119
+ }, '[verdaccio-offline-storage/readPackage] Package @{packageName} mode check: offline=@{offline}, hasProxy=@{hasProxy}, configOffline=@{configOffline}, hasGetMatchedPackagesSpec=@{hasGetMatchedPackagesSpec}');
50
120
  if (!offline) {
51
121
  this.logger.debug({ packageName: name }, '[verdaccio-offline-storage/readPackage] Resolving package @{packageName} in online mode');
52
122
  super.readPackage(name, cb);
@@ -1 +1 @@
1
- {"version":3,"file":"OfflinePackageStorage.js","sourceRoot":"","sources":["../src/OfflinePackageStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OfflinePackageStorage.js","sourceRoot":"","sources":["../src/OfflinePackageStorage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineStoragePlugin.d.ts","sourceRoot":"","sources":["../src/OfflineStoragePlugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI9D,QAAA,IAAI,aAAa,EAAE,GAAG,CAAC;AAgBvB;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,aAAa;IAC7D,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;gBAEvB,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,aAAa;IAmBhE;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA+C7B;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,cAAc;CAInE"}
1
+ {"version":3,"file":"OfflineStoragePlugin.d.ts","sourceRoot":"","sources":["../src/OfflineStoragePlugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI9D,QAAA,IAAI,aAAa,EAAE,GAAG,CAAC;AAgBvB;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,aAAa;IAC7D,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;gBAEvB,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,aAAa;IAmBhE;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA+C7B;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,cAAc;CAUnE"}
@@ -79,6 +79,7 @@ class OfflineStoragePlugin extends LocalDatabase {
79
79
  */
80
80
  getPackageStorage(packageName) {
81
81
  const storagePath = (0, path_1.join)(this.config.storage, packageName);
82
+ this.logger.warn({ packageName, storagePath }, '[verdaccio-offline-storage/getPackageStorage] Creating storage for package @{packageName} at @{storagePath}');
82
83
  return new OfflinePackageStorage_1.OfflinePackageStorage(storagePath, this.logger, this.config);
83
84
  }
84
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineStoragePlugin.js","sourceRoot":"","sources":["../src/OfflineStoragePlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OfflineStoragePlugin.js","sourceRoot":"","sources":["../src/OfflineStoragePlugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jayxuz/verdaccio-offline-storage",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Verdaccio storage plugin that treats local package cache as first class citizen for offline environments",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -39,7 +39,7 @@
39
39
  "node": ">=18.0.0"
40
40
  },
41
41
  "license": "MIT",
42
- "repository": "https://github.com/g3ngar/verdaccio-offline-storage",
43
- "author": "g3ngar <gengar@nauta.cu>",
44
- "homepage": "https://github.com/g3ngar/verdaccio-offline-storage"
42
+ "repository": "https://github.com/jayxuz/verdaccio-offline-sync/packages/verdaccio-offline-storage",
43
+ "author": "jayxuz",
44
+ "homepage": "https://github.com/jayxuz/verdaccio-offline-sync/packages/verdaccio-offline-storage"
45
45
  }
@@ -1,122 +0,0 @@
1
- import { readdir } from 'fs';
2
- import { basename } from 'path';
3
- import cmp from 'semver-compare';
4
- import LocalFS from '@verdaccio/local-storage/lib/local-fs';
5
-
6
- /**
7
- * `IPackageStorage` used internally for packages I/O operations.
8
- *
9
- * This works just like the `IPackageStorage` used by the local-storage plugin but modifying
10
- * the packages definition files (the local-storage `package.json` files) so only the locally
11
- * available versions appears in the definition. This does **NOT** modifies the original
12
- * `package.json` file stored in the local-storage cache, meaning that all the modifications are
13
- * done on the fly, on demand and in memory.
14
- *
15
- * @see https://verdaccio.org/docs/en/plugin-storage#api
16
- * @see https://github.com/verdaccio/monorepo/tree/master/plugins/local-storage
17
- */
18
- export default class OfflinePackageStorage extends LocalFS {
19
- constructor(path, logger, config) {
20
- super(path, logger);
21
- this.config = config;
22
- }
23
- /**
24
- * Computes a package's definition that only lists the locally available versions.
25
- *
26
- * @param {string} name Package name.
27
- * @param cb Callback to invoke with the computed definition.
28
- */
29
- readPackage(name, cb) {
30
- const packageAccess = this.config.getMatchedPackagesSpec(name);
31
- // It's offline if set explicitly in the config or if no proxy is defined for the package
32
- const offline = this.config.offline || !packageAccess.proxy || !packageAccess.proxy.length;
33
- if (!offline) {
34
- this.logger.trace(
35
- {
36
- packageName: name,
37
- },
38
- '[verdaccio-offline-storage/readPackage] Resolving package @{packageName} in online mode'
39
- );
40
- super.readPackage(name, cb);
41
- return;
42
- }
43
- this.logger.trace(
44
- {
45
- packageName: name,
46
- },
47
- '[verdaccio-offline-storage/readPackage] Resolving package @{packageName} in offline mode'
48
- );
49
- super.readPackage(name, (err, data) => {
50
- if (err) {
51
- cb(err);
52
- } else {
53
- this.logger.trace(
54
- {
55
- packageName: name,
56
- },
57
- '[verdaccio-offline-storage/readPackage] Discovering local versions for package: @{packageName}'
58
- );
59
- readdir(this.path, (err, items) => {
60
- if (err) {
61
- this.logger.trace(
62
- {
63
- err,
64
- packageName: name,
65
- },
66
- '[verdaccio-offline-storage/readPackage/readdir] Error discovering package "@{packageName}" files: @{err}'
67
- );
68
- cb(err);
69
- } else {
70
- const localVersions = items
71
- .filter(item => item.endsWith('.tgz'))
72
- .map(item => item.substring(basename(name).length + 1, item.length - 4));
73
- this.logger.trace(
74
- {
75
- packageName: name,
76
- count: localVersions.length,
77
- },
78
- '[verdaccio-offline-storage/readPackage/readdir] Discovered @{count} items for package: @{packageName}'
79
- );
80
- const allVersions = Object.keys(data.versions);
81
- const originalVersionCount = allVersions.length;
82
- this.logger.trace(
83
- {
84
- packageName: name,
85
- count: originalVersionCount,
86
- },
87
- '[verdaccio-offline-storage/readPackage/readdir] Analyzing @{count} declared versions for package: @{packageName}'
88
- );
89
- for (const version of allVersions) {
90
- if (!localVersions.includes(version)) {
91
- delete data.versions[version];
92
- this.logger.trace(
93
- {
94
- packageName: name,
95
- version,
96
- },
97
- '[verdaccio-offline-storage/readPackage/readdir] Removed @{packageName}@@{version}'
98
- );
99
- }
100
- }
101
- this.logger.trace(
102
- {
103
- packageName: name,
104
- count: originalVersionCount - Object.keys(data.versions).length,
105
- },
106
- '[verdaccio-offline-storage/readPackage/readdir] Removed @{count} versions for package: @{packageName}'
107
- );
108
- data['dist-tags'].latest = Object.keys(data.versions).sort((a, b) => cmp(b, a))[0];
109
- this.logger.trace(
110
- {
111
- packageName: name,
112
- latest: data['dist-tags'].latest,
113
- },
114
- '[verdaccio-offline-storage/readPackage/readdir] Set latest version to @{latest} for package: @{packageName}'
115
- );
116
- cb(null, data);
117
- }
118
- });
119
- }
120
- });
121
- }
122
- }
@@ -1,102 +0,0 @@
1
- import { join } from 'path';
2
- import { readdir } from 'fs';
3
- import LocalDatabase from '@verdaccio/local-storage';
4
- import OfflinePackageStorage from './OfflinePackageStorage';
5
-
6
- /**
7
- * Verdaccio storage plugin (`IPluginStorage`) that provides only the locally available versions of
8
- * packages cached in a local-storage storage.
9
- *
10
- * Basically, this is just like local-storage but modifying on the fly the available packages list
11
- * and the packages definitions without altering the original files in the local-storage storage.
12
- *
13
- * @see https://verdaccio.org/docs/en/plugin-storage
14
- * @see https://github.com/verdaccio/monorepo/tree/master/plugins/local-storage
15
- */
16
- export default class OfflineStoragePlugin extends LocalDatabase {
17
- constructor(config, options) {
18
- super(config, options.logger);
19
- // eslint-disable-next-line no-console
20
- if (config.offline) {
21
- options.logger.warn({}, 'Offline mode set explicitly in config. All packages will be resolved in offline mode.');
22
- } else {
23
- options.logger.warn(
24
- {},
25
- 'Offline mode NOT set explicitly in config. Only packages with no `proxy` will be resolved in offline mode.'
26
- );
27
- }
28
- }
29
-
30
- /**
31
- * Retrieves all the locally available packages names. Packages with no cached versions (only
32
- * `package.json` file in the directory) are ignored.
33
- *
34
- * @param callback: The callback to invoke with the found packages names.
35
- * @see https://verdaccio.org/docs/en/plugin-storage#api
36
- */
37
- get(callback) {
38
- const packages = [];
39
- this.search(
40
- (item, cb) => {
41
- this.logger.debug(
42
- {
43
- packageName: item.name,
44
- },
45
- '[verdaccio-offline-storage/get/search] discovering local versions for package: @{packageName}'
46
- );
47
- readdir(item.path, (err, items) => {
48
- if (err) {
49
- this.logger.trace(
50
- {
51
- err,
52
- packageName: item.name,
53
- },
54
- '[verdaccio-offline-storage/get/search/readdir] error discovering package "@{packageName}" files: @{err}'
55
- );
56
- cb(err);
57
- } else {
58
- if (items.find(item => item.endsWith('.tgz'))) {
59
- packages.push(item.name);
60
- this.logger.trace(
61
- {
62
- packageName: item.name,
63
- },
64
- '[verdaccio-offline-storage/get/search/readdir] found locally available package: "@{packageName}"'
65
- );
66
- } else {
67
- this.logger.trace(
68
- {
69
- packageName: item.name,
70
- },
71
- '[verdaccio-offline-storage/get/search/readdir] no locally available version found for package: "@{packageName}"'
72
- );
73
- }
74
- cb();
75
- }
76
- });
77
- },
78
- () => {
79
- this.data.list = packages;
80
- callback(null, packages);
81
- this.logger.trace(
82
- {
83
- totalItems: packages.length,
84
- },
85
- 'verdaccio-offline-storage: [get] full list of packages (@{totalItems}) has been fetched'
86
- );
87
- },
88
- name => !name.startsWith('.') // so `.{sinopia|verdaccio}-db.json` gets ignored
89
- );
90
- }
91
-
92
- /**
93
- * Returns the `IPackageStorage` used internally for packages I/O operations.
94
- *
95
- * @param {string} packageName Package name.
96
- * @return {OfflinePackageStorage}
97
- * @see https://verdaccio.org/docs/en/plugin-storage#api
98
- */
99
- getPackageStorage(packageName) {
100
- return new OfflinePackageStorage(join(this.config.storage, packageName), this.logger, this.config);
101
- }
102
- }
@@ -1,4 +0,0 @@
1
- /**
2
- * The verdaccio-offline-storage plugin entry point.
3
- */
4
- export { default } from './OfflineStoragePlugin';