cnpmcore 3.62.1 → 3.63.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 (43) hide show
  1. package/dist/app/common/PackageUtil.d.ts +1 -0
  2. package/dist/app/common/adapter/CacheAdapter.d.ts +1 -0
  3. package/dist/app/common/adapter/NPMRegistry.d.ts +1 -1
  4. package/dist/app/common/adapter/NPMRegistry.js +1 -1
  5. package/dist/app/common/constants.d.ts +3 -0
  6. package/dist/app/common/constants.js +5 -2
  7. package/dist/app/common/enum/Task.d.ts +1 -0
  8. package/dist/app/common/enum/Task.js +2 -1
  9. package/dist/app/core/entity/ProxyCache.d.ts +19 -0
  10. package/dist/app/core/entity/ProxyCache.js +30 -0
  11. package/dist/app/core/entity/Task.d.ts +14 -0
  12. package/dist/app/core/entity/Task.js +27 -1
  13. package/dist/app/core/event/CacheCleaner.d.ts +11 -11
  14. package/dist/app/core/event/CacheCleaner.js +46 -46
  15. package/dist/app/core/event/ChangesStream.d.ts +9 -9
  16. package/dist/app/core/event/ChangesStream.js +38 -38
  17. package/dist/app/core/event/StoreManifest.d.ts +1 -1
  18. package/dist/app/core/event/StoreManifest.js +6 -6
  19. package/dist/app/core/event/SyncESPackage.d.ts +2 -2
  20. package/dist/app/core/event/SyncESPackage.js +10 -10
  21. package/dist/app/core/event/SyncPackageVersionFile.d.ts +3 -3
  22. package/dist/app/core/event/SyncPackageVersionFile.js +14 -14
  23. package/dist/app/core/service/CacheService.d.ts +1 -0
  24. package/dist/app/core/service/ProxyCacheService.d.ts +33 -0
  25. package/dist/app/core/service/ProxyCacheService.js +264 -0
  26. package/dist/app/port/controller/ProxyCacheController.d.ts +22 -0
  27. package/dist/app/port/controller/ProxyCacheController.js +180 -0
  28. package/dist/app/port/controller/package/DownloadPackageVersionTar.d.ts +5 -0
  29. package/dist/app/port/controller/package/DownloadPackageVersionTar.js +52 -4
  30. package/dist/app/port/controller/package/ShowPackageController.d.ts +2 -0
  31. package/dist/app/port/controller/package/ShowPackageController.js +24 -6
  32. package/dist/app/port/controller/package/ShowPackageVersionController.d.ts +2 -1
  33. package/dist/app/port/controller/package/ShowPackageVersionController.js +24 -10
  34. package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.d.ts +7 -0
  35. package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.js +70 -0
  36. package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +2 -2
  37. package/dist/app/port/schedule/SyncProxyCacheWorker.d.ts +6 -0
  38. package/dist/app/port/schedule/SyncProxyCacheWorker.js +70 -0
  39. package/dist/app/repository/ProxyCacheRepository.d.ts +14 -0
  40. package/dist/app/repository/ProxyCacheRepository.js +75 -0
  41. package/dist/app/repository/model/ProxyCache.d.ts +11 -0
  42. package/dist/app/repository/model/ProxyCache.js +55 -0
  43. package/package.json +2 -1
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ProxyCacheService = exports.isPkgManifest = void 0;
13
+ const egg_errors_1 = require("egg-errors");
14
+ const tegg_1 = require("@eggjs/tegg");
15
+ const tegg_background_task_1 = require("@eggjs/tegg-background-task");
16
+ const semver_1 = require("semver");
17
+ const AbstractService_1 = require("../../common/AbstractService");
18
+ const TaskService_1 = require("./TaskService");
19
+ const CacheService_1 = require("./CacheService");
20
+ const RegistryManagerService_1 = require("./RegistryManagerService");
21
+ const NPMRegistry_1 = require("../../common/adapter/NPMRegistry");
22
+ const NFSAdapter_1 = require("../../common/adapter/NFSAdapter");
23
+ const ProxyCache_1 = require("../entity/ProxyCache");
24
+ const Task_1 = require("../entity/Task");
25
+ const ProxyCacheRepository_1 = require("../../repository/ProxyCacheRepository");
26
+ const Task_2 = require("../../common/enum/Task");
27
+ const PackageUtil_1 = require("../../common/PackageUtil");
28
+ const constants_1 = require("../../common/constants");
29
+ const Package_1 = require("../entity/Package");
30
+ function isoNow() {
31
+ return new Date().toISOString();
32
+ }
33
+ function isPkgManifest(fileType) {
34
+ return fileType === Package_1.DIST_NAMES.FULL_MANIFESTS || fileType === Package_1.DIST_NAMES.ABBREVIATED_MANIFESTS;
35
+ }
36
+ exports.isPkgManifest = isPkgManifest;
37
+ let ProxyCacheService = class ProxyCacheService extends AbstractService_1.AbstractService {
38
+ async getPackageVersionTarResponse(fullname, ctx) {
39
+ if (this.config.cnpmcore.syncPackageBlockList.includes(fullname)) {
40
+ throw new egg_errors_1.ForbiddenError(`stop proxy by block list: ${JSON.stringify(this.config.cnpmcore.syncPackageBlockList)}`);
41
+ }
42
+ return await this.getProxyResponse(ctx);
43
+ }
44
+ async getPackageManifest(fullname, fileType) {
45
+ const cachedStoreKey = (await this.proxyCacheRepository.findProxyCache(fullname, fileType))?.filePath;
46
+ if (cachedStoreKey) {
47
+ const nfsBytes = await this.nfsAdapter.getBytes(cachedStoreKey);
48
+ const nfsString = Buffer.from(nfsBytes).toString();
49
+ const nfsPkgManifgest = JSON.parse(nfsString);
50
+ return nfsPkgManifgest;
51
+ }
52
+ const manifest = await this.getRewrittenManifest(fullname, fileType);
53
+ this.backgroundTaskHelper.run(async () => {
54
+ await this.storeRewrittenManifest(manifest, fullname, fileType);
55
+ const cachedFiles = ProxyCache_1.ProxyCache.create({ fullname, fileType });
56
+ await this.proxyCacheRepository.saveProxyCache(cachedFiles);
57
+ });
58
+ return manifest;
59
+ }
60
+ // used by GET /:fullname/:versionOrTag
61
+ async getPackageVersionManifest(fullname, fileType, versionOrTag) {
62
+ let version;
63
+ if ((0, semver_1.valid)(versionOrTag)) {
64
+ version = versionOrTag;
65
+ }
66
+ else {
67
+ const pkgManifest = await this.getPackageManifest(fullname, Package_1.DIST_NAMES.ABBREVIATED_MANIFESTS);
68
+ const distTags = pkgManifest['dist-tags'] || {};
69
+ version = distTags[versionOrTag] ? distTags[versionOrTag] : versionOrTag;
70
+ }
71
+ const cachedStoreKey = (await this.proxyCacheRepository.findProxyCache(fullname, fileType, version))?.filePath;
72
+ if (cachedStoreKey) {
73
+ const nfsBytes = await this.nfsAdapter.getBytes(cachedStoreKey);
74
+ const nfsString = Buffer.from(nfsBytes).toString();
75
+ return JSON.parse(nfsString);
76
+ }
77
+ const manifest = await this.getRewrittenManifest(fullname, fileType, versionOrTag);
78
+ this.backgroundTaskHelper.run(async () => {
79
+ await this.storeRewrittenManifest(manifest, fullname, fileType);
80
+ const cachedFiles = ProxyCache_1.ProxyCache.create({ fullname, fileType, version });
81
+ await this.proxyCacheRepository.saveProxyCache(cachedFiles);
82
+ });
83
+ return manifest;
84
+ }
85
+ async removeProxyCache(fullname, fileType, version) {
86
+ const storeKey = isPkgManifest(fileType)
87
+ ? `/${constants_1.PROXY_CACHE_DIR_NAME}/${fullname}/${fileType}`
88
+ : `/${constants_1.PROXY_CACHE_DIR_NAME}/${fullname}/${version}/${fileType}`;
89
+ await this.nfsAdapter.remove(storeKey);
90
+ await this.proxyCacheRepository.removeProxyCache(fullname, fileType, version);
91
+ }
92
+ async createTask(targetName, options) {
93
+ return await this.taskService.createTask(Task_1.Task.createUpdateProxyCache(targetName, options), false);
94
+ }
95
+ async findExecuteTask() {
96
+ return await this.taskService.findExecuteTask(Task_2.TaskType.UpdateProxyCache);
97
+ }
98
+ async executeTask(task) {
99
+ const logs = [];
100
+ const fullname = task.data.fullname;
101
+ const { fileType, version } = task.data;
102
+ let cachedManifest;
103
+ logs.push(`[${isoNow()}] 🚧🚧🚧🚧🚧 Start update "${fullname}-${fileType}" 🚧🚧🚧🚧🚧`);
104
+ try {
105
+ const cachedFiles = await this.proxyCacheRepository.findProxyCache(fullname, fileType);
106
+ if (!cachedFiles)
107
+ throw new Error('task params error, can not found record in repo.');
108
+ cachedManifest = await this.getRewrittenManifest(fullname, fileType);
109
+ await this.storeRewrittenManifest(cachedManifest, fullname, fileType);
110
+ ProxyCache_1.ProxyCache.update(cachedFiles);
111
+ await this.proxyCacheRepository.saveProxyCache(cachedFiles);
112
+ }
113
+ catch (error) {
114
+ task.error = error;
115
+ logs.push(`[${isoNow()}] ❌ ${task.error}`);
116
+ logs.push(`[${isoNow()}] ❌❌❌❌❌ ${fullname}-${fileType} ${version ?? ''} ❌❌❌❌❌`);
117
+ await this.taskService.finishTask(task, Task_2.TaskState.Fail, logs.join('\n'));
118
+ this.logger.info('[ProxyCacheService.executeTask:fail] taskId: %s, targetName: %s, %s', task.taskId, task.targetName, task.error);
119
+ return;
120
+ }
121
+ logs.push(`[${isoNow()}] 🟢 Update Success.`);
122
+ const isFullManifests = fileType === Package_1.DIST_NAMES.FULL_MANIFESTS;
123
+ const cachedKey = await this.cacheService.getPackageEtag(fullname, isFullManifests);
124
+ if (cachedKey) {
125
+ const cacheBytes = Buffer.from(JSON.stringify(cachedManifest));
126
+ const { shasum: etag } = await (0, PackageUtil_1.calculateIntegrity)(cacheBytes);
127
+ await this.cacheService.savePackageEtagAndManifests(fullname, isFullManifests, etag, cacheBytes);
128
+ logs.push(`[${isoNow()}] 🟢 Update Cache Success.`);
129
+ }
130
+ await this.taskService.finishTask(task, Task_2.TaskState.Success, logs.join('\n'));
131
+ }
132
+ async getRewrittenManifest(fullname, fileType, versionOrTag) {
133
+ let responseResult;
134
+ switch (fileType) {
135
+ case Package_1.DIST_NAMES.FULL_MANIFESTS:
136
+ responseResult = await this.getUpstreamFullManifests(fullname);
137
+ break;
138
+ case Package_1.DIST_NAMES.ABBREVIATED_MANIFESTS:
139
+ responseResult = await this.getUpstreamAbbreviatedManifests(fullname);
140
+ break;
141
+ case Package_1.DIST_NAMES.MANIFEST:
142
+ responseResult = await this.getUpstreamPackageVersionManifest(fullname, versionOrTag);
143
+ break;
144
+ case Package_1.DIST_NAMES.ABBREVIATED:
145
+ responseResult = await this.getUpstreamAbbreviatedPackageVersionManifest(fullname, versionOrTag);
146
+ break;
147
+ default:
148
+ break;
149
+ }
150
+ // replace tarball url
151
+ const manifest = responseResult.data;
152
+ const { sourceRegistry, registry } = this.config.cnpmcore;
153
+ if (isPkgManifest(fileType)) {
154
+ // pkg manifest
155
+ const versionMap = manifest.versions || {};
156
+ for (const key in versionMap) {
157
+ const versionItem = versionMap[key];
158
+ if (versionItem?.dist?.tarball) {
159
+ versionItem.dist.tarball = versionItem.dist.tarball.replace(sourceRegistry, registry);
160
+ }
161
+ }
162
+ }
163
+ else {
164
+ // pkg version manifest
165
+ const distItem = manifest.dist || {};
166
+ if (distItem.tarball) {
167
+ distItem.tarball = distItem.tarball.replace(sourceRegistry, registry);
168
+ }
169
+ }
170
+ return manifest;
171
+ }
172
+ async storeRewrittenManifest(manifest, fullname, fileType) {
173
+ let storeKey;
174
+ if (isPkgManifest(fileType)) {
175
+ storeKey = `/${constants_1.PROXY_CACHE_DIR_NAME}/${fullname}/${fileType}`;
176
+ }
177
+ else {
178
+ const version = manifest.version;
179
+ storeKey = `/${constants_1.PROXY_CACHE_DIR_NAME}/${fullname}/${version}/${fileType}`;
180
+ }
181
+ const nfsBytes = Buffer.from(JSON.stringify(manifest));
182
+ await this.nfsAdapter.uploadBytes(storeKey, nfsBytes);
183
+ }
184
+ async getProxyResponse(ctx, options) {
185
+ const registry = this.npmRegistry.registry;
186
+ const remoteAuthToken = await this.registryManagerService.getAuthTokenByRegistryHost(registry);
187
+ const authorization = this.npmRegistry.genAuthorizationHeader(remoteAuthToken);
188
+ const url = `${this.npmRegistry.registry}${ctx.url}`;
189
+ const res = await this.httpclient.request(url, {
190
+ timing: true,
191
+ followRedirect: true,
192
+ // once redirection is also count as a retry
193
+ retry: 7,
194
+ dataType: 'stream',
195
+ timeout: 10000,
196
+ compressed: true,
197
+ ...options,
198
+ headers: {
199
+ accept: ctx.header?.accept,
200
+ 'user-agent': ctx.header?.['user-agent'],
201
+ authorization,
202
+ 'x-forwarded-for': ctx?.ip,
203
+ via: `1.1, ${this.config.cnpmcore.registry}`,
204
+ },
205
+ });
206
+ this.logger.info('[ProxyCacheService:getProxyStreamResponse] %s, status: %s', url, res.status);
207
+ return res;
208
+ }
209
+ async getUpstreamFullManifests(fullname) {
210
+ const url = `/${encodeURIComponent(fullname)}?t=${Date.now()}&cache=0`;
211
+ return await this.getProxyResponse({ url }, { dataType: 'json' });
212
+ }
213
+ async getUpstreamAbbreviatedManifests(fullname) {
214
+ const url = `/${encodeURIComponent(fullname)}?t=${Date.now()}&cache=0`;
215
+ return await this.getProxyResponse({ url, headers: { accept: constants_1.ABBREVIATED_META_TYPE } }, { dataType: 'json' });
216
+ }
217
+ async getUpstreamPackageVersionManifest(fullname, versionOrTag) {
218
+ const url = `/${encodeURIComponent(fullname)}/${encodeURIComponent(versionOrTag)}`;
219
+ return await this.getProxyResponse({ url }, { dataType: 'json' });
220
+ }
221
+ async getUpstreamAbbreviatedPackageVersionManifest(fullname, versionOrTag) {
222
+ const url = `/${encodeURIComponent(fullname)}/${encodeURIComponent(versionOrTag)}`;
223
+ return await this.getProxyResponse({ url, headers: { accept: constants_1.ABBREVIATED_META_TYPE } }, { dataType: 'json' });
224
+ }
225
+ };
226
+ exports.ProxyCacheService = ProxyCacheService;
227
+ __decorate([
228
+ (0, tegg_1.Inject)(),
229
+ __metadata("design:type", Object)
230
+ ], ProxyCacheService.prototype, "httpclient", void 0);
231
+ __decorate([
232
+ (0, tegg_1.Inject)(),
233
+ __metadata("design:type", NPMRegistry_1.NPMRegistry)
234
+ ], ProxyCacheService.prototype, "npmRegistry", void 0);
235
+ __decorate([
236
+ (0, tegg_1.Inject)(),
237
+ __metadata("design:type", NFSAdapter_1.NFSAdapter)
238
+ ], ProxyCacheService.prototype, "nfsAdapter", void 0);
239
+ __decorate([
240
+ (0, tegg_1.Inject)(),
241
+ __metadata("design:type", ProxyCacheRepository_1.ProxyCacheRepository)
242
+ ], ProxyCacheService.prototype, "proxyCacheRepository", void 0);
243
+ __decorate([
244
+ (0, tegg_1.Inject)(),
245
+ __metadata("design:type", RegistryManagerService_1.RegistryManagerService)
246
+ ], ProxyCacheService.prototype, "registryManagerService", void 0);
247
+ __decorate([
248
+ (0, tegg_1.Inject)(),
249
+ __metadata("design:type", TaskService_1.TaskService)
250
+ ], ProxyCacheService.prototype, "taskService", void 0);
251
+ __decorate([
252
+ (0, tegg_1.Inject)(),
253
+ __metadata("design:type", CacheService_1.CacheService)
254
+ ], ProxyCacheService.prototype, "cacheService", void 0);
255
+ __decorate([
256
+ (0, tegg_1.Inject)(),
257
+ __metadata("design:type", tegg_background_task_1.BackgroundTaskHelper)
258
+ ], ProxyCacheService.prototype, "backgroundTaskHelper", void 0);
259
+ exports.ProxyCacheService = ProxyCacheService = __decorate([
260
+ (0, tegg_1.SingletonProto)({
261
+ accessLevel: tegg_1.AccessLevel.PUBLIC,
262
+ })
263
+ ], ProxyCacheService);
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJveHlDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9zZXJ2aWNlL1Byb3h5Q2FjaGVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLDJDQUE0QztBQUM1QyxzQ0FBOEU7QUFDOUUsc0VBQW1FO0FBQ25FLG1DQUE4QztBQUM5QyxrRUFBK0Q7QUFDL0QsK0NBQTRDO0FBQzVDLGlEQUE4QztBQUM5QyxxRUFBa0U7QUFDbEUsa0VBQStEO0FBQy9ELGdFQUE2RDtBQUM3RCxxREFBa0Q7QUFDbEQseUNBQStGO0FBQy9GLGdGQUE2RTtBQUM3RSxpREFBNkQ7QUFDN0QsMERBQThEO0FBQzlELHNEQUFxRjtBQUNyRiwrQ0FBK0M7QUFHL0MsU0FBUyxNQUFNO0lBQ2IsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsUUFBb0I7SUFDaEQsT0FBTyxRQUFRLEtBQUssb0JBQVUsQ0FBQyxjQUFjLElBQUksUUFBUSxLQUFLLG9CQUFVLENBQUMscUJBQXFCLENBQUM7QUFDakcsQ0FBQztBQUZELHNDQUVDO0FBU00sSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxpQ0FBZTtJQWtCcEQsS0FBSyxDQUFDLDRCQUE0QixDQUFDLFFBQWdCLEVBQUUsR0FBZTtRQUNsRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoRSxNQUFNLElBQUksMkJBQWMsQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNwSDtRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FB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
@@ -0,0 +1,22 @@
1
+ import { EggContext } from '@eggjs/tegg';
2
+ import { AbstractController } from './AbstractController';
3
+ import { Static } from 'egg-typebox-validate/typebox';
4
+ import { QueryPageOptions } from '../typebox';
5
+ export declare class ProxyCacheController extends AbstractController {
6
+ private readonly proxyCacheRepository;
7
+ private readonly proxyCacheService;
8
+ private readonly nfsAdapter;
9
+ listProxyCache(pageSize: Static<typeof QueryPageOptions>['pageSize'], pageIndex: Static<typeof QueryPageOptions>['pageIndex']): Promise<import("../../core/util/EntityUtil").PageResult<import("../../core/entity/ProxyCache").ProxyCache>>;
10
+ showProxyCaches(pageSize: Static<typeof QueryPageOptions>['pageSize'], pageIndex: Static<typeof QueryPageOptions>['pageIndex'], fullname: string): Promise<import("../../core/util/EntityUtil").PageResult<import("../../core/entity/ProxyCache").ProxyCache>>;
11
+ refreshProxyCaches(fullname: string): Promise<{
12
+ ok: boolean;
13
+ tasks: import("../../core/entity/Task").CreateUpdateProxyCacheTask[];
14
+ }>;
15
+ removeProxyCaches(ctx: EggContext, fullname: string): Promise<{
16
+ ok: boolean;
17
+ result: import("leoric").Collection<import("../../repository/model/ProxyCache").ProxyCache>;
18
+ }>;
19
+ truncateProxyCaches(ctx: EggContext): Promise<{
20
+ ok: boolean;
21
+ }>;
22
+ }
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProxyCacheController = void 0;
16
+ const tegg_1 = require("@eggjs/tegg");
17
+ const egg_errors_1 = require("egg-errors");
18
+ const AbstractController_1 = require("./AbstractController");
19
+ const ProxyCacheRepository_1 = require("../../repository/ProxyCacheRepository");
20
+ const PackageUtil_1 = require("../../common/PackageUtil");
21
+ const ProxyCacheService_1 = require("../../core/service/ProxyCacheService");
22
+ const constants_1 = require("../../common/constants");
23
+ const NFSAdapter_1 = require("../../common/adapter/NFSAdapter");
24
+ let ProxyCacheController = class ProxyCacheController extends AbstractController_1.AbstractController {
25
+ async listProxyCache(pageSize, pageIndex) {
26
+ if (this.config.cnpmcore.syncMode !== constants_1.SyncMode.proxy) {
27
+ throw new egg_errors_1.ForbiddenError('proxy mode is not enabled');
28
+ }
29
+ return await this.proxyCacheRepository.listCachedFiles({
30
+ pageSize,
31
+ pageIndex,
32
+ });
33
+ }
34
+ async showProxyCaches(pageSize, pageIndex, fullname) {
35
+ if (this.config.cnpmcore.syncMode !== constants_1.SyncMode.proxy) {
36
+ throw new egg_errors_1.ForbiddenError('proxy mode is not enabled');
37
+ }
38
+ return await this.proxyCacheRepository.listCachedFiles({
39
+ pageSize,
40
+ pageIndex,
41
+ }, fullname);
42
+ }
43
+ async refreshProxyCaches(fullname) {
44
+ if (this.config.cnpmcore.syncMode !== constants_1.SyncMode.proxy) {
45
+ throw new egg_errors_1.ForbiddenError('proxy mode is not enabled');
46
+ }
47
+ const refreshList = await this.proxyCacheRepository.findProxyCaches(fullname);
48
+ if (refreshList.length === 0) {
49
+ throw new egg_errors_1.NotFoundError();
50
+ }
51
+ const taskList = refreshList
52
+ // 仅manifests需要更新,指定版本的package.json文件发布后不会改变
53
+ .filter(i => (0, ProxyCacheService_1.isPkgManifest)(i.fileType))
54
+ .map(async (item) => {
55
+ const task = await this.proxyCacheService.createTask(`${item.fullname}/${item.fileType}`, {
56
+ fullname: item.fullname,
57
+ fileType: item.fileType,
58
+ });
59
+ return task;
60
+ });
61
+ return {
62
+ ok: true,
63
+ tasks: await Promise.all(taskList),
64
+ };
65
+ }
66
+ async removeProxyCaches(ctx, fullname) {
67
+ const isAdmin = await this.userRoleManager.isAdmin(ctx);
68
+ if (!isAdmin) {
69
+ throw new egg_errors_1.UnauthorizedError('only admin can do this');
70
+ }
71
+ if (this.config.cnpmcore.syncMode !== constants_1.SyncMode.proxy) {
72
+ throw new egg_errors_1.ForbiddenError('proxy mode is not enabled');
73
+ }
74
+ const proxyCachesList = await this.proxyCacheRepository.findProxyCaches(fullname);
75
+ if (proxyCachesList.length === 0) {
76
+ throw new egg_errors_1.NotFoundError();
77
+ }
78
+ const removingList = proxyCachesList.map(item => {
79
+ return this.proxyCacheService.removeProxyCache(item.fullname, item.fileType, item.version);
80
+ });
81
+ await Promise.all(removingList);
82
+ return {
83
+ ok: true,
84
+ result: proxyCachesList,
85
+ };
86
+ }
87
+ async truncateProxyCaches(ctx) {
88
+ const isAdmin = await this.userRoleManager.isAdmin(ctx);
89
+ if (!isAdmin) {
90
+ throw new egg_errors_1.UnauthorizedError('only admin can do this');
91
+ }
92
+ if (this.config.cnpmcore.syncMode !== constants_1.SyncMode.proxy) {
93
+ throw new egg_errors_1.ForbiddenError('proxy mode is not enabled');
94
+ }
95
+ await this.proxyCacheRepository.truncateProxyCache();
96
+ // 尝试删除proxy cache目录,若失败可手动管理
97
+ ctx.runInBackground(async () => {
98
+ try {
99
+ await this.nfsAdapter.remove(`/${constants_1.PROXY_CACHE_DIR_NAME}`);
100
+ }
101
+ catch (err) {
102
+ this.logger.error('[ProxyCacheService.truncateProxyCaches] remove proxy cache dir error: %s', err);
103
+ }
104
+ });
105
+ return {
106
+ ok: true,
107
+ };
108
+ }
109
+ };
110
+ exports.ProxyCacheController = ProxyCacheController;
111
+ __decorate([
112
+ (0, tegg_1.Inject)(),
113
+ __metadata("design:type", ProxyCacheRepository_1.ProxyCacheRepository)
114
+ ], ProxyCacheController.prototype, "proxyCacheRepository", void 0);
115
+ __decorate([
116
+ (0, tegg_1.Inject)(),
117
+ __metadata("design:type", ProxyCacheService_1.ProxyCacheService)
118
+ ], ProxyCacheController.prototype, "proxyCacheService", void 0);
119
+ __decorate([
120
+ (0, tegg_1.Inject)(),
121
+ __metadata("design:type", NFSAdapter_1.NFSAdapter)
122
+ ], ProxyCacheController.prototype, "nfsAdapter", void 0);
123
+ __decorate([
124
+ (0, tegg_1.HTTPMethod)({
125
+ method: tegg_1.HTTPMethodEnum.GET,
126
+ path: '/-/proxy-cache',
127
+ }),
128
+ __param(0, (0, tegg_1.HTTPQuery)()),
129
+ __param(1, (0, tegg_1.HTTPQuery)()),
130
+ __metadata("design:type", Function),
131
+ __metadata("design:paramtypes", [Object, Object]),
132
+ __metadata("design:returntype", Promise)
133
+ ], ProxyCacheController.prototype, "listProxyCache", null);
134
+ __decorate([
135
+ (0, tegg_1.HTTPMethod)({
136
+ method: tegg_1.HTTPMethodEnum.GET,
137
+ path: `/-/proxy-cache/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})`,
138
+ }),
139
+ __param(0, (0, tegg_1.HTTPQuery)()),
140
+ __param(1, (0, tegg_1.HTTPQuery)()),
141
+ __param(2, (0, tegg_1.HTTPParam)()),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", [Object, Object, String]),
144
+ __metadata("design:returntype", Promise)
145
+ ], ProxyCacheController.prototype, "showProxyCaches", null);
146
+ __decorate([
147
+ (0, tegg_1.HTTPMethod)({
148
+ method: tegg_1.HTTPMethodEnum.PATCH,
149
+ path: `/-/proxy-cache/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})`,
150
+ }),
151
+ __param(0, (0, tegg_1.HTTPParam)()),
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [String]),
154
+ __metadata("design:returntype", Promise)
155
+ ], ProxyCacheController.prototype, "refreshProxyCaches", null);
156
+ __decorate([
157
+ (0, tegg_1.HTTPMethod)({
158
+ method: tegg_1.HTTPMethodEnum.DELETE,
159
+ path: `/-/proxy-cache/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})`,
160
+ }),
161
+ __param(0, (0, tegg_1.Context)()),
162
+ __param(1, (0, tegg_1.HTTPParam)()),
163
+ __metadata("design:type", Function),
164
+ __metadata("design:paramtypes", [Object, String]),
165
+ __metadata("design:returntype", Promise)
166
+ ], ProxyCacheController.prototype, "removeProxyCaches", null);
167
+ __decorate([
168
+ (0, tegg_1.HTTPMethod)({
169
+ method: tegg_1.HTTPMethodEnum.DELETE,
170
+ path: '/-/proxy-cache',
171
+ }),
172
+ __param(0, (0, tegg_1.Context)()),
173
+ __metadata("design:type", Function),
174
+ __metadata("design:paramtypes", [Object]),
175
+ __metadata("design:returntype", Promise)
176
+ ], ProxyCacheController.prototype, "truncateProxyCaches", null);
177
+ exports.ProxyCacheController = ProxyCacheController = __decorate([
178
+ (0, tegg_1.HTTPController)()
179
+ ], ProxyCacheController);
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJveHlDYWNoZUNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9jb250cm9sbGVyL1Byb3h5Q2FjaGVDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQVNxQjtBQUNyQiwyQ0FBOEU7QUFDOUUsNkRBQTBEO0FBQzFELGdGQUE2RTtBQUc3RSwwREFBK0Q7QUFDL0QsNEVBRzhDO0FBQzlDLHNEQUF3RTtBQUN4RSxnRUFBNkQ7QUFHdEQsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBcUIsU0FBUSx1Q0FBa0I7SUFZcEQsQUFBTixLQUFLLENBQUMsY0FBYyxDQUNMLFFBQXFELEVBQ3JELFNBQXVEO1FBRXBFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLG9CQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3BELE1BQU0sSUFBSSwyQkFBYyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDdkQ7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztZQUNyRCxRQUFRO1lBQ1IsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFNSyxBQUFOLEtBQUssQ0FBQyxlQUFlLENBQWMsUUFBcUQsRUFDM0UsU0FBdUQsRUFBZSxRQUFnQjtRQUNqRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxvQkFBUSxDQUFDLEtBQUssRUFBRTtZQUNwRCxNQUFNLElBQUksMkJBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUM7WUFDckQsUUFBUTtZQUNSLFNBQVM7U0FDVixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQU1LLEFBQU4sS0FBSyxDQUFDLGtCQUFrQixDQUFj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
@@ -1,10 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  import { EggContext } from '@eggjs/tegg';
3
3
  import { AbstractController } from '../AbstractController';
