@verdaccio/middleware 9.0.0-next-9.3 → 9.0.0-next-9.5
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/build/_virtual/_rolldown/runtime.js +23 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +62 -221
- package/build/index.mjs +23 -0
- package/build/middlewares/allow.js +42 -50
- package/build/middlewares/allow.js.map +1 -1
- package/build/middlewares/allow.mjs +44 -0
- package/build/middlewares/allow.mjs.map +1 -0
- package/build/middlewares/antiLoop.d.ts +2 -2
- package/build/middlewares/antiLoop.js +22 -40
- package/build/middlewares/antiLoop.js.map +1 -1
- package/build/middlewares/antiLoop.mjs +25 -0
- package/build/middlewares/antiLoop.mjs.map +1 -0
- package/build/middlewares/api_urls.js +66 -59
- package/build/middlewares/api_urls.js.map +1 -1
- package/build/middlewares/api_urls.mjs +59 -0
- package/build/middlewares/api_urls.mjs.map +1 -0
- package/build/middlewares/body-parser.d.ts +8 -0
- package/build/middlewares/body-parser.js +31 -0
- package/build/middlewares/body-parser.js.map +1 -0
- package/build/middlewares/body-parser.mjs +28 -0
- package/build/middlewares/body-parser.mjs.map +1 -0
- package/build/middlewares/dotfiles.d.ts +1 -1
- package/build/middlewares/dotfiles.js +25 -28
- package/build/middlewares/dotfiles.js.map +1 -1
- package/build/middlewares/dotfiles.mjs +27 -0
- package/build/middlewares/dotfiles.mjs.map +1 -0
- package/build/middlewares/encode-pkg.d.ts +1 -1
- package/build/middlewares/encode-pkg.js +20 -36
- package/build/middlewares/encode-pkg.js.map +1 -1
- package/build/middlewares/encode-pkg.mjs +22 -0
- package/build/middlewares/encode-pkg.mjs.map +1 -0
- package/build/middlewares/error.d.ts +3 -3
- package/build/middlewares/error.js +53 -71
- package/build/middlewares/error.js.map +1 -1
- package/build/middlewares/error.mjs +53 -0
- package/build/middlewares/error.mjs.map +1 -0
- package/build/middlewares/final.d.ts +2 -2
- package/build/middlewares/final.js +46 -57
- package/build/middlewares/final.js.map +1 -1
- package/build/middlewares/final.mjs +46 -0
- package/build/middlewares/final.mjs.map +1 -0
- package/build/middlewares/json.d.ts +1 -1
- package/build/middlewares/json.js +8 -11
- package/build/middlewares/json.js.map +1 -1
- package/build/middlewares/json.mjs +10 -0
- package/build/middlewares/json.mjs.map +1 -0
- package/build/middlewares/log.d.ts +1 -1
- package/build/middlewares/log.js +97 -125
- package/build/middlewares/log.js.map +1 -1
- package/build/middlewares/log.mjs +96 -0
- package/build/middlewares/log.mjs.map +1 -0
- package/build/middlewares/make-url-relative.d.ts +1 -1
- package/build/middlewares/make-url-relative.js +26 -41
- package/build/middlewares/make-url-relative.js.map +1 -1
- package/build/middlewares/make-url-relative.mjs +28 -0
- package/build/middlewares/make-url-relative.mjs.map +1 -0
- package/build/middlewares/match.js +8 -13
- package/build/middlewares/match.js.map +1 -1
- package/build/middlewares/match.mjs +11 -0
- package/build/middlewares/match.mjs.map +1 -0
- package/build/middlewares/media.js +15 -19
- package/build/middlewares/media.js.map +1 -1
- package/build/middlewares/media.mjs +17 -0
- package/build/middlewares/media.mjs.map +1 -0
- package/build/middlewares/rate-limit.d.ts +2 -2
- package/build/middlewares/rate-limit.js +8 -10
- package/build/middlewares/rate-limit.js.map +1 -1
- package/build/middlewares/rate-limit.mjs +9 -0
- package/build/middlewares/rate-limit.mjs.map +1 -0
- package/build/middlewares/request-options.d.ts +2 -2
- package/build/middlewares/request-options.js +18 -27
- package/build/middlewares/request-options.js.map +1 -1
- package/build/middlewares/request-options.mjs +19 -0
- package/build/middlewares/request-options.mjs.map +1 -0
- package/build/middlewares/user-agent.d.ts +1 -1
- package/build/middlewares/user-agent.js +11 -12
- package/build/middlewares/user-agent.js.map +1 -1
- package/build/middlewares/user-agent.mjs +13 -0
- package/build/middlewares/user-agent.mjs.map +1 -0
- package/build/middlewares/validation.d.ts +1 -1
- package/build/middlewares/validation.js +11 -18
- package/build/middlewares/validation.js.map +1 -1
- package/build/middlewares/validation.mjs +14 -0
- package/build/middlewares/validation.mjs.map +1 -0
- package/build/middlewares/web/index.js +4 -35
- package/build/middlewares/web/index.mjs +4 -0
- package/build/middlewares/web/render-web.d.ts +1 -1
- package/build/middlewares/web/render-web.js +80 -109
- package/build/middlewares/web/render-web.js.map +1 -1
- package/build/middlewares/web/render-web.mjs +79 -0
- package/build/middlewares/web/render-web.mjs.map +1 -0
- package/build/middlewares/web/security.js +29 -41
- package/build/middlewares/web/security.js.map +1 -1
- package/build/middlewares/web/security.mjs +30 -0
- package/build/middlewares/web/security.mjs.map +1 -0
- package/build/middlewares/web/utils/manifest.js +17 -18
- package/build/middlewares/web/utils/manifest.js.map +1 -1
- package/build/middlewares/web/utils/manifest.mjs +21 -0
- package/build/middlewares/web/utils/manifest.mjs.map +1 -0
- package/build/middlewares/web/utils/renderHTML.d.ts +5 -5
- package/build/middlewares/web/utils/renderHTML.js +109 -136
- package/build/middlewares/web/utils/renderHTML.js.map +1 -1
- package/build/middlewares/web/utils/renderHTML.mjs +113 -0
- package/build/middlewares/web/utils/renderHTML.mjs.map +1 -0
- package/build/middlewares/web/utils/template.d.ts +2 -2
- package/build/middlewares/web/utils/template.js +19 -20
- package/build/middlewares/web/utils/template.js.map +1 -1
- package/build/middlewares/web/utils/template.mjs +35 -0
- package/build/middlewares/web/utils/template.mjs.map +1 -0
- package/build/middlewares/web/utils/web-utils.js +17 -18
- package/build/middlewares/web/utils/web-utils.js.map +1 -1
- package/build/middlewares/web/utils/web-utils.mjs +18 -0
- package/build/middlewares/web/utils/web-utils.mjs.map +1 -0
- package/build/middlewares/web/web-api.d.ts +1 -2
- package/build/middlewares/web/web-api.js +18 -27
- package/build/middlewares/web/web-api.js.map +1 -1
- package/build/middlewares/web/web-api.mjs +19 -0
- package/build/middlewares/web/web-api.mjs.map +1 -0
- package/build/middlewares/web/web-middleware.js +16 -23
- package/build/middlewares/web/web-middleware.js.map +1 -1
- package/build/middlewares/web/web-middleware.mjs +16 -0
- package/build/middlewares/web/web-middleware.mjs.map +1 -0
- package/build/middlewares/web/web-urls.js +28 -29
- package/build/middlewares/web/web-urls.js.map +1 -1
- package/build/middlewares/web/web-urls.mjs +32 -0
- package/build/middlewares/web/web-urls.mjs.map +1 -0
- package/build/types.d.ts +2 -2
- package/package.json +24 -13
- package/build/index.js.map +0 -1
- package/build/middlewares/web/index.js.map +0 -1
- package/build/types.js +0 -6
- package/build/types.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
package/build/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { antiLoop } from './middlewares/antiLoop';
|
|
|
10
10
|
export { final } from './middlewares/final';
|
|
11
11
|
export { allow } from './middlewares/allow';
|
|
12
12
|
export { rateLimit } from './middlewares/rate-limit';
|
|
13
|
+
export { registerBodyParser } from './middlewares/body-parser';
|
|
13
14
|
export { userAgent } from './middlewares/user-agent';
|
|
14
15
|
export { webMiddleware, renderWebMiddleware, setSecurityWebHeaders } from './middlewares/web';
|
|
15
16
|
export { errorReportingMiddleware, handleError } from './middlewares/error';
|
package/build/index.js
CHANGED
|
@@ -1,221 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
get: function () {
|
|
64
|
-
return _dotfiles.dotfiles;
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
Object.defineProperty(exports, "encodeScopePackage", {
|
|
68
|
-
enumerable: true,
|
|
69
|
-
get: function () {
|
|
70
|
-
return _encodePkg.encodeScopePackage;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
Object.defineProperty(exports, "errorReportingMiddleware", {
|
|
74
|
-
enumerable: true,
|
|
75
|
-
get: function () {
|
|
76
|
-
return _error.errorReportingMiddleware;
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
Object.defineProperty(exports, "expectJson", {
|
|
80
|
-
enumerable: true,
|
|
81
|
-
get: function () {
|
|
82
|
-
return _json.expectJson;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
Object.defineProperty(exports, "final", {
|
|
86
|
-
enumerable: true,
|
|
87
|
-
get: function () {
|
|
88
|
-
return _final.final;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
Object.defineProperty(exports, "getRequestOptions", {
|
|
92
|
-
enumerable: true,
|
|
93
|
-
get: function () {
|
|
94
|
-
return _requestOptions.getRequestOptions;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
Object.defineProperty(exports, "handleError", {
|
|
98
|
-
enumerable: true,
|
|
99
|
-
get: function () {
|
|
100
|
-
return _error.handleError;
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
Object.defineProperty(exports, "log", {
|
|
104
|
-
enumerable: true,
|
|
105
|
-
get: function () {
|
|
106
|
-
return _log.log;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
Object.defineProperty(exports, "makeURLrelative", {
|
|
110
|
-
enumerable: true,
|
|
111
|
-
get: function () {
|
|
112
|
-
return _makeUrlRelative.makeURLrelative;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
Object.defineProperty(exports, "match", {
|
|
116
|
-
enumerable: true,
|
|
117
|
-
get: function () {
|
|
118
|
-
return _match.match;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
Object.defineProperty(exports, "media", {
|
|
122
|
-
enumerable: true,
|
|
123
|
-
get: function () {
|
|
124
|
-
return _media.media;
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
Object.defineProperty(exports, "rateLimit", {
|
|
128
|
-
enumerable: true,
|
|
129
|
-
get: function () {
|
|
130
|
-
return _rateLimit.rateLimit;
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
Object.defineProperty(exports, "renderWebMiddleware", {
|
|
134
|
-
enumerable: true,
|
|
135
|
-
get: function () {
|
|
136
|
-
return _web.renderWebMiddleware;
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
Object.defineProperty(exports, "setSecurityWebHeaders", {
|
|
140
|
-
enumerable: true,
|
|
141
|
-
get: function () {
|
|
142
|
-
return _web.setSecurityWebHeaders;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
Object.defineProperty(exports, "userAgent", {
|
|
146
|
-
enumerable: true,
|
|
147
|
-
get: function () {
|
|
148
|
-
return _userAgent.userAgent;
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
Object.defineProperty(exports, "validateName", {
|
|
152
|
-
enumerable: true,
|
|
153
|
-
get: function () {
|
|
154
|
-
return _validation.validateName;
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
Object.defineProperty(exports, "validatePackage", {
|
|
158
|
-
enumerable: true,
|
|
159
|
-
get: function () {
|
|
160
|
-
return _validation.validatePackage;
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
Object.defineProperty(exports, "webMiddleware", {
|
|
164
|
-
enumerable: true,
|
|
165
|
-
get: function () {
|
|
166
|
-
return _web.webMiddleware;
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
var _dotfiles = require("./middlewares/dotfiles");
|
|
170
|
-
var _match = require("./middlewares/match");
|
|
171
|
-
var _validation = require("./middlewares/validation");
|
|
172
|
-
var _media = require("./middlewares/media");
|
|
173
|
-
var _makeUrlRelative = require("./middlewares/make-url-relative");
|
|
174
|
-
var _encodePkg = require("./middlewares/encode-pkg");
|
|
175
|
-
var _json = require("./middlewares/json");
|
|
176
|
-
var _antiLoop = require("./middlewares/antiLoop");
|
|
177
|
-
var _final = require("./middlewares/final");
|
|
178
|
-
var _allow = require("./middlewares/allow");
|
|
179
|
-
var _rateLimit = require("./middlewares/rate-limit");
|
|
180
|
-
var _userAgent = require("./middlewares/user-agent");
|
|
181
|
-
var _web = require("./middlewares/web");
|
|
182
|
-
var _error = require("./middlewares/error");
|
|
183
|
-
var _requestOptions = require("./middlewares/request-options");
|
|
184
|
-
var _log = require("./middlewares/log");
|
|
185
|
-
var _types = require("./types");
|
|
186
|
-
Object.keys(_types).forEach(function (key) {
|
|
187
|
-
if (key === "default" || key === "__esModule") return;
|
|
188
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
189
|
-
if (key in exports && exports[key] === _types[key]) return;
|
|
190
|
-
Object.defineProperty(exports, key, {
|
|
191
|
-
enumerable: true,
|
|
192
|
-
get: function () {
|
|
193
|
-
return _types[key];
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
var _api_urls = require("./middlewares/api_urls");
|
|
198
|
-
Object.keys(_api_urls).forEach(function (key) {
|
|
199
|
-
if (key === "default" || key === "__esModule") return;
|
|
200
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
201
|
-
if (key in exports && exports[key] === _api_urls[key]) return;
|
|
202
|
-
Object.defineProperty(exports, key, {
|
|
203
|
-
enumerable: true,
|
|
204
|
-
get: function () {
|
|
205
|
-
return _api_urls[key];
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
var _webUrls = require("./middlewares/web/web-urls");
|
|
210
|
-
Object.keys(_webUrls).forEach(function (key) {
|
|
211
|
-
if (key === "default" || key === "__esModule") return;
|
|
212
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
213
|
-
if (key in exports && exports[key] === _webUrls[key]) return;
|
|
214
|
-
Object.defineProperty(exports, key, {
|
|
215
|
-
enumerable: true,
|
|
216
|
-
get: function () {
|
|
217
|
-
return _webUrls[key];
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_dotfiles = require("./middlewares/dotfiles.js");
|
|
6
|
+
const require_match = require("./middlewares/match.js");
|
|
7
|
+
const require_validation = require("./middlewares/validation.js");
|
|
8
|
+
const require_media = require("./middlewares/media.js");
|
|
9
|
+
const require_make_url_relative = require("./middlewares/make-url-relative.js");
|
|
10
|
+
const require_encode_pkg = require("./middlewares/encode-pkg.js");
|
|
11
|
+
const require_json = require("./middlewares/json.js");
|
|
12
|
+
const require_antiLoop = require("./middlewares/antiLoop.js");
|
|
13
|
+
const require_final = require("./middlewares/final.js");
|
|
14
|
+
const require_allow = require("./middlewares/allow.js");
|
|
15
|
+
const require_rate_limit = require("./middlewares/rate-limit.js");
|
|
16
|
+
const require_body_parser = require("./middlewares/body-parser.js");
|
|
17
|
+
const require_user_agent = require("./middlewares/user-agent.js");
|
|
18
|
+
const require_security = require("./middlewares/web/security.js");
|
|
19
|
+
const require_web_urls = require("./middlewares/web/web-urls.js");
|
|
20
|
+
const require_render_web = require("./middlewares/web/render-web.js");
|
|
21
|
+
const require_web_middleware = require("./middlewares/web/web-middleware.js");
|
|
22
|
+
require("./middlewares/web/index.js");
|
|
23
|
+
const require_error = require("./middlewares/error.js");
|
|
24
|
+
const require_request_options = require("./middlewares/request-options.js");
|
|
25
|
+
const require_log = require("./middlewares/log.js");
|
|
26
|
+
const require_api_urls = require("./middlewares/api_urls.js");
|
|
27
|
+
exports.DIST_TAGS_API_ENDPOINTS = require_api_urls.DIST_TAGS_API_ENDPOINTS;
|
|
28
|
+
exports.LOGIN_API_ENDPOINTS = require_api_urls.LOGIN_API_ENDPOINTS;
|
|
29
|
+
exports.LOG_STATUS_MESSAGE = require_log.LOG_STATUS_MESSAGE;
|
|
30
|
+
exports.LOG_VERDACCIO_BYTES = require_log.LOG_VERDACCIO_BYTES;
|
|
31
|
+
exports.LOG_VERDACCIO_ERROR = require_log.LOG_VERDACCIO_ERROR;
|
|
32
|
+
exports.PACKAGE_API_ENDPOINTS = require_api_urls.PACKAGE_API_ENDPOINTS;
|
|
33
|
+
exports.PING_API_ENDPOINTS = require_api_urls.PING_API_ENDPOINTS;
|
|
34
|
+
exports.PROFILE_API_ENDPOINTS = require_api_urls.PROFILE_API_ENDPOINTS;
|
|
35
|
+
exports.PUBLISH_API_ENDPOINTS = require_api_urls.PUBLISH_API_ENDPOINTS;
|
|
36
|
+
exports.SEARCH_API_ENDPOINTS = require_api_urls.SEARCH_API_ENDPOINTS;
|
|
37
|
+
exports.STARS_API_ENDPOINTS = require_api_urls.STARS_API_ENDPOINTS;
|
|
38
|
+
exports.TOKEN_API_ENDPOINTS = require_api_urls.TOKEN_API_ENDPOINTS;
|
|
39
|
+
exports.USER_API_ENDPOINTS = require_api_urls.USER_API_ENDPOINTS;
|
|
40
|
+
exports.WebUrls = require_web_urls.WebUrls;
|
|
41
|
+
exports.WebUrlsNamespace = require_web_urls.WebUrlsNamespace;
|
|
42
|
+
exports.allow = require_allow.allow;
|
|
43
|
+
exports.antiLoop = require_antiLoop.antiLoop;
|
|
44
|
+
exports.dotfiles = require_dotfiles.dotfiles;
|
|
45
|
+
exports.encodeScopePackage = require_encode_pkg.encodeScopePackage;
|
|
46
|
+
exports.errorReportingMiddleware = require_error.errorReportingMiddleware;
|
|
47
|
+
exports.expectJson = require_json.expectJson;
|
|
48
|
+
exports.final = require_final.final;
|
|
49
|
+
exports.getRequestOptions = require_request_options.getRequestOptions;
|
|
50
|
+
exports.handleError = require_error.handleError;
|
|
51
|
+
exports.log = require_log.log;
|
|
52
|
+
exports.makeURLrelative = require_make_url_relative.makeURLrelative;
|
|
53
|
+
exports.match = require_match.match;
|
|
54
|
+
exports.media = require_media.media;
|
|
55
|
+
exports.rateLimit = require_rate_limit.rateLimit;
|
|
56
|
+
exports.registerBodyParser = require_body_parser.registerBodyParser;
|
|
57
|
+
exports.renderWebMiddleware = require_render_web.renderWebMiddleware;
|
|
58
|
+
exports.setSecurityWebHeaders = require_security.setSecurityWebHeaders;
|
|
59
|
+
exports.userAgent = require_user_agent.userAgent;
|
|
60
|
+
exports.validateName = require_validation.validateName;
|
|
61
|
+
exports.validatePackage = require_validation.validatePackage;
|
|
62
|
+
exports.webMiddleware = require_web_middleware.default;
|
package/build/index.mjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { dotfiles } from "./middlewares/dotfiles.mjs";
|
|
2
|
+
import { match } from "./middlewares/match.mjs";
|
|
3
|
+
import { validateName, validatePackage } from "./middlewares/validation.mjs";
|
|
4
|
+
import { media } from "./middlewares/media.mjs";
|
|
5
|
+
import { makeURLrelative } from "./middlewares/make-url-relative.mjs";
|
|
6
|
+
import { encodeScopePackage } from "./middlewares/encode-pkg.mjs";
|
|
7
|
+
import { expectJson } from "./middlewares/json.mjs";
|
|
8
|
+
import { antiLoop } from "./middlewares/antiLoop.mjs";
|
|
9
|
+
import { final } from "./middlewares/final.mjs";
|
|
10
|
+
import { allow } from "./middlewares/allow.mjs";
|
|
11
|
+
import { rateLimit } from "./middlewares/rate-limit.mjs";
|
|
12
|
+
import { registerBodyParser } from "./middlewares/body-parser.mjs";
|
|
13
|
+
import { userAgent } from "./middlewares/user-agent.mjs";
|
|
14
|
+
import { setSecurityWebHeaders } from "./middlewares/web/security.mjs";
|
|
15
|
+
import { WebUrls, WebUrlsNamespace } from "./middlewares/web/web-urls.mjs";
|
|
16
|
+
import { renderWebMiddleware } from "./middlewares/web/render-web.mjs";
|
|
17
|
+
import web_middleware_default from "./middlewares/web/web-middleware.mjs";
|
|
18
|
+
import "./middlewares/web/index.mjs";
|
|
19
|
+
import { errorReportingMiddleware, handleError } from "./middlewares/error.mjs";
|
|
20
|
+
import { getRequestOptions } from "./middlewares/request-options.mjs";
|
|
21
|
+
import { LOG_STATUS_MESSAGE, LOG_VERDACCIO_BYTES, LOG_VERDACCIO_ERROR, log } from "./middlewares/log.mjs";
|
|
22
|
+
import { DIST_TAGS_API_ENDPOINTS, LOGIN_API_ENDPOINTS, PACKAGE_API_ENDPOINTS, PING_API_ENDPOINTS, PROFILE_API_ENDPOINTS, PUBLISH_API_ENDPOINTS, SEARCH_API_ENDPOINTS, STARS_API_ENDPOINTS, TOKEN_API_ENDPOINTS, USER_API_ENDPOINTS } from "./middlewares/api_urls.mjs";
|
|
23
|
+
export { DIST_TAGS_API_ENDPOINTS, LOGIN_API_ENDPOINTS, LOG_STATUS_MESSAGE, LOG_VERDACCIO_BYTES, LOG_VERDACCIO_ERROR, PACKAGE_API_ENDPOINTS, PING_API_ENDPOINTS, PROFILE_API_ENDPOINTS, PUBLISH_API_ENDPOINTS, SEARCH_API_ENDPOINTS, STARS_API_ENDPOINTS, TOKEN_API_ENDPOINTS, USER_API_ENDPOINTS, WebUrls, WebUrlsNamespace, allow, antiLoop, dotfiles, encodeScopePackage, errorReportingMiddleware, expectJson, final, getRequestOptions, handleError, log, makeURLrelative, match, media, rateLimit, registerBodyParser, renderWebMiddleware, setSecurityWebHeaders, userAgent, validateName, validatePackage, web_middleware_default as webMiddleware };
|
|
@@ -1,54 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
8
|
-
var _core = require("@verdaccio/core");
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
const debug = (0, _debug.default)('verdaccio:middleware:allow');
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let _verdaccio_core = require("@verdaccio/core");
|
|
3
|
+
let debug = require("debug");
|
|
4
|
+
debug = require_runtime.__toESM(debug);
|
|
5
|
+
//#region src/middlewares/allow.ts
|
|
6
|
+
var debug$1 = (0, debug.default)("verdaccio:middleware:allow");
|
|
11
7
|
function allow(auth, options = {
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
beforeAll: (_a, _b) => {},
|
|
9
|
+
afterAll: (_a, _b) => {}
|
|
14
10
|
}) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// last plugin (that's our built-in one) returns either
|
|
47
|
-
// cb(err) or cb(null, true), so this should never happen
|
|
48
|
-
throw _core.errorUtils.getInternalError(_core.API_ERROR.PLUGIN_ERROR);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
};
|
|
11
|
+
const { beforeAll, afterAll } = options;
|
|
12
|
+
return function(action) {
|
|
13
|
+
return function(req, res, next) {
|
|
14
|
+
req.pause();
|
|
15
|
+
const packageName = req.params.scope ? `${req.params.scope}/${req.params.package}` : req.params.package;
|
|
16
|
+
const packageVersion = req.params.filename ? _verdaccio_core.tarballUtils.getVersionFromTarball(req.params.filename) : req.params.version ? req.params.version : void 0;
|
|
17
|
+
const remote_user = req.remote_user;
|
|
18
|
+
debug$1("check if user %o can %o package %o version %o", remote_user?.name, action, packageName, packageVersion);
|
|
19
|
+
beforeAll?.({
|
|
20
|
+
action,
|
|
21
|
+
user: remote_user?.name
|
|
22
|
+
}, `[middleware/allow][@{action}] allow for @{user}`);
|
|
23
|
+
auth["allow_" + action]({
|
|
24
|
+
packageName,
|
|
25
|
+
packageVersion
|
|
26
|
+
}, remote_user, function(error, allowed) {
|
|
27
|
+
req.resume();
|
|
28
|
+
if (error) {
|
|
29
|
+
debug$1("user is NOT allowed to %o", action);
|
|
30
|
+
next(error);
|
|
31
|
+
} else if (allowed) {
|
|
32
|
+
debug$1("user is allowed to %o", action);
|
|
33
|
+
afterAll?.({
|
|
34
|
+
action,
|
|
35
|
+
user: remote_user?.name
|
|
36
|
+
}, `[middleware/allow][@{action}] allowed for @{user}`);
|
|
37
|
+
next();
|
|
38
|
+
} else throw _verdaccio_core.errorUtils.getInternalError(_verdaccio_core.API_ERROR.PLUGIN_ERROR);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
};
|
|
53
42
|
}
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.allow = allow;
|
|
45
|
+
|
|
54
46
|
//# sourceMappingURL=allow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allow.js","names":[
|
|
1
|
+
{"version":3,"file":"allow.js","names":[],"sources":["../../src/middlewares/allow.ts"],"sourcesContent":["import buildDebug from 'debug';\n\nimport { API_ERROR, errorUtils, tarballUtils } from '@verdaccio/core';\n\nimport type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types';\n\nconst debug = buildDebug('verdaccio:middleware:allow');\n\nexport function allow<T>(\n auth: T,\n options = {\n beforeAll: (_a: any, _b: any) => {},\n\n afterAll: (_a: any, _b: any) => {},\n }\n): Function {\n const { beforeAll, afterAll } = options;\n return function (action: string): Function {\n return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n req.pause();\n const packageName = req.params.scope\n ? `${req.params.scope}/${req.params.package}`\n : req.params.package;\n const packageVersion = req.params.filename\n ? tarballUtils.getVersionFromTarball(req.params.filename)\n : req.params.version\n ? req.params.version\n : undefined;\n const remote_user = req.remote_user;\n debug(\n 'check if user %o can %o package %o version %o',\n remote_user?.name,\n action,\n packageName,\n packageVersion\n );\n beforeAll?.(\n { action, user: remote_user?.name },\n `[middleware/allow][@{action}] allow for @{user}`\n );\n auth['allow_' + action](\n { packageName, packageVersion },\n remote_user,\n function (error, allowed): void {\n req.resume();\n if (error) {\n debug('user is NOT allowed to %o', action);\n next(error);\n } else if (allowed) {\n debug('user is allowed to %o', action);\n afterAll?.(\n { action, user: remote_user?.name },\n `[middleware/allow][@{action}] allowed for @{user}`\n );\n next();\n } else {\n // last plugin (that's our built-in one) returns either\n // cb(err) or cb(null, true), so this should never happen\n throw errorUtils.getInternalError(API_ERROR.PLUGIN_ERROR);\n }\n }\n );\n };\n };\n}\n"],"mappings":";;;;;AAMA,IAAM,WAAA,GAAA,MAAA,SAAmB,6BAA6B;AAEtD,SAAgB,MACd,MACA,UAAU;CACR,YAAY,IAAS,OAAY;CAEjC,WAAW,IAAS,OAAY;CACjC,EACS;CACV,MAAM,EAAE,WAAW,aAAa;AAChC,QAAO,SAAU,QAA0B;AACzC,SAAO,SAAU,KAAqB,KAAsB,MAA8B;AACxF,OAAI,OAAO;GACX,MAAM,cAAc,IAAI,OAAO,QAC3B,GAAG,IAAI,OAAO,MAAM,GAAG,IAAI,OAAO,YAClC,IAAI,OAAO;GACf,MAAM,iBAAiB,IAAI,OAAO,WAC9B,gBAAA,aAAa,sBAAsB,IAAI,OAAO,SAAS,GACvD,IAAI,OAAO,UACT,IAAI,OAAO,UACX,KAAA;GACN,MAAM,cAAc,IAAI;AACxB,WACE,iDACA,aAAa,MACb,QACA,aACA,eACD;AACD,eACE;IAAE;IAAQ,MAAM,aAAa;IAAM,EACnC,kDACD;AACD,QAAK,WAAW,QACd;IAAE;IAAa;IAAgB,EAC/B,aACA,SAAU,OAAO,SAAe;AAC9B,QAAI,QAAQ;AACZ,QAAI,OAAO;AACT,aAAM,6BAA6B,OAAO;AAC1C,UAAK,MAAM;eACF,SAAS;AAClB,aAAM,yBAAyB,OAAO;AACtC,gBACE;MAAE;MAAQ,MAAM,aAAa;MAAM,EACnC,oDACD;AACD,WAAM;UAIN,OAAM,gBAAA,WAAW,iBAAiB,gBAAA,UAAU,aAAa;KAG9D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { API_ERROR, errorUtils, tarballUtils } from "@verdaccio/core";
|
|
2
|
+
import buildDebug from "debug";
|
|
3
|
+
//#region src/middlewares/allow.ts
|
|
4
|
+
var debug = buildDebug("verdaccio:middleware:allow");
|
|
5
|
+
function allow(auth, options = {
|
|
6
|
+
beforeAll: (_a, _b) => {},
|
|
7
|
+
afterAll: (_a, _b) => {}
|
|
8
|
+
}) {
|
|
9
|
+
const { beforeAll, afterAll } = options;
|
|
10
|
+
return function(action) {
|
|
11
|
+
return function(req, res, next) {
|
|
12
|
+
req.pause();
|
|
13
|
+
const packageName = req.params.scope ? `${req.params.scope}/${req.params.package}` : req.params.package;
|
|
14
|
+
const packageVersion = req.params.filename ? tarballUtils.getVersionFromTarball(req.params.filename) : req.params.version ? req.params.version : void 0;
|
|
15
|
+
const remote_user = req.remote_user;
|
|
16
|
+
debug("check if user %o can %o package %o version %o", remote_user?.name, action, packageName, packageVersion);
|
|
17
|
+
beforeAll?.({
|
|
18
|
+
action,
|
|
19
|
+
user: remote_user?.name
|
|
20
|
+
}, `[middleware/allow][@{action}] allow for @{user}`);
|
|
21
|
+
auth["allow_" + action]({
|
|
22
|
+
packageName,
|
|
23
|
+
packageVersion
|
|
24
|
+
}, remote_user, function(error, allowed) {
|
|
25
|
+
req.resume();
|
|
26
|
+
if (error) {
|
|
27
|
+
debug("user is NOT allowed to %o", action);
|
|
28
|
+
next(error);
|
|
29
|
+
} else if (allowed) {
|
|
30
|
+
debug("user is allowed to %o", action);
|
|
31
|
+
afterAll?.({
|
|
32
|
+
action,
|
|
33
|
+
user: remote_user?.name
|
|
34
|
+
}, `[middleware/allow][@{action}] allowed for @{user}`);
|
|
35
|
+
next();
|
|
36
|
+
} else throw errorUtils.getInternalError(API_ERROR.PLUGIN_ERROR);
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { allow };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=allow.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allow.mjs","names":[],"sources":["../../src/middlewares/allow.ts"],"sourcesContent":["import buildDebug from 'debug';\n\nimport { API_ERROR, errorUtils, tarballUtils } from '@verdaccio/core';\n\nimport type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types';\n\nconst debug = buildDebug('verdaccio:middleware:allow');\n\nexport function allow<T>(\n auth: T,\n options = {\n beforeAll: (_a: any, _b: any) => {},\n\n afterAll: (_a: any, _b: any) => {},\n }\n): Function {\n const { beforeAll, afterAll } = options;\n return function (action: string): Function {\n return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n req.pause();\n const packageName = req.params.scope\n ? `${req.params.scope}/${req.params.package}`\n : req.params.package;\n const packageVersion = req.params.filename\n ? tarballUtils.getVersionFromTarball(req.params.filename)\n : req.params.version\n ? req.params.version\n : undefined;\n const remote_user = req.remote_user;\n debug(\n 'check if user %o can %o package %o version %o',\n remote_user?.name,\n action,\n packageName,\n packageVersion\n );\n beforeAll?.(\n { action, user: remote_user?.name },\n `[middleware/allow][@{action}] allow for @{user}`\n );\n auth['allow_' + action](\n { packageName, packageVersion },\n remote_user,\n function (error, allowed): void {\n req.resume();\n if (error) {\n debug('user is NOT allowed to %o', action);\n next(error);\n } else if (allowed) {\n debug('user is allowed to %o', action);\n afterAll?.(\n { action, user: remote_user?.name },\n `[middleware/allow][@{action}] allowed for @{user}`\n );\n next();\n } else {\n // last plugin (that's our built-in one) returns either\n // cb(err) or cb(null, true), so this should never happen\n throw errorUtils.getInternalError(API_ERROR.PLUGIN_ERROR);\n }\n }\n );\n };\n };\n}\n"],"mappings":";;;AAMA,IAAM,QAAQ,WAAW,6BAA6B;AAEtD,SAAgB,MACd,MACA,UAAU;CACR,YAAY,IAAS,OAAY;CAEjC,WAAW,IAAS,OAAY;CACjC,EACS;CACV,MAAM,EAAE,WAAW,aAAa;AAChC,QAAO,SAAU,QAA0B;AACzC,SAAO,SAAU,KAAqB,KAAsB,MAA8B;AACxF,OAAI,OAAO;GACX,MAAM,cAAc,IAAI,OAAO,QAC3B,GAAG,IAAI,OAAO,MAAM,GAAG,IAAI,OAAO,YAClC,IAAI,OAAO;GACf,MAAM,iBAAiB,IAAI,OAAO,WAC9B,aAAa,sBAAsB,IAAI,OAAO,SAAS,GACvD,IAAI,OAAO,UACT,IAAI,OAAO,UACX,KAAA;GACN,MAAM,cAAc,IAAI;AACxB,SACE,iDACA,aAAa,MACb,QACA,aACA,eACD;AACD,eACE;IAAE;IAAQ,MAAM,aAAa;IAAM,EACnC,kDACD;AACD,QAAK,WAAW,QACd;IAAE;IAAa;IAAgB,EAC/B,aACA,SAAU,OAAO,SAAe;AAC9B,QAAI,QAAQ;AACZ,QAAI,OAAO;AACT,WAAM,6BAA6B,OAAO;AAC1C,UAAK,MAAM;eACF,SAAS;AAClB,WAAM,yBAAyB,OAAO;AACtC,gBACE;MAAE;MAAQ,MAAM,aAAa;MAAM,EACnC,oDACD;AACD,WAAM;UAIN,OAAM,WAAW,iBAAiB,UAAU,aAAa;KAG9D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { Config } from '@verdaccio/types';
|
|
2
|
+
import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* A middleware that avoid a registry points itself as proxy and avoid create infinite loops.
|
|
5
5
|
* @param config
|
|
@@ -1,44 +1,26 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.antiLoop = antiLoop;
|
|
7
|
-
var _core = require("@verdaccio/core");
|
|
1
|
+
require("../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let _verdaccio_core = require("@verdaccio/core");
|
|
3
|
+
//#region src/middlewares/antiLoop.ts
|
|
8
4
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
* A middleware that avoid a registry points itself as proxy and avoid create infinite loops.
|
|
6
|
+
* @param config
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
13
9
|
function antiLoop(config) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// received-by = ( uri-host [ ":" port ] ) / pseudonym
|
|
27
|
-
|
|
28
|
-
// Split the trimmed header value into parts
|
|
29
|
-
const parts = arr[i].trim().split(/\s+/);
|
|
30
|
-
// Check if we have at least protocol/version and received-by parts
|
|
31
|
-
if (parts.length >= 2) {
|
|
32
|
-
// Get the received-by value (server id), removing any comment
|
|
33
|
-
const serverId = parts[1].split('(')[0].trim();
|
|
34
|
-
if (serverId === config.server_id) {
|
|
35
|
-
return next(_core.errorUtils.getCode(_core.HTTP_STATUS.LOOP_DETECTED, 'loop detected'));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
next();
|
|
42
|
-
};
|
|
10
|
+
return function(req, res, next) {
|
|
11
|
+
if (req?.headers?.via != null) {
|
|
12
|
+
const arr = req.get("via")?.split(",");
|
|
13
|
+
if (Array.isArray(arr)) for (let i = 0; i < arr.length; i++) {
|
|
14
|
+
const parts = arr[i].trim().split(/\s+/);
|
|
15
|
+
if (parts.length >= 2) {
|
|
16
|
+
if (parts[1].split("(")[0].trim() === config.server_id) return next(_verdaccio_core.errorUtils.getCode(_verdaccio_core.HTTP_STATUS.LOOP_DETECTED, "loop detected"));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
next();
|
|
21
|
+
};
|
|
43
22
|
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.antiLoop = antiLoop;
|
|
25
|
+
|
|
44
26
|
//# sourceMappingURL=antiLoop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antiLoop.js","names":[
|
|
1
|
+
{"version":3,"file":"antiLoop.js","names":[],"sources":["../../src/middlewares/antiLoop.ts"],"sourcesContent":["import { HTTP_STATUS, errorUtils } from '@verdaccio/core';\nimport type { Config } from '@verdaccio/types';\n\nimport type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types';\n\n/**\n * A middleware that avoid a registry points itself as proxy and avoid create infinite loops.\n * @param config\n * @returns\n */\nexport function antiLoop(config: Config) {\n return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {\n if (req?.headers?.via != null) {\n const arr = req.get('via')?.split(',');\n if (Array.isArray(arr)) {\n for (let i = 0; i < arr.length; i++) {\n // the \"via\" header must contain a specific value, this has to be in sync\n // with the proxy request\n // match eg: Server 1 or Server 2\n\n // RFC 7230: Via = 1*( \",\" OWS Via-value )\n // Via-value = received-protocol RWS received-by [ RWS comment ]\n // received-protocol = [ protocol-name \"/\" ] protocol-version\n // received-by = ( uri-host [ \":\" port ] ) / pseudonym\n\n // Split the trimmed header value into parts\n const parts = arr[i].trim().split(/\\s+/);\n // Check if we have at least protocol/version and received-by parts\n if (parts.length >= 2) {\n // Get the received-by value (server id), removing any comment\n const serverId = parts[1].split('(')[0].trim();\n if (serverId === config.server_id) {\n return next(errorUtils.getCode(HTTP_STATUS.LOOP_DETECTED, 'loop detected'));\n }\n }\n }\n }\n }\n next();\n };\n}\n"],"mappings":";;;;;;;;AAUA,SAAgB,SAAS,QAAgB;AACvC,QAAO,SAAU,KAAqB,KAAsB,MAA8B;AACxF,MAAI,KAAK,SAAS,OAAO,MAAM;GAC7B,MAAM,MAAM,IAAI,IAAI,MAAM,EAAE,MAAM,IAAI;AACtC,OAAI,MAAM,QAAQ,IAAI,CACpB,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;IAWnC,MAAM,QAAQ,IAAI,GAAG,MAAM,CAAC,MAAM,MAAM;AAExC,QAAI,MAAM,UAAU;SAED,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,KAC7B,OAAO,UACtB,QAAO,KAAK,gBAAA,WAAW,QAAQ,gBAAA,YAAY,eAAe,gBAAgB,CAAC;;;;AAMrF,QAAM"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { HTTP_STATUS, errorUtils } from "@verdaccio/core";
|
|
2
|
+
//#region src/middlewares/antiLoop.ts
|
|
3
|
+
/**
|
|
4
|
+
* A middleware that avoid a registry points itself as proxy and avoid create infinite loops.
|
|
5
|
+
* @param config
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
function antiLoop(config) {
|
|
9
|
+
return function(req, res, next) {
|
|
10
|
+
if (req?.headers?.via != null) {
|
|
11
|
+
const arr = req.get("via")?.split(",");
|
|
12
|
+
if (Array.isArray(arr)) for (let i = 0; i < arr.length; i++) {
|
|
13
|
+
const parts = arr[i].trim().split(/\s+/);
|
|
14
|
+
if (parts.length >= 2) {
|
|
15
|
+
if (parts[1].split("(")[0].trim() === config.server_id) return next(errorUtils.getCode(HTTP_STATUS.LOOP_DETECTED, "loop detected"));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
next();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { antiLoop };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=antiLoop.mjs.map
|