cnpmcore 3.8.0 → 3.9.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.
|
@@ -26,28 +26,35 @@ let ShowPackageController = class ShowPackageController extends AbstractControll
|
|
|
26
26
|
const abbreviatedMetaType = 'application/vnd.npm.install-v1+json';
|
|
27
27
|
const isFullManifests = ctx.accepts(['json', abbreviatedMetaType]) !== abbreviatedMetaType;
|
|
28
28
|
// handle cache
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (
|
|
33
|
-
requestEtag =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
// fallback to db when cache error
|
|
30
|
+
try {
|
|
31
|
+
const cacheEtag = await this.cacheService.getPackageEtag(fullname, isFullManifests);
|
|
32
|
+
if (!isSync && cacheEtag) {
|
|
33
|
+
let requestEtag = ctx.request.get('if-none-match');
|
|
34
|
+
if (requestEtag.startsWith('W/')) {
|
|
35
|
+
requestEtag = requestEtag.substring(2);
|
|
36
|
+
}
|
|
37
|
+
if (requestEtag === cacheEtag) {
|
|
38
|
+
// make sure CDN cache header set here
|
|
39
|
+
this.setCDNHeaders(ctx);
|
|
40
|
+
// match etag, set status 304
|
|
41
|
+
ctx.status = 304;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// get cache pkg data
|
|
45
|
+
const cacheBytes = await this.cacheService.getPackageManifests(fullname, isFullManifests);
|
|
46
|
+
if (cacheBytes && cacheBytes.length > 0) {
|
|
47
|
+
ctx.set('etag', `W/${cacheEtag}`);
|
|
48
|
+
ctx.type = 'json';
|
|
49
|
+
this.setCDNHeaders(ctx);
|
|
50
|
+
return cacheBytes;
|
|
51
|
+
}
|
|
49
52
|
}
|
|
50
53
|
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
this.logger.error(e);
|
|
56
|
+
this.logger.error('[ShowPackageController.show:error] get cache error, ignore');
|
|
57
|
+
}
|
|
51
58
|
// handle cache miss
|
|
52
59
|
let result;
|
|
53
60
|
if (isFullManifests) {
|
|
@@ -71,7 +78,9 @@ let ShowPackageController = class ShowPackageController extends AbstractControll
|
|
|
71
78
|
// only set cache with normal request
|
|
72
79
|
// sync request response with no bug version fixed
|
|
73
80
|
if (!isSync) {
|
|
74
|
-
|
|
81
|
+
ctx.runInBackground(async () => {
|
|
82
|
+
await this.cacheService.savePackageEtagAndManifests(fullname, isFullManifests, etag, cacheBytes);
|
|
83
|
+
});
|
|
75
84
|
}
|
|
76
85
|
// set etag
|
|
77
86
|
// https://forum.nginx.org/read.php?2,240120,240120#msg-240120
|
|
@@ -107,4 +116,4 @@ ShowPackageController = __decorate([
|
|
|
107
116
|
(0, tegg_1.HTTPController)()
|
|
108
117
|
], ShowPackageController);
|
|
109
118
|
exports.ShowPackageController = ShowPackageController;
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1BhY2thZ2VDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9wYWNrYWdlL1Nob3dQYWNrYWdlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FRcUI7QUFDckIsOERBQTJEO0FBQzNELDZEQUFtRjtBQUNuRix1REFBK0Q7QUFDL0QsdUZBQW9GO0FBQ3BGLHFFQUFrRTtBQUczRCxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFzQixTQUFRLHVDQUFrQjtJQVlyRCxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQVksR0FBZSxFQUFlLFFBQWdCO1FBQ2xFLE1BQU0sQ0FBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLEdBQUcsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxtQkFBbUIsR0FBRyxxQ0FBcUMsQ0FBQztRQUNsRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFFLENBQUMsS0FBSyxtQkFBbUIsQ0FBQztRQUU3RixlQUFlO1FBQ2Ysa0NBQWtDO1FBQ2xDLElBQUk7WUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDeEIsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ25ELElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDaEMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFT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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cnpmcore",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "npm core",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*"
|
|
@@ -40,10 +40,12 @@
|
|
|
40
40
|
"lint": "eslint --cache --ext .ts .",
|
|
41
41
|
"lint:fix": "eslint --cache --ext .ts --fix .",
|
|
42
42
|
"test": "npm run lint:fix && npm run test-local",
|
|
43
|
-
"
|
|
44
|
-
"test-local": "
|
|
45
|
-
"
|
|
46
|
-
"
|
|
43
|
+
"pretest-local": "bash ./prepare-database.sh",
|
|
44
|
+
"test-local": "egg-bin test",
|
|
45
|
+
"pret": "bash ./prepare-database.sh",
|
|
46
|
+
"t": "npm run lint:fix && egg-bin test --changed",
|
|
47
|
+
"precov": "bash ./prepare-database.sh",
|
|
48
|
+
"cov": "egg-bin cov",
|
|
47
49
|
"ci": "npm run lint && npm run cov && npm run tsc:prod",
|
|
48
50
|
"clean": "tsc -b --clean && rm -rf dist",
|
|
49
51
|
"tsc": "npm run clean && tsc -p ./tsconfig.json",
|
|
@@ -100,7 +102,6 @@
|
|
|
100
102
|
"validate-npm-package-name": "^3.0.0"
|
|
101
103
|
},
|
|
102
104
|
"devDependencies": {
|
|
103
|
-
"@swc/core": "^1.3.35",
|
|
104
105
|
"@types/mocha": "^10.0.1",
|
|
105
106
|
"@types/mysql": "^2.15.21",
|
|
106
107
|
"@types/semver": "^7.3.12",
|
|
@@ -110,8 +111,7 @@
|
|
|
110
111
|
"eslint": "^8.29.0",
|
|
111
112
|
"eslint-config-egg": "^12.1.0",
|
|
112
113
|
"git-contributor": "2",
|
|
113
|
-
"npm-cli-login": "^1.
|
|
114
|
-
"ts-node": "^10.9.1",
|
|
114
|
+
"@cnpmjs/npm-cli-login": "^1.1.0",
|
|
115
115
|
"typescript": "^4.9.4"
|
|
116
116
|
},
|
|
117
117
|
"author": "killagu",
|