4
+ import { RegistryManagerService } from '../../../core/service/RegistryManagerService';
4
5
  export declare class DownloadPackageVersionTarController extends AbstractController {
5
6
  private packageManagerService;
7
+ registryManagerService: RegistryManagerService;
8
+ private proxyCacheService;
9
+ private packageSyncerService;
6
10
  private nfsAdapter;
7
11
  downloadForOptions(ctx: EggContext): Promise<void>;
8
12
  download(ctx: EggContext, fullname: string, filenameWithVersion: string): Promise<import("stream").Readable | undefined>;
9
13
  deprecatedDownload(ctx: EggContext, fullname: string, fullnameWithVersion: string): Promise<import("stream").Readable | undefined>;
14
+ private getTgzProxyStream;
10
15
  }
@@ -13,13 +13,17 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DownloadPackageVersionTarController = void 0;
16
+ const node_stream_1 = require("node:stream");
16
17
  const egg_errors_1 = require("egg-errors");
17
18
  const tegg_1 = require("@eggjs/tegg");
18
19
  const AbstractController_1 = require("../AbstractController");
19
20
  const PackageUtil_1 = require("../../../common/PackageUtil");
21
+ const constants_1 = require("../../../common/constants");
20
22
  const NFSAdapter_1 = require("../../../common/adapter/NFSAdapter");
