cnpmcore 3.62.2 → 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.
- package/dist/app/common/adapter/NPMRegistry.d.ts +1 -1
- package/dist/app/common/adapter/NPMRegistry.js +1 -1
- package/dist/app/common/constants.d.ts +3 -0
- package/dist/app/common/constants.js +5 -2
- package/dist/app/common/enum/Task.d.ts +1 -0
- package/dist/app/common/enum/Task.js +2 -1
- package/dist/app/core/entity/ProxyCache.d.ts +19 -0
- package/dist/app/core/entity/ProxyCache.js +30 -0
- package/dist/app/core/entity/Task.d.ts +14 -0
- package/dist/app/core/entity/Task.js +27 -1
- package/dist/app/core/service/ProxyCacheService.d.ts +33 -0
- package/dist/app/core/service/ProxyCacheService.js +264 -0
- package/dist/app/port/controller/ProxyCacheController.d.ts +22 -0
- package/dist/app/port/controller/ProxyCacheController.js +180 -0
- package/dist/app/port/controller/package/DownloadPackageVersionTar.d.ts +5 -0
- package/dist/app/port/controller/package/DownloadPackageVersionTar.js +52 -4
- package/dist/app/port/controller/package/ShowPackageController.d.ts +1 -0
- package/dist/app/port/controller/package/ShowPackageController.js +24 -6
- package/dist/app/port/controller/package/ShowPackageVersionController.d.ts +2 -1
- package/dist/app/port/controller/package/ShowPackageVersionController.js +24 -10
- package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.d.ts +7 -0
- package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.js +70 -0
- package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +2 -2
- package/dist/app/port/schedule/SyncProxyCacheWorker.d.ts +6 -0
- package/dist/app/port/schedule/SyncProxyCacheWorker.js +70 -0
- package/dist/app/repository/ProxyCacheRepository.d.ts +14 -0
- package/dist/app/repository/ProxyCacheRepository.js +75 -0
- package/dist/app/repository/model/ProxyCache.d.ts +11 -0
- package/dist/app/repository/model/ProxyCache.js +55 -0
- package/package.json +2 -1
|
@@ -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
|
|
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
|
-
|
|
44
|
-
|
|
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,
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG93bmxvYWRQYWNrYWdlVmVyc2lvblRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvcGFja2FnZS9Eb3dubG9hZFBhY2thZ2VWZXJzaW9uVGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQztBQUMxQywyQ0FFb0I7QUFDcEIsc0NBUXFCO0FBQ3JCLDhEQUEyRDtBQUMzRCw2REFBbUY7QUFDbkYseURBQXFEO0FBQ3JELG1FQUFnRTtBQUNoRSx1RkFBb0Y7QUFDcEYsK0VBQTRFO0FBQzVFLHFGQUFrRjtBQUNsRix5RkFBc0Y7QUFHL0UsSUFBTSxtQ0FBbUMsR0FBekMsTUFBTSxtQ0FBb0MsU0FBUSx1Q0FBa0I7SUFZekUsMENBQTBDO0lBTXBDLEFBQU4sS0FBSyxDQUFDLGtCQUFrQixDQUFZLEdBQWU7UUFDakQsR0FBRyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QyxHQUFHLENBQUMsR0FBRyxDQUFDLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFPSyxBQUFOLEtBQUssQ0FBQyxRQUFRLENBQVksR0FBZSxFQUFlLFFBQWdCLEVBQWUsbUJBQTJCO1FBQ2hILHlFQUF5RTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sUUFBUSxHQUFHLGFBQWEsUUFBUSxJQUFJLE9BQU8sSUFBSSxtQkFBbUIsTUFBTSxDQUFDO1FBQy9FLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFD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
|
|
@@ -5,5 +5,6 @@ import { AbstractController } from '../AbstractController';
|
|
|
5
5
|
export declare class ShowPackageController extends AbstractController {
|
|
6
6
|
private packageManagerService;
|
|
7
7
|
private cacheService;
|
|
8
|
+
private proxyCacheService;
|
|
8
9
|
show(ctx: EggContext, fullname: string): Promise<Buffer | undefined>;
|
|
9
10
|
}
|
|
@@ -19,12 +19,15 @@ const PackageUtil_1 = require("../../../common/PackageUtil");
|
|
|
19
19
|
const SyncUtil_1 = require("../../../common/SyncUtil");
|
|
20
20
|
const PackageManagerService_1 = require("../../../core/service/PackageManagerService");
|
|
21
21
|
const CacheService_1 = require("../../../core/service/CacheService");
|
|
22
|
+
const constants_1 = require("../../../common/constants");
|
|
23
|
+
const ProxyCacheService_1 = require("../../../core/service/ProxyCacheService");
|
|
24
|
+
const PackageUtil_2 = require("../../../common/PackageUtil");
|
|
25
|
+
const Package_1 = require("../../../core/entity/Package");
|
|
22
26
|
let ShowPackageController = class ShowPackageController extends AbstractController_1.AbstractController {
|
|
23
27
|
async show(ctx, fullname) {
|
|
24
28
|
const [scope, name] = (0, PackageUtil_1.getScopeAndName)(fullname);
|
|
25
29
|
const isSync = (0, SyncUtil_1.isSyncWorkerRequest)(ctx);
|
|
26
|
-
const
|
|
27
|
-
const isFullManifests = ctx.accepts(['json', abbreviatedMetaType]) !== abbreviatedMetaType;
|
|
30
|
+
const isFullManifests = ctx.accepts(['json', constants_1.ABBREVIATED_META_TYPE]) !== constants_1.ABBREVIATED_META_TYPE;
|
|
28
31
|
// handle cache
|
|
29
32
|
// fallback to db when cache error
|
|
30
33
|
try {
|
|
@@ -57,11 +60,22 @@ let ShowPackageController = class ShowPackageController extends AbstractControll
|
|
|
57
60
|
}
|
|
58
61
|
// handle cache miss
|
|
59
62
|
let result;
|
|
60
|
-
if (
|
|
61
|
-
|
|
63
|
+
if (this.config.cnpmcore.syncMode === constants_1.SyncMode.proxy) {
|
|
64
|
+
// proxy mode
|
|
65
|
+
const fileType = isFullManifests ? Package_1.DIST_NAMES.FULL_MANIFESTS : Package_1.DIST_NAMES.ABBREVIATED_MANIFESTS;
|
|
66
|
+
const pkgManifest = await this.proxyCacheService.getPackageManifest(fullname, fileType);
|
|
67
|
+
const nfsBytes = Buffer.from(JSON.stringify(pkgManifest));
|
|
68
|
+
const { shasum: etag } = await (0, PackageUtil_2.calculateIntegrity)(nfsBytes);
|
|
69
|
+
result = { data: pkgManifest, etag, blockReason: '' };
|
|
62
70
|
}
|
|
63
71
|
else {
|
|
64
|
-
|
|
72
|
+
// sync mode
|
|
73
|
+
if (isFullManifests) {
|
|
74
|
+
result = await this.packageManagerService.listPackageFullManifests(scope, name, isSync);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
result = await this.packageManagerService.listPackageAbbreviatedManifests(scope, name, isSync);
|
|
78
|
+
}
|
|
65
79
|
}
|
|
66
80
|
const { etag, data, blockReason } = result;
|
|
67
81
|
// 404, no data
|
|
@@ -100,6 +114,10 @@ __decorate([
|
|
|
100
114
|
(0, tegg_1.Inject)(),
|
|
101
115
|
__metadata("design:type", CacheService_1.CacheService)
|
|
102
116
|
], ShowPackageController.prototype, "cacheService", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, tegg_1.Inject)(),
|
|
119
|
+
__metadata("design:type", ProxyCacheService_1.ProxyCacheService)
|
|
120
|
+
], ShowPackageController.prototype, "proxyCacheService", void 0);
|
|
103
121
|
__decorate([
|
|
104
122
|
(0, tegg_1.HTTPMethod)({
|
|
105
123
|
// GET /:fullname
|
|
@@ -116,4 +134,4 @@ __decorate([
|
|
|
116
134
|
exports.ShowPackageController = ShowPackageController = __decorate([
|
|
117
135
|
(0, tegg_1.HTTPController)()
|
|
118
136
|
], ShowPackageController);
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1BhY2thZ2VDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9wYWNrYWdlL1Nob3dQYWNrYWdlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FRcUI7QUFDckIsOERBQTJEO0FBQzNELDZEQUFtRjtBQUNuRix1REFBK0Q7QUFDL0QsdUZBQW9GO0FBQ3BGLHFFQUFrRTtBQUNsRSx5REFBNEU7QUFDNUUsK0VBQTRFO0FBQzVFLDZEQUFpRTtBQUNqRSwwREFBMEQ7QUFHbkQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBc0IsU0FBUSx1Q0FBa0I7SUFjckQsQUFBTixLQUFLLENBQUMsSUFBSSxDQUFZLEdBQWUsRUFBZSxRQUFnQjtRQUNsRSxNQUFNLENBQUUsS0FBSyxFQUFFLElBQUksQ0FBRSxHQUFHLElBQUEsNkJBQWUsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFBLDhCQUFtQixFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBRSxNQUFNLEVBQUUsaUNBQXFCLENBQUUsQ0FBQyxLQUFLLGlDQUFxQixDQUFDO1FBRWpHLGVBQWU7UUFDZixrQ0FBa0M7UUFDbEMsSUFBSTtZQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUN4QixJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNoQyxXQUFXLEdB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
|
|
@@ -2,5 +2,6 @@ import { EggContext } from '@eggjs/tegg';
|
|
|
2
2
|
import { AbstractController } from '../AbstractController';
|
|
3
3
|
export declare class ShowPackageVersionController extends AbstractController {
|
|
4
4
|
private packageManagerService;
|
|
5
|
-
|
|
5
|
+
private proxyCacheService;
|
|
6
|
+
show(ctx: EggContext, fullname: string, versionSpec: string): Promise<import("../../../repository/PackageRepository").PackageJSONType | import("../../../repository/PackageRepository").AbbreviatedPackageJSONType>;
|
|
6
7
|
}
|
|
@@ -14,31 +14,41 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ShowPackageVersionController = void 0;
|
|
16
16
|
const tegg_1 = require("@eggjs/tegg");
|
|
17
|
-
const egg_errors_1 = require("egg-errors");
|
|
18
17
|
const AbstractController_1 = require("../AbstractController");
|
|
19
18
|
const PackageUtil_1 = require("../../../common/PackageUtil");
|
|
20
19
|
const SyncUtil_1 = require("../../../common/SyncUtil");
|
|
21
20
|
const PackageManagerService_1 = require("../../../core/service/PackageManagerService");
|
|
21
|
+
const ProxyCacheService_1 = require("../../../core/service/ProxyCacheService");
|
|
22
22
|
const typebox_1 = require("../../../port/typebox");
|
|
23
|
+
const constants_1 = require("../../../common/constants");
|
|
24
|
+
const Package_1 = require("../../../core/entity/Package");
|
|
25
|
+
const egg_errors_1 = require("egg-errors");
|
|
23
26
|
let ShowPackageVersionController = class ShowPackageVersionController extends AbstractController_1.AbstractController {
|
|
24
27
|
async show(ctx, fullname, versionSpec) {
|
|
25
28
|
// https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md#full-metadata-format
|
|
26
29
|
ctx.tValidate(typebox_1.Spec, `${fullname}@${versionSpec}`);
|
|
27
30
|
const [scope, name] = (0, PackageUtil_1.getScopeAndName)(fullname);
|
|
28
31
|
const isSync = (0, SyncUtil_1.isSyncWorkerRequest)(ctx);
|
|
29
|
-
const
|
|
30
|
-
const isFullManifests = ctx.accepts(['json', abbreviatedMetaType]) !== abbreviatedMetaType;
|
|
32
|
+
const isFullManifests = ctx.accepts(['json', constants_1.ABBREVIATED_META_TYPE]) !== constants_1.ABBREVIATED_META_TYPE;
|
|
31
33
|
const { blockReason, manifest, pkg } = await this.packageManagerService.showPackageVersionManifest(scope, name, versionSpec, isSync, isFullManifests);
|
|
32
|
-
|
|
33
|
-
const allowSync = this.getAllowSync(ctx);
|
|
34
|
-
throw this.createPackageNotFoundErrorWithRedirect(fullname, undefined, allowSync);
|
|
35
|
-
}
|
|
34
|
+
const allowSync = this.getAllowSync(ctx);
|
|
36
35
|
if (blockReason) {
|
|
37
36
|
this.setCDNHeaders(ctx);
|
|
38
37
|
throw this.createPackageBlockError(blockReason, fullname, versionSpec);
|
|
39
38
|
}
|
|
40
|
-
if (!manifest) {
|
|
41
|
-
|
|
39
|
+
if (!pkg || !manifest) {
|
|
40
|
+
if (this.config.cnpmcore.syncMode === constants_1.SyncMode.proxy) {
|
|
41
|
+
const fileType = isFullManifests
|
|
42
|
+
? Package_1.DIST_NAMES.MANIFEST
|
|
43
|
+
: Package_1.DIST_NAMES.ABBREVIATED;
|
|
44
|
+
return await this.proxyCacheService.getPackageVersionManifest(fullname, fileType, versionSpec);
|
|
45
|
+
}
|
|
46
|
+
if (!pkg) {
|
|
47
|
+
throw this.createPackageNotFoundErrorWithRedirect(fullname, undefined, allowSync);
|
|
48
|
+
}
|
|
49
|
+
if (!manifest) {
|
|
50
|
+
throw new egg_errors_1.NotFoundError(`${fullname}@${versionSpec} not found`);
|
|
51
|
+
}
|
|
42
52
|
}
|
|
43
53
|
this.setCDNHeaders(ctx);
|
|
44
54
|
return manifest;
|
|
@@ -49,6 +59,10 @@ __decorate([
|
|
|
49
59
|
(0, tegg_1.Inject)(),
|
|
50
60
|
__metadata("design:type", PackageManagerService_1.PackageManagerService)
|
|
51
61
|
], ShowPackageVersionController.prototype, "packageManagerService", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, tegg_1.Inject)(),
|
|
64
|
+
__metadata("design:type", ProxyCacheService_1.ProxyCacheService)
|
|
65
|
+
], ShowPackageVersionController.prototype, "proxyCacheService", void 0);
|
|
52
66
|
__decorate([
|
|
53
67
|
(0, tegg_1.HTTPMethod)({
|
|
54
68
|
// GET /:fullname/:versionSpec
|
|
@@ -65,4 +79,4 @@ __decorate([
|
|
|
65
79
|
exports.ShowPackageVersionController = ShowPackageVersionController = __decorate([
|
|
66
80
|
(0, tegg_1.HTTPController)()
|
|
67
81
|
], ShowPackageVersionController);
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1BhY2thZ2VWZXJzaW9uQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvcGFja2FnZS9TaG93UGFja2FnZVZlcnNpb25Db250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQVFxQjtBQUNyQiw4REFBMkQ7QUFDM0QsNkRBR3FDO0FBQ3JDLHVEQUErRDtBQUMvRCx1RkFBb0Y7QUFDcEYsK0VBQTRFO0FBQzVFLG1EQUE2QztBQUM3Qyx5REFBNEU7QUFDNUUsMERBQTBEO0FBQzFELDJDQUEyQztBQUdwQyxJQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE2QixTQUFRLHVDQUFrQjtJQVc1RCxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQ0csR0FBZSxFQUNiLFFBQWdCLEVBQ2hCLFdBQW1CO1FBRWhDLHNHQUFzRztRQUN0RyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQUksRUFBRSxHQUFHLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLEdBQUcsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBRSxNQUFNLEVBQUUsaUNBQXFCLENBQUUsQ0FBQyxLQUFLLGlDQUFxQixDQUFDO1FBRTNFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUNsQyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FDekQsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsTUFBTSxFQUNOLGVBQWUsQ0FDaEIsQ0FBQztRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLG9CQUFRLENBQUMsS0FBSyxFQUFFO2dCQUNwRCxNQUFNLFFBQVEsR0FBRyxlQUFlO29CQUM5QixDQUFDLENBQUMsb0JBQVUsQ0FBQyxRQUFRO29CQUNyQixDQUFDLENBQUMsb0JBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQzNCLE9BQU8sTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLENBQzNELFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxDQUNaLENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxJQUFJLENBQUMsc0NBQXNDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNuRjtZQUNELElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLDBCQUFhLENBQUMsR0FBRyxRQUFRLElBQUksV0FBVyxZQUFZLENBQUMsQ0FBQzthQUNqRTtTQUNGO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YsQ0FBQTtBQTdEWSxvRUFBNEI7QUFFL0I7SUFEUCxJQUFBLGFBQU0sR0FBRTs4QkFDc0IsNkNBQXFCOzJFQUFDO0FBRTdDO0lBRFAsSUFBQSxhQUFNLEdBQUU7OEJBQ2tCLHFDQUFpQjt1RUFBQztBQU92QztJQUxMLElBQUEsaUJBQVUsRUFBQztRQUNWLDhCQUE4QjtRQUM5QixJQUFJLEVBQUUsY0FBYyxpQ0FBbUIsZ0JBQWdCO1FBQ3ZELE1BQU0sRUFBRSxxQkFBYyxDQUFDLEdBQUc7S0FDM0IsQ0FBQztJQUVDLFdBQUEsSUFBQSxjQUFPLEdBQUUsQ0FBQTtJQUNULFdBQUEsSUFBQSxnQkFBUyxHQUFFLENBQUE7SUFDWCxXQUFBLElBQUEsZ0JBQVMsR0FBRSxDQUFBOzs7O3dEQThDYjt1Q0E1RFUsNEJBQTRCO0lBRHhDLElBQUEscUJBQWMsR0FBRTtHQUNKLDRCQUE0QixDQTZEeEMifQ==
|
|
@@ -0,0 +1,70 @@
|
|
|
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.CheckProxyCacheUpdateWorker = void 0;
|
|
13
|
+
const schedule_1 = require("@eggjs/tegg/schedule");
|
|
14
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
15
|
+
const ProxyCacheRepository_1 = require("../../repository/ProxyCacheRepository");
|
|
16
|
+
const constants_1 = require("../../common/constants");
|
|
17
|
+
const ProxyCacheService_1 = require("../../core/service/ProxyCacheService");
|
|
18
|
+
let CheckProxyCacheUpdateWorker = class CheckProxyCacheUpdateWorker {
|
|
19
|
+
async subscribe() {
|
|
20
|
+
if (this.config.cnpmcore.syncMode !== constants_1.SyncMode.proxy)
|
|
21
|
+
return;
|
|
22
|
+
let pageIndex = 0;
|
|
23
|
+
let { data: list } = await this.proxyCacheRepository.listCachedFiles({ pageSize: 5, pageIndex });
|
|
24
|
+
while (list.length !== 0) {
|
|
25
|
+
for (const item of list) {
|
|
26
|
+
try {
|
|
27
|
+
if ((0, ProxyCacheService_1.isPkgManifest)(item.fileType)) {
|
|
28
|
+
// 仅manifests需要更新,指定版本的package.json文件发布后不会改变
|
|
29
|
+
const task = await this.proxyCacheService.createTask(`${item.fullname}/${item.fileType}`, {
|
|
30
|
+
fullname: item.fullname,
|
|
31
|
+
fileType: item.fileType,
|
|
32
|
+
});
|
|
33
|
+
this.logger.info('[CheckProxyCacheUpdateWorker.subscribe:createTask][%s] taskId: %s, targetName: %s', pageIndex, task.taskId, task.targetName);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
this.logger.error(err);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
pageIndex++;
|
|
41
|
+
list = (await this.proxyCacheRepository.listCachedFiles({ pageSize: 5, pageIndex })).data;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.CheckProxyCacheUpdateWorker = CheckProxyCacheUpdateWorker;
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, tegg_1.Inject)(),
|
|
48
|
+
__metadata("design:type", Object)
|
|
49
|
+
], CheckProxyCacheUpdateWorker.prototype, "config", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, tegg_1.Inject)(),
|
|
52
|
+
__metadata("design:type", Object)
|
|
53
|
+
], CheckProxyCacheUpdateWorker.prototype, "logger", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, tegg_1.Inject)(),
|
|
56
|
+
__metadata("design:type", ProxyCacheService_1.ProxyCacheService)
|
|
57
|
+
], CheckProxyCacheUpdateWorker.prototype, "proxyCacheService", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, tegg_1.Inject)(),
|
|
60
|
+
__metadata("design:type", ProxyCacheRepository_1.ProxyCacheRepository)
|
|
61
|
+
], CheckProxyCacheUpdateWorker.prototype, "proxyCacheRepository", void 0);
|
|
62
|
+
exports.CheckProxyCacheUpdateWorker = CheckProxyCacheUpdateWorker = __decorate([
|
|
63
|
+
(0, schedule_1.Schedule)({
|
|
64
|
+
type: schedule_1.ScheduleType.WORKER,
|
|
65
|
+
scheduleData: {
|
|
66
|
+
cron: '0 3 * * *', // run every day at 03:00
|
|
67
|
+
},
|
|
68
|
+
})
|
|
69
|
+
], CheckProxyCacheUpdateWorker);
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tQcm94eUNhY2hlVXBkYXRlV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvc2NoZWR1bGUvQ2hlY2tQcm94eUNhY2hlVXBkYXRlV29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLG1EQUEwRTtBQUMxRSxzQ0FBcUM7QUFDckMsZ0ZBQTZFO0FBQzdFLHNEQUFrRDtBQUNsRCw0RUFBd0Y7QUFRakYsSUFBTSwyQkFBMkIsR0FBakMsTUFBTSwyQkFBMkI7SUFjdEMsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxvQkFBUSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQzdELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNqRyxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUN2QixJQUFJO29CQUNGLElBQUksSUFBQSxpQ0FBYSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDaEMsNENBQTRDO3dCQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTs0QkFDeEYsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFROzRCQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7eUJBQ3hCLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtRkFBbUYsRUFDbEcsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3FCQUM1QztpQkFDRjtnQkFBQyxPQUFPLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDeEI7YUFDRjtZQUNELFNBQVMsRUFBRSxDQUFDO1lBQ1osSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzNGO0lBRUgsQ0FBQztDQUNGLENBQUE7QUF2Q1ksa0VBQTJCO0FBR3JCO0lBRGhCLElBQUEsYUFBTSxHQUFFOzsyREFDNkI7QUFHckI7SUFEaEIsSUFBQSxhQUFNLEdBQUU7OzJEQUMwQjtBQUczQjtJQURQLElBQUEsYUFBTSxHQUFFOzhCQUNrQixxQ0FBaUI7c0VBQUM7QUFHNUI7SUFEaEIsSUFBQSxhQUFNLEdBQUU7OEJBQzZCLDJDQUFvQjt5RUFBQztzQ0FaaEQsMkJBQTJCO0lBTnZDLElBQUEsbUJBQVEsRUFBYTtRQUNwQixJQUFJLEVBQUUsdUJBQVksQ0FBQyxNQUFNO1FBQ3pCLFlBQVksRUFBRTtZQUNaLElBQUksRUFBRSxXQUFXLEVBQUUseUJBQXlCO1NBQzdDO0tBQ0YsQ0FBQztHQUNXLDJCQUEyQixDQXVDdkMifQ==
|
|
@@ -19,7 +19,7 @@ const constants_1 = require("../../common/constants");
|
|
|
19
19
|
// https://github.com/cnpm/cnpmcore/issues/9
|
|
20
20
|
let CheckRecentlyUpdatedPackages = class CheckRecentlyUpdatedPackages {
|
|
21
21
|
async subscribe() {
|
|
22
|
-
const notAllowUpdateModeList = [constants_1.SyncMode.none, constants_1.SyncMode.admin];
|
|
22
|
+
const notAllowUpdateModeList = [constants_1.SyncMode.none, constants_1.SyncMode.admin, constants_1.SyncMode.proxy];
|
|
23
23
|
if (notAllowUpdateModeList.includes(this.config.cnpmcore.syncMode) || !this.config.cnpmcore.enableCheckRecentlyUpdated)
|
|
24
24
|
return;
|
|
25
25
|
const pageSize = 36;
|
|
@@ -104,4 +104,4 @@ exports.CheckRecentlyUpdatedPackages = CheckRecentlyUpdatedPackages = __decorate
|
|
|
104
104
|
},
|
|
105
105
|
})
|
|
106
106
|
], CheckRecentlyUpdatedPackages);
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tSZWNlbnRseVVwZGF0ZWRQYWNrYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L3NjaGVkdWxlL0NoZWNrUmVjZW50bHlVcGRhdGVkUGFja2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQThFO0FBQzlFLHNDQUFxQztBQUNyQyxrRkFBK0U7QUFDL0UsMEVBQXVFO0FBQ3ZFLDBEQUEyRDtBQUMzRCxzREFBa0Q7QUFFbEQsNENBQTRDO0FBUXJDLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTRCO0lBZXZDLEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxzQkFBc0IsR0FBRyxDQUFFLG9CQUFRLENBQUMsSUFBSSxFQUFFLG9CQUFRLENBQUMsS0FBSyxFQUFFLG9CQUFRLENBQUMsS0FBSyxDQUFFLENBQUM7UUFDakYsSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEI7WUFBRSxPQUFPO1FBQy9ILE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELEtBQUssSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRywrQ0FBK0MsTUFBTSxFQUFFLENBQUM7WUFDeEUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2QsSUFBSTtnQkFDRixNQUFNLEVBQUUsTUFB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
|