21
23
  const PackageManagerService_1 = require("../../../core/service/PackageManagerService");
22
- const constants_1 = require("../../../common/constants");
24
+ const ProxyCacheService_1 = require("../../../core/service/ProxyCacheService");
25
+ const PackageSyncerService_1 = require("../../../core/service/PackageSyncerService");
26
+ const RegistryManagerService_1 = require("../../../core/service/RegistryManagerService");
23
27
  let DownloadPackageVersionTarController = class DownloadPackageVersionTarController extends AbstractController_1.AbstractController {
24
28
  // Support OPTIONS Request on tgz download
25
29
  async downloadForOptions(ctx) {
@@ -40,8 +44,24 @@ let DownloadPackageVersionTarController = class DownloadPackageVersionTarControl
40
44
  }
41
45
  // check package version in database
42
46
  const allowSync = this.getAllowSync(ctx);
43
- const pkg = await this.getPackageEntityByFullname(fullname, allowSync);
44
- const packageVersion = await this.getPackageVersionEntity(pkg, version, allowSync);
47
+ let pkg;
48
+ let packageVersion;
49
+ try {
50
+ pkg = await this.getPackageEntityByFullname(fullname, allowSync);
51
+ packageVersion = await this.getPackageVersionEntity(pkg, version, allowSync);
52
+ }
53
+ catch (error) {
54
+ if (this.config.cnpmcore.syncMode === constants_1.SyncMode.proxy) {
55
+ // proxy mode package version not found.
56
+ const tgzStream = await this.getTgzProxyStream(ctx, fullname, version);
57
+ this.packageManagerService.plusPackageVersionCounter(fullname, version);
58
+ const passThroughRemoteStream = new node_stream_1.PassThrough();
59
+ tgzStream.pipe(passThroughRemoteStream);
60
+ ctx.attachment(`${filenameWithVersion}.tgz`);
61
+ return passThroughRemoteStream;
62
+ }
63
+ throw error;
64
+ }
45
65
  // read by nfs url
46
66
  if (downloadUrl) {
47
67
  this.packageManagerService.plusPackageVersionCounter(fullname, version);
@@ -68,12 +88,40 @@ let DownloadPackageVersionTarController = class DownloadPackageVersionTarControl
68
88
  const filenameWithVersion = (0, PackageUtil_1.getScopeAndName)(fullnameWithVersion)[1];
69
89
  return await this.download(ctx, fullname, filenameWithVersion);
70
90
  }
91
+ async getTgzProxyStream(ctx, fullname, version) {
92
+ const { headers, status, res } = await this.proxyCacheService.getPackageVersionTarResponse(fullname, ctx);
93
+ ctx.status = status;
94
+ ctx.set(headers);
95
+ ctx.runInBackground(async () => {
96
+ const task = await this.packageSyncerService.createTask(fullname, {
97
+ authorIp: ctx.ip,
98
+ authorId: `pid_${process.pid}`,
99
+ tips: `Sync specific version in proxy mode cause by "${ctx.href}"`,
100
+ skipDependencies: true,
101
+ specificVersions: [version],
102
+ });
103
+ ctx.logger.info('[DownloadPackageVersionTarController.createSyncTask:success] taskId: %s, fullname: %s', task.taskId, fullname);
104
+ });
105
+ return res;
106
+ }
71
107
  };
72
108
  exports.DownloadPackageVersionTarController = DownloadPackageVersionTarController;
73
109
  __decorate([
74
110
  (0, tegg_1.Inject)(),
75
111
  __metadata("design:type", PackageManagerService_1.PackageManagerService)
76
112
  ], DownloadPackageVersionTarController.prototype, "packageManagerService", void 0);
113
+ __decorate([
114
+ (0, tegg_1.Inject)(),
115
+ __metadata("design:type", RegistryManagerService_1.RegistryManagerService)
116
+ ], DownloadPackageVersionTarController.prototype, "registryManagerService", void 0);
117
+ __decorate([
118
+ (0, tegg_1.Inject)(),
119
+ __metadata("design:type", ProxyCacheService_1.ProxyCacheService)
120
+ ], DownloadPackageVersionTarController.prototype, "proxyCacheService", void 0);
121
+ __decorate([
122
+ (0, tegg_1.Inject)(),
123
+ __metadata("design:type", PackageSyncerService_1.PackageSyncerService)
124
+ ], DownloadPackageVersionTarController.prototype, "packageSyncerService", void 0);
77
125
  __decorate([
78
126
  (0, tegg_1.Inject)(),
79
127
  __metadata("design:type", NFSAdapter_1.NFSAdapter)
@@ -118,4 +166,4 @@ __decorate([
118
166
  exports.DownloadPackageVersionTarController = DownloadPackageVersionTarController = __decorate([
119
167
  (0, tegg_1.HTTPController)()
120
168
  ], DownloadPackageVersionTarController);
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG93bmxvYWRQYWNrYWdlVmVyc2lvblRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvcGFja2FnZS9Eb3dubG9hZFBhY2thZ2VWZXJzaW9uVGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUVvQjtBQUNwQixzQ0FRcUI7QUFDckIsOERBQTJEO0FBQzNELDZEQUFtRjtBQUNuRixtRUFBZ0U7QUFDaEUsdUZBQW9GO0FBQ3BGLHlEQUFxRDtBQUc5QyxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFvQyxTQUFRLHVDQUFrQjtJQU16RSwwQ0FBMEM7SUFNcEMsQUFBTixLQUFLLENBQUMsa0JBQWtCLENBQVksR0FBZTtRQUNqRCxHQUFHLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEQsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQU9LLEFBQU4sS0FBSyxDQUFDLFFBQVEsQ0FBWSxHQUFlLEVBQWUsUUFBZ0IsRUFBZSxtQkFBMkI7UUFDaEgseUVBQXlFO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEYsTUFBTSxRQUFRLEdBQUcsYUFBYSxRQUFRLElBQUksT0FBTyxJQUFJLG1CQUFtQixNQUFNLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxvQkFBUSxDQUFDLEdBQUcsSUFBSSxXQUFXLEVBQUU7WUFDakUsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDeEUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQixPQUFPO1NBQ1I7UUFFRCxvQ0FBb0M7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkUsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVuRixrQkFBa0I7UUFDbEIsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMscUJBQXFCLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3hFLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUIsT0FBTztTQUNSO1FBQ0QscUJBQXFCO1FBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9FQUFvRSxFQUNsRixHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSwwQkFBYSxDQUFDLElBQUksbUJBQW1CLGlCQUFpQixDQUFDLENBQUM7U0FDbkU7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFO1lBQ25DLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUIsT0FBTztTQUNSO1FBQ0QsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFtQixNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBT0ssQUFBTixLQUFLLENBQUMsa0JBQWtCLENBQVksR0FBZSxFQUFlLFFBQWdCLEVBQWUsbUJBQTJCO1FBQzFILHFEQUFxRDtRQUNyRCx3Q0FBd0M7UUFDeEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLDZCQUFlLEVBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUE7QUF6RVksa0ZBQW1DO0FBRXRDO0lBRFAsSUFBQSxhQUFNLEdBQUU7OEJBQ3NCLDZDQUFxQjtrRkFBQztBQUU3QztJQURQLElBQUEsYUFBTSxHQUFFOzhCQUNXLHVCQUFVO3VFQUFDO0FBUXpCO0lBTEwsSUFBQSxpQkFBVSxFQUFDO1FBQ1YsNENBQTRDO1FBQzVDLElBQUksRUFBRSxjQUFjLGlDQUFtQiw4QkFBOEI7UUFDckUsTUFBTSxFQUFFLHFCQUFjLENBQUMsT0FBTztLQUMvQixDQUFDO0lBQ3dCLFdBQUEsSUFBQSxjQUFPLEdBQUUsQ0FBQTs7Ozs2RUFJbEM7QUFPSztJQUxMLElBQUEsaUJBQVUsRUFBQztRQUNWLDRDQUE0QztRQUM1QyxJQUFJLEVBQUUsY0FBYyxpQ0FBbUIsOEJBQThCO1FBQ3JFLE1BQU0sRUFBRSxxQkFBYyxDQUFDLEdBQUc7S0FDM0IsQ0FBQztJQUNjLFdBQUEsSUFBQSxjQUFPLEdBQUUsQ0FBQTtJQUFtQixXQUFBLElBQUEsZ0JBQVMsR0FBRSxDQUFBO0lBQW9CLFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7Ozs7bUVBcUNyRjtBQU9LO0lBTEwsSUFBQSxpQkFBVSxFQUFDO1FBQ1YsbURBQW1EO1FBQ25ELElBQUksRUFBRSxjQUFjLGlDQUFtQixzQ0FBc0M7UUFDN0UsTUFBTSxFQUFFLHFCQUFjLENBQUMsR0FBRztLQUMzQixDQUFDO0lBQ3dCLFdBQUEsSUFBQSxjQUFPLEdBQUUsQ0FBQTtJQUFtQixXQUFBLElBQUEsZ0JBQVMsR0FBRSxDQUFBO0lBQW9CLFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7Ozs7NkVBSy9GOzhDQXhFVSxtQ0FBbUM7SUFEL0MsSUFBQSxxQkFBYyxHQUFFO0dBQ0osbUNBQW1DLENBeUUvQyJ9
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG93bmxvYWRQYWNrYWdlVmVyc2lvblRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvcGFja2FnZS9Eb3dubG9hZFBhY2thZ2VWZXJzaW9uVGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQztBQUMxQywyQ0FFb0I7QUFDcEIsc0NBUXFCO0FBQ3JCLDhEQUEyRDtBQUMzRCw2REFBbUY7QUFDbkYseURBQXFEO0FBQ3JELG1FQUFnRTtBQUNoRSx1RkFBb0Y7QUFDcEYsK0VBQTRFO0FBQzVFLHFGQUFrRjtBQUNsRix5RkFBc0Y7QUFHL0UsSUFBTSxtQ0FBbUMsR0FBekMsTUFBTSxtQ0FBb0MsU0FBUSx1Q0FBa0I7SUFZekUsMENBQTBDO0lBTXBDLEFBQU4sS0FBSyxDQUFDLGtCQUFrQixDQUFZLEdBQWU7UUFDakQsR0FBRyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QyxHQUFHLENBQUMsR0FBRyxDQUFDLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFPSyxBQUFOLEtBQUssQ0FBQyxRQUFRLENBQVksR0FBZSxFQUFlLFFBQWdCLEVBQWUsbUJBQTJCO1FBQ2hILHlFQUF5RTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sUUFBUSxHQUFHLGFBQWEsUUFBUSxJQUFJLE9BQU8sSUFBSSxtQkFBbUIsTUFBTSxDQUFDO1FBQy9FLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFD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
@@ -1,8 +1,10 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { EggContext } from '@eggjs/tegg';
3
4
  import { AbstractController } from '../AbstractController';
4
5
  export declare class ShowPackageController extends AbstractController {
5
6
  private packageManagerService;
6
7
  private cacheService;
8
+ private proxyCacheService;
7
9
  show(ctx: EggContext, fullname: string): Promise<Buffer | undefined>;
8
10
  }