@verdaccio/web 7.0.0-next.5 → 7.0.1-next-8.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/CHANGELOG.md CHANGED
@@ -1,5 +1,335 @@
1
1
  # @verdaccio/web
2
2
 
3
+ ## 7.0.1-next-8.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - @verdaccio/logger@8.0.0-next-8.0
9
+ - @verdaccio/tarball@13.0.0-next-8.0
10
+ - @verdaccio/middleware@8.0.0-next-8.0
11
+ - @verdaccio/core@8.0.0-next-8.0
12
+ - @verdaccio/url@13.0.0-next-8.0
13
+ - @verdaccio/loaders@8.0.0-next-8.0
14
+ - @verdaccio/config@8.0.0-next-8.0
15
+ - @verdaccio/store@8.0.0-next-8.0
16
+ - @verdaccio/auth@7.0.1-next-8.0
17
+ - @verdaccio/utils@7.0.1-next-8.0
18
+
19
+ ## 7.0.0
20
+
21
+ ### Major Changes
22
+
23
+ - 47f61c6: feat!: bump to v7
24
+ - e7ebccb: update major dependencies, remove old nodejs support
25
+
26
+ ### Patch Changes
27
+
28
+ - 7c9f3cf: chore: improve startup logging
29
+ - Updated dependencies [e5624e1]
30
+ - Updated dependencies [47f61c6]
31
+ - Updated dependencies [2a6ee33]
32
+ - Updated dependencies [10dd81f]
33
+ - Updated dependencies [5bfab62]
34
+ - Updated dependencies [6c5f7a4]
35
+ - Updated dependencies [6e764e3]
36
+ - Updated dependencies [b0946b2]
37
+ - Updated dependencies [ccc7bd1]
38
+ - Updated dependencies [8c10a3e]
39
+ - Updated dependencies [daceb6d]
40
+ - Updated dependencies [e14b064]
41
+ - Updated dependencies [e7ebccb]
42
+ - Updated dependencies [c9962fe]
43
+ - Updated dependencies [7400830]
44
+ - Updated dependencies [f967a69]
45
+ - Updated dependencies [de6ff5c]
46
+ - Updated dependencies [f047cc8]
47
+ - Updated dependencies [a99a4bb]
48
+ - Updated dependencies [c807f0c]
49
+ - Updated dependencies [38b1e82]
50
+ - Updated dependencies [a05a7d8]
51
+ - Updated dependencies [7c9f3cf]
52
+ - Updated dependencies [c31aec8]
53
+ - Updated dependencies [bd8703e]
54
+ - Updated dependencies [4dc62a8]
55
+ - Updated dependencies [253cc13]
56
+ - Updated dependencies [4d96324]
57
+ - @verdaccio/store@7.0.0
58
+ - @verdaccio/auth@7.0.0
59
+ - @verdaccio/config@7.0.0
60
+ - @verdaccio/core@7.0.0
61
+ - @verdaccio/tarball@12.0.0
62
+ - @verdaccio/url@12.0.0
63
+ - @verdaccio/loaders@7.0.0
64
+ - @verdaccio/logger@7.0.0
65
+ - @verdaccio/middleware@7.0.0
66
+ - @verdaccio/utils@7.0.0
67
+
68
+ ## 7.0.0-next-8.21
69
+
70
+ ### Patch Changes
71
+
72
+ - 7c9f3cf: chore: improve startup logging
73
+ - Updated dependencies [8c10a3e]
74
+ - Updated dependencies [a05a7d8]
75
+ - Updated dependencies [7c9f3cf]
76
+ - @verdaccio/config@7.0.0-next-8.21
77
+ - @verdaccio/core@7.0.0-next-8.21
78
+ - @verdaccio/loaders@7.0.0-next-8.21
79
+ - @verdaccio/store@7.0.0-next-8.21
80
+ - @verdaccio/auth@7.0.0-next-8.21
81
+ - @verdaccio/middleware@7.0.0-next-8.21
82
+ - @verdaccio/tarball@12.0.0-next-8.21
83
+ - @verdaccio/url@12.0.0-next-8.21
84
+ - @verdaccio/utils@7.0.0-next-8.21
85
+ - @verdaccio/logger@7.0.0-next-8.21
86
+
87
+ ## 7.0.0-next-7.20
88
+
89
+ ### Patch Changes
90
+
91
+ - Updated dependencies [ccc7bd1]
92
+ - @verdaccio/middleware@7.0.0-next-7.20
93
+ - @verdaccio/url@12.0.0-next-7.20
94
+ - @verdaccio/auth@7.0.0-next-7.20
95
+ - @verdaccio/tarball@12.0.0-next-7.20
96
+ - @verdaccio/store@7.0.0-next-7.20
97
+ - @verdaccio/core@7.0.0-next-7.20
98
+ - @verdaccio/config@7.0.0-next-7.20
99
+ - @verdaccio/loaders@7.0.0-next-7.20
100
+ - @verdaccio/utils@7.0.0-next-7.20
101
+ - @verdaccio/logger@7.0.0-next-7.20
102
+
103
+ ## 7.0.0-next-7.19
104
+
105
+ ### Patch Changes
106
+
107
+ - Updated dependencies [2a6ee33]
108
+ - Updated dependencies [6c5f7a4]
109
+ - Updated dependencies [c31aec8]
110
+ - @verdaccio/middleware@7.0.0-next-7.19
111
+ - @verdaccio/config@7.0.0-next-7.19
112
+ - @verdaccio/auth@7.0.0-next-7.19
113
+ - @verdaccio/loaders@7.0.0-next-7.19
114
+ - @verdaccio/store@7.0.0-next-7.19
115
+ - @verdaccio/core@7.0.0-next-7.19
116
+ - @verdaccio/tarball@12.0.0-next-7.19
117
+ - @verdaccio/url@12.0.0-next-7.19
118
+ - @verdaccio/utils@7.0.0-next-7.19
119
+ - @verdaccio/logger@7.0.0-next-7.19
120
+
121
+ ## 7.0.0-next-7.18
122
+
123
+ ### Patch Changes
124
+
125
+ - Updated dependencies [10dd81f]
126
+ - @verdaccio/middleware@7.0.0-next-7.18
127
+ - @verdaccio/config@7.0.0-next-7.18
128
+ - @verdaccio/auth@7.0.0-next-7.18
129
+ - @verdaccio/core@7.0.0-next-7.18
130
+ - @verdaccio/tarball@12.0.0-next-7.18
131
+ - @verdaccio/url@12.0.0-next-7.18
132
+ - @verdaccio/loaders@7.0.0-next-7.18
133
+ - @verdaccio/logger@7.0.0-next-7.18
134
+ - @verdaccio/store@7.0.0-next-7.18
135
+ - @verdaccio/utils@7.0.0-next-7.18
136
+
137
+ ## 7.0.0-next-7.17
138
+
139
+ ### Patch Changes
140
+
141
+ - Updated dependencies [6e764e3]
142
+ - Updated dependencies [de6ff5c]
143
+ - @verdaccio/config@7.0.0-next-7.17
144
+ - @verdaccio/core@7.0.0-next-7.17
145
+ - @verdaccio/store@7.0.0-next-7.17
146
+ - @verdaccio/auth@7.0.0-next-7.17
147
+ - @verdaccio/tarball@12.0.0-next-7.17
148
+ - @verdaccio/url@12.0.0-next-7.17
149
+ - @verdaccio/loaders@7.0.0-next-7.17
150
+ - @verdaccio/logger@7.0.0-next-7.17
151
+ - @verdaccio/middleware@7.0.0-next-7.17
152
+ - @verdaccio/utils@7.0.0-next-7.17
153
+
154
+ ## 7.0.0-next-7.16
155
+
156
+ ### Patch Changes
157
+
158
+ - Updated dependencies [e5624e1]
159
+ - Updated dependencies [5bfab62]
160
+ - Updated dependencies [38b1e82]
161
+ - @verdaccio/store@7.0.0-next-7.16
162
+ - @verdaccio/tarball@12.0.0-next-7.16
163
+ - @verdaccio/url@12.0.0-next-7.16
164
+ - @verdaccio/logger@7.0.0-next-7.16
165
+ - @verdaccio/middleware@7.0.0-next-7.16
166
+ - @verdaccio/auth@7.0.0-next-7.16
167
+ - @verdaccio/loaders@7.0.0-next-7.16
168
+ - @verdaccio/core@7.0.0-next-7.16
169
+ - @verdaccio/config@7.0.0-next-7.16
170
+ - @verdaccio/utils@7.0.0-next-7.16
171
+
172
+ ## 7.0.0-next-7.15
173
+
174
+ ### Patch Changes
175
+
176
+ - Updated dependencies [7400830]
177
+ - Updated dependencies [bd8703e]
178
+ - @verdaccio/tarball@12.0.0-next-7.15
179
+ - @verdaccio/store@7.0.0-next-7.15
180
+ - @verdaccio/core@7.0.0-next-7.15
181
+ - @verdaccio/config@7.0.0-next-7.15
182
+ - @verdaccio/auth@7.0.0-next-7.15
183
+ - @verdaccio/url@12.0.0-next-7.15
184
+ - @verdaccio/loaders@7.0.0-next-7.15
185
+ - @verdaccio/logger@7.0.0-next-7.15
186
+ - @verdaccio/middleware@7.0.0-next-7.15
187
+ - @verdaccio/utils@7.0.0-next-7.15
188
+
189
+ ## 7.0.0-next-7.14
190
+
191
+ ### Patch Changes
192
+
193
+ - Updated dependencies [b0946b2]
194
+ - Updated dependencies [f967a69]
195
+ - Updated dependencies [4dc62a8]
196
+ - Updated dependencies [253cc13]
197
+ - @verdaccio/middleware@7.0.0-next-7.14
198
+ - @verdaccio/url@12.0.0-next-7.14
199
+ - @verdaccio/store@7.0.0-next-7.14
200
+ - @verdaccio/auth@7.0.0-next-7.14
201
+ - @verdaccio/tarball@12.0.0-next-7.14
202
+ - @verdaccio/core@7.0.0-next-7.14
203
+ - @verdaccio/config@7.0.0-next-7.14
204
+ - @verdaccio/loaders@7.0.0-next-7.14
205
+ - @verdaccio/utils@7.0.0-next-7.14
206
+ - @verdaccio/logger@7.0.0-next-7.14
207
+
208
+ ## 7.0.0-next-7.13
209
+
210
+ ### Patch Changes
211
+
212
+ - Updated dependencies [a99a4bb]
213
+ - @verdaccio/config@7.0.0-next-7.13
214
+ - @verdaccio/auth@7.0.0-next-7.13
215
+ - @verdaccio/loaders@7.0.0-next-7.13
216
+ - @verdaccio/middleware@7.0.0-next-7.13
217
+ - @verdaccio/store@7.0.0-next-7.13
218
+ - @verdaccio/logger@7.0.0-next-7.13
219
+ - @verdaccio/core@7.0.0-next-7.13
220
+ - @verdaccio/tarball@12.0.0-next-7.13
221
+ - @verdaccio/url@12.0.0-next-7.13
222
+ - @verdaccio/utils@7.0.0-next-7.13
223
+
224
+ ## 7.0.0-next-7.12
225
+
226
+ ### Patch Changes
227
+
228
+ - @verdaccio/store@7.0.0-next-7.12
229
+ - @verdaccio/core@7.0.0-next-7.12
230
+ - @verdaccio/config@7.0.0-next-7.12
231
+ - @verdaccio/auth@7.0.0-next-7.12
232
+ - @verdaccio/tarball@12.0.0-next-7.12
233
+ - @verdaccio/url@12.0.0-next-7.12
234
+ - @verdaccio/loaders@7.0.0-next-7.12
235
+ - @verdaccio/middleware@7.0.0-next-7.12
236
+ - @verdaccio/utils@7.0.0-next-7.12
237
+ - @verdaccio/logger@7.0.0-next-7.12
238
+
239
+ ## 7.0.0-next-7.11
240
+
241
+ ### Patch Changes
242
+
243
+ - Updated dependencies [c9962fe]
244
+ - @verdaccio/config@7.0.0-next-7.11
245
+ - @verdaccio/auth@7.0.0-next-7.11
246
+ - @verdaccio/loaders@7.0.0-next-7.11
247
+ - @verdaccio/middleware@7.0.0-next-7.11
248
+ - @verdaccio/store@7.0.0-next-7.11
249
+ - @verdaccio/core@7.0.0-next-7.11
250
+ - @verdaccio/tarball@12.0.0-next-7.11
251
+ - @verdaccio/url@12.0.0-next-7.11
252
+ - @verdaccio/utils@7.0.0-next-7.11
253
+ - @verdaccio/logger@7.0.0-next-7.11
254
+
255
+ ## 7.0.0-next-7.10
256
+
257
+ ### Patch Changes
258
+
259
+ - @verdaccio/core@7.0.0-next-7.10
260
+ - @verdaccio/config@7.0.0-next-7.10
261
+ - @verdaccio/auth@7.0.0-next-7.10
262
+ - @verdaccio/tarball@12.0.0-next-7.10
263
+ - @verdaccio/url@12.0.0-next-7.10
264
+ - @verdaccio/loaders@7.0.0-next-7.10
265
+ - @verdaccio/middleware@7.0.0-next-7.10
266
+ - @verdaccio/store@7.0.0-next-7.10
267
+ - @verdaccio/utils@7.0.0-next-7.10
268
+ - @verdaccio/logger@7.0.0-next-7.10
269
+
270
+ ## 7.0.0-next-7.9
271
+
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies [c807f0c]
275
+ - @verdaccio/store@7.0.0-next-7.9
276
+ - @verdaccio/core@7.0.0-next-7.9
277
+ - @verdaccio/config@7.0.0-next-7.9
278
+ - @verdaccio/auth@7.0.0-next-7.9
279
+ - @verdaccio/tarball@12.0.0-next-7.9
280
+ - @verdaccio/url@12.0.0-next-7.9
281
+ - @verdaccio/loaders@7.0.0-next-7.9
282
+ - @verdaccio/middleware@7.0.0-next-7.9
283
+ - @verdaccio/utils@7.0.0-next-7.9
284
+ - @verdaccio/logger@7.0.0-next-7.9
285
+
286
+ ## 7.0.0-next-7.8
287
+
288
+ ### Patch Changes
289
+
290
+ - @verdaccio/core@7.0.0-next-7.8
291
+ - @verdaccio/config@7.0.0-next-7.8
292
+ - @verdaccio/auth@7.0.0-next-7.8
293
+ - @verdaccio/tarball@12.0.0-next-7.8
294
+ - @verdaccio/url@12.0.0-next-7.8
295
+ - @verdaccio/loaders@7.0.0-next-7.8
296
+ - @verdaccio/middleware@7.0.0-next-7.8
297
+ - @verdaccio/store@7.0.0-next-7.8
298
+ - @verdaccio/utils@7.0.0-next-7.8
299
+ - @verdaccio/logger@7.0.0-next-7.8
300
+
301
+ ## 7.0.0-next-7.7
302
+
303
+ ### Patch Changes
304
+
305
+ - @verdaccio/core@7.0.0-next-7.7
306
+ - @verdaccio/config@7.0.0-next-7.7
307
+ - @verdaccio/auth@7.0.0-next-7.7
308
+ - @verdaccio/tarball@12.0.0-next-7.7
309
+ - @verdaccio/url@12.0.0-next-7.7
310
+ - @verdaccio/loaders@7.0.0-next-7.7
311
+ - @verdaccio/middleware@7.0.0-next-7.7
312
+ - @verdaccio/store@7.0.0-next-7.7
313
+ - @verdaccio/utils@7.0.0-next-7.7
314
+ - @verdaccio/logger@7.0.0-next-7.7
315
+
316
+ ## 7.0.0-next.6
317
+
318
+ ### Patch Changes
319
+
320
+ - Updated dependencies [e14b064]
321
+ - Updated dependencies [4d96324]
322
+ - @verdaccio/store@7.0.0-next.6
323
+ - @verdaccio/tarball@12.0.0-next.6
324
+ - @verdaccio/config@7.0.0-next.6
325
+ - @verdaccio/auth@7.0.0-next.6
326
+ - @verdaccio/loaders@7.0.0-next.6
327
+ - @verdaccio/middleware@7.0.0-next.6
328
+ - @verdaccio/core@7.0.0-next.6
329
+ - @verdaccio/url@12.0.0-next.6
330
+ - @verdaccio/utils@7.0.0-next.6
331
+ - @verdaccio/logger@7.0.0-next.6
332
+
3
333
  ## 7.0.0-next.5
4
334
 
5
335
  ### Patch Changes
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Verdaccio contributors
3
+ Copyright (c) 2024 Verdaccio contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -12,7 +12,7 @@ var _readme = _interopRequireDefault(require("./readme"));
12
12
  var _search = _interopRequireDefault(require("./search"));
13
13
  var _sidebar = _interopRequireDefault(require("./sidebar"));
14
14
  var _user = _interopRequireDefault(require("./user"));
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  var _default = (auth, storage, config) => {
17
17
  var _config$web;
18
18
  const route = (0, _express.Router)(); /* eslint new-cap: 0 */
@@ -21,7 +21,7 @@ var _default = (auth, storage, config) => {
21
21
  // 2 minutes
22
22
  max: 5000,
23
23
  // limit each IP to 1000 requests per windowMs
24
- ...(config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.rateLimit)
24
+ ...(config === null || config === void 0 || (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.rateLimit)
25
25
  }));
26
26
  route.use('/data/', (0, _package.default)(storage, auth, config));
27
27
  route.use('/data/', (0, _search.default)(storage, auth));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_express","require","_middleware","_webUtils","_package","_interopRequireDefault","_readme","_search","_sidebar","_user","obj","__esModule","default","_default","auth","storage","config","_config$web","route","Router","use","rateLimit","windowMs","max","web","packageApi","search","sidebar","readme","hasLogin","user","exports"],"sources":["../../src/api/index.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { rateLimit } from '@verdaccio/middleware';\n\nimport { hasLogin } from '../web-utils';\nimport packageApi from './package';\nimport readme from './readme';\nimport search from './search';\nimport sidebar from './sidebar';\nimport user from './user';\n\nexport default (auth, storage, config) => {\n const route = Router(); /* eslint new-cap: 0 */\n route.use(\n '/data/',\n rateLimit({\n windowMs: 2 * 60 * 1000, // 2 minutes\n max: 5000, // limit each IP to 1000 requests per windowMs\n ...config?.web?.rateLimit,\n })\n );\n route.use('/data/', packageApi(storage, auth, config));\n route.use('/data/', search(storage, auth));\n route.use('/data/', sidebar(config, storage, auth));\n route.use('/data/', readme(storage, auth));\n if (hasLogin(config)) {\n route.use('/sec/', user(auth, config));\n }\n return route;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,OAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,QAAA,GAAAH,sBAAA,CAAAJ,OAAA;AACA,IAAAQ,KAAA,GAAAJ,sBAAA,CAAAJ,OAAA;AAA0B,SAAAI,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAEXA,CAACC,IAAI,EAAEC,OAAO,EAAEC,MAAM,KAAK;EAAA,IAAAC,WAAA;EACxC,MAAMC,KAAK,GAAG,IAAAC,eAAM,EAAC,CAAC,CAAC,CAAC;EACxBD,KAAK,CAACE,GAAG,CACP,QAAQ,EACR,IAAAC,qBAAS,EAAC;IACRC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IACzBC,GAAG,EAAE,IAAI;IAAE;IACX,IAAGP,MAAM,aAANA,MAAM,wBAAAC,WAAA,GAAND,MAAM,CAAEQ,GAAG,cAAAP,WAAA,uBAAXA,WAAA,CAAaI,SAAS;EAC3B,CAAC,CACH,CAAC;EACDH,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAK,gBAAU,EAACV,OAAO,EAAED,IAAI,EAAEE,MAAM,CAAC,CAAC;EACtDE,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAM,eAAM,EAACX,OAAO,EAAED,IAAI,CAAC,CAAC;EAC1CI,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAO,gBAAO,EAACX,MAAM,EAAED,OAAO,EAAED,IAAI,CAAC,CAAC;EACnDI,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAQ,eAAM,EAACb,OAAO,EAAED,IAAI,CAAC,CAAC;EAC1C,IAAI,IAAAe,kBAAQ,EAACb,MAAM,CAAC,EAAE;IACpBE,KAAK,CAACE,GAAG,CAAC,OAAO,EAAE,IAAAU,aAAI,EAAChB,IAAI,EAAEE,MAAM,CAAC,CAAC;EACxC;EACA,OAAOE,KAAK;AACd,CAAC;AAAAa,OAAA,CAAAnB,OAAA,GAAAC,QAAA"}
1
+ {"version":3,"file":"index.js","names":["_express","require","_middleware","_webUtils","_package","_interopRequireDefault","_readme","_search","_sidebar","_user","e","__esModule","default","_default","auth","storage","config","_config$web","route","Router","use","rateLimit","windowMs","max","web","packageApi","search","sidebar","readme","hasLogin","user","exports"],"sources":["../../src/api/index.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { rateLimit } from '@verdaccio/middleware';\n\nimport { hasLogin } from '../web-utils';\nimport packageApi from './package';\nimport readme from './readme';\nimport search from './search';\nimport sidebar from './sidebar';\nimport user from './user';\n\nexport default (auth, storage, config) => {\n const route = Router(); /* eslint new-cap: 0 */\n route.use(\n '/data/',\n rateLimit({\n windowMs: 2 * 60 * 1000, // 2 minutes\n max: 5000, // limit each IP to 1000 requests per windowMs\n ...config?.web?.rateLimit,\n })\n );\n route.use('/data/', packageApi(storage, auth, config));\n route.use('/data/', search(storage, auth));\n route.use('/data/', sidebar(config, storage, auth));\n route.use('/data/', readme(storage, auth));\n if (hasLogin(config)) {\n route.use('/sec/', user(auth, config));\n }\n return route;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,OAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,QAAA,GAAAH,sBAAA,CAAAJ,OAAA;AACA,IAAAQ,KAAA,GAAAJ,sBAAA,CAAAJ,OAAA;AAA0B,SAAAI,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAEXA,CAACC,IAAI,EAAEC,OAAO,EAAEC,MAAM,KAAK;EAAA,IAAAC,WAAA;EACxC,MAAMC,KAAK,GAAG,IAAAC,eAAM,EAAC,CAAC,CAAC,CAAC;EACxBD,KAAK,CAACE,GAAG,CACP,QAAQ,EACR,IAAAC,qBAAS,EAAC;IACRC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IACzBC,GAAG,EAAE,IAAI;IAAE;IACX,IAAGP,MAAM,aAANA,MAAM,gBAAAC,WAAA,GAAND,MAAM,CAAEQ,GAAG,cAAAP,WAAA,uBAAXA,WAAA,CAAaI,SAAS;EAC3B,CAAC,CACH,CAAC;EACDH,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAK,gBAAU,EAACV,OAAO,EAAED,IAAI,EAAEE,MAAM,CAAC,CAAC;EACtDE,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAM,eAAM,EAACX,OAAO,EAAED,IAAI,CAAC,CAAC;EAC1CI,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAO,gBAAO,EAACX,MAAM,EAAED,OAAO,EAAED,IAAI,CAAC,CAAC;EACnDI,KAAK,CAACE,GAAG,CAAC,QAAQ,EAAE,IAAAQ,eAAM,EAACb,OAAO,EAAED,IAAI,CAAC,CAAC;EAC1C,IAAI,IAAAe,kBAAQ,EAACb,MAAM,CAAC,EAAE;IACpBE,KAAK,CAACE,GAAG,CAAC,OAAO,EAAE,IAAAU,aAAI,EAAChB,IAAI,EAAEE,MAAM,CAAC,CAAC;EACxC;EACA,OAAOE,KAAK;AACd,CAAC;AAAAa,OAAA,CAAAnB,OAAA,GAAAC,QAAA","ignoreList":[]}
@@ -30,7 +30,7 @@ var _middleware = require("@verdaccio/middleware");
30
30
  var _tarball = require("@verdaccio/tarball");
31
31
  var _utils = require("@verdaccio/utils");
32
32
  var _webUtils = require("../web-utils");
33
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
34
34
  // Was required by other packages
35
35
 
36
36
  const getOrder = (order = 'asc') => {
@@ -39,7 +39,7 @@ const getOrder = (order = 'asc') => {
39
39
  const debug = (0, _debug.default)('verdaccio:web:api:package');
40
40
  function addPackageWebApi(storage, auth, config) {
41
41
  var _ref, _config$web;
42
- const isLoginEnabled = (_ref = (config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) === true) !== null && _ref !== void 0 ? _ref : true;
42
+ const isLoginEnabled = (_ref = (config === null || config === void 0 || (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) === true) !== null && _ref !== void 0 ? _ref : true;
43
43
  const pkgRouter = (0, _express.Router)(); /* eslint new-cap: 0 */
44
44
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
45
  const anonymousRemoteUser = {
@@ -109,7 +109,7 @@ function addPackageWebApi(storage, auth, config) {
109
109
  try {
110
110
  var _config$web2;
111
111
  const localPackages = await storage.getLocalDatabase();
112
- const order = getOrder(config === null || config === void 0 ? void 0 : (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.sort_packages);
112
+ const order = getOrder(config === null || config === void 0 || (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.sort_packages);
113
113
  debug('order %o', order);
114
114
  const pkgs = await processPackages(localPackages, req);
115
115
  next((0, _webUtils.sortByName)(pkgs, order));
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_logger","_middleware","_tarball","_utils","_webUtils","obj","__esModule","default","getOrder","order","debug","buildDebug","addPackageWebApi","storage","auth","config","_ref","_config$web","isLoginEnabled","web","login","pkgRouter","Router","anonymousRemoteUser","name","undefined","real_groups","groups","checkAllow","remoteUser","Promise","resolve","reject","allow_access","packageName","err","allowed","processPackages","packages","req","permissions","packagesToProcess","slice","pkg","pkgCopy","author","formatAuthor","remote_user","avatar","generateGravatarUrl","email","gravatar","_","isNil","dist","isNull","tarball","getLocalRegistryTarballUri","protocol","headers","host","hostname","url_prefix","push","logger","error","get","res","next","_config$web2","localPackages","getLocalDatabase","sort_packages","pkgs","sortByName","_default","exports"],"sources":["../../src/api/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { getLocalRegistryTarballUri } from '@verdaccio/tarball';\nimport { Config, RemoteUser, Version } from '@verdaccio/types';\nimport { formatAuthor, generateGravatarUrl } from '@verdaccio/utils';\n\nimport { sortByName } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst getOrder = (order = 'asc') => {\n return order === 'asc';\n};\n\nconst debug = buildDebug('verdaccio:web:api:package');\n\nfunction addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router {\n const isLoginEnabled = config?.web?.login === true ?? true;\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const anonymousRemoteUser: RemoteUser = {\n name: undefined,\n real_groups: [],\n groups: [],\n };\n\n debug('initialized package web api');\n const checkAllow = (name: string, remoteUser: RemoteUser): Promise<boolean> =>\n new Promise((resolve, reject): void => {\n debug('is login disabled %o', isLoginEnabled);\n // FIXME: this logic does not work, review\n // const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;\n try {\n auth.allow_access({ packageName: name }, remoteUser, (err, allowed): void => {\n if (err) {\n resolve(false);\n }\n return resolve(allowed as boolean);\n });\n } catch (err: any) {\n reject(err);\n }\n });\n\n async function processPackages(packages: Version[] = [], req): Promise<Version[]> {\n const permissions: Version[] = [];\n const packagesToProcess = packages.slice();\n debug('process packages %o', packagesToProcess);\n for (const pkg of packagesToProcess) {\n const pkgCopy = { ...pkg };\n pkgCopy.author = formatAuthor(pkg.author);\n try {\n if (await checkAllow(pkg.name, req.remote_user)) {\n if (config.web) {\n // @ts-ignore\n pkgCopy.author.avatar = generateGravatarUrl(pkgCopy.author.email, config.web.gravatar);\n }\n // convert any remote dist to a local reference\n // eg: if the dist points to npmjs, switch to localhost:4873/prefix/etc.tar.gz\n if (!_.isNil(pkgCopy.dist) && !_.isNull(pkgCopy.dist.tarball)) {\n pkgCopy.dist.tarball = getLocalRegistryTarballUri(\n pkgCopy.dist.tarball,\n pkg.name,\n { protocol: req.protocol, headers: req.headers as any, host: req.hostname },\n config?.url_prefix\n );\n }\n permissions.push(pkgCopy);\n }\n } catch (err: any) {\n debug('process packages error %o', err);\n logger.error(\n { name: pkg.name, error: err },\n 'permission process for @{name} has failed: @{error}'\n );\n throw err;\n }\n }\n\n return permissions;\n }\n\n // Get list of all visible package\n pkgRouter.get(\n '/packages',\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('hit package web api %o');\n\n try {\n const localPackages: Version[] = await storage.getLocalDatabase();\n\n const order = getOrder(config?.web?.sort_packages);\n debug('order %o', order);\n const pkgs = await processPackages(localPackages, req);\n next(sortByName(pkgs, order));\n } catch (error: any) {\n next(error);\n }\n }\n );\n\n return pkgRouter;\n}\n\nexport default addPackageWebApi;\n"],"mappings":"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"}
1
+ {"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_logger","_middleware","_tarball","_utils","_webUtils","e","__esModule","default","getOrder","order","debug","buildDebug","addPackageWebApi","storage","auth","config","_ref","_config$web","isLoginEnabled","web","login","pkgRouter","Router","anonymousRemoteUser","name","undefined","real_groups","groups","checkAllow","remoteUser","Promise","resolve","reject","allow_access","packageName","err","allowed","processPackages","packages","req","permissions","packagesToProcess","slice","pkg","pkgCopy","author","formatAuthor","remote_user","avatar","generateGravatarUrl","email","gravatar","_","isNil","dist","isNull","tarball","getLocalRegistryTarballUri","protocol","headers","host","hostname","url_prefix","push","logger","error","get","res","next","_config$web2","localPackages","getLocalDatabase","sort_packages","pkgs","sortByName","_default","exports"],"sources":["../../src/api/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { getLocalRegistryTarballUri } from '@verdaccio/tarball';\nimport { Config, RemoteUser, Version } from '@verdaccio/types';\nimport { formatAuthor, generateGravatarUrl } from '@verdaccio/utils';\n\nimport { sortByName } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nconst getOrder = (order = 'asc') => {\n return order === 'asc';\n};\n\nconst debug = buildDebug('verdaccio:web:api:package');\n\nfunction addPackageWebApi(storage: Storage, auth: Auth, config: Config): Router {\n const isLoginEnabled = config?.web?.login === true ?? true;\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const anonymousRemoteUser: RemoteUser = {\n name: undefined,\n real_groups: [],\n groups: [],\n };\n\n debug('initialized package web api');\n const checkAllow = (name: string, remoteUser: RemoteUser): Promise<boolean> =>\n new Promise((resolve, reject): void => {\n debug('is login disabled %o', isLoginEnabled);\n // FIXME: this logic does not work, review\n // const remoteUserAccess = !isLoginEnabled ? anonymousRemoteUser : remoteUser;\n try {\n auth.allow_access({ packageName: name }, remoteUser, (err, allowed): void => {\n if (err) {\n resolve(false);\n }\n return resolve(allowed as boolean);\n });\n } catch (err: any) {\n reject(err);\n }\n });\n\n async function processPackages(packages: Version[] = [], req): Promise<Version[]> {\n const permissions: Version[] = [];\n const packagesToProcess = packages.slice();\n debug('process packages %o', packagesToProcess);\n for (const pkg of packagesToProcess) {\n const pkgCopy = { ...pkg };\n pkgCopy.author = formatAuthor(pkg.author);\n try {\n if (await checkAllow(pkg.name, req.remote_user)) {\n if (config.web) {\n // @ts-ignore\n pkgCopy.author.avatar = generateGravatarUrl(pkgCopy.author.email, config.web.gravatar);\n }\n // convert any remote dist to a local reference\n // eg: if the dist points to npmjs, switch to localhost:4873/prefix/etc.tar.gz\n if (!_.isNil(pkgCopy.dist) && !_.isNull(pkgCopy.dist.tarball)) {\n pkgCopy.dist.tarball = getLocalRegistryTarballUri(\n pkgCopy.dist.tarball,\n pkg.name,\n { protocol: req.protocol, headers: req.headers as any, host: req.hostname },\n config?.url_prefix\n );\n }\n permissions.push(pkgCopy);\n }\n } catch (err: any) {\n debug('process packages error %o', err);\n logger.error(\n { name: pkg.name, error: err },\n 'permission process for @{name} has failed: @{error}'\n );\n throw err;\n }\n }\n\n return permissions;\n }\n\n // Get list of all visible package\n pkgRouter.get(\n '/packages',\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('hit package web api %o');\n\n try {\n const localPackages: Version[] = await storage.getLocalDatabase();\n\n const order = getOrder(config?.web?.sort_packages);\n debug('order %o', order);\n const pkgs = await processPackages(localPackages, req);\n next(sortByName(pkgs, order));\n } catch (error: any) {\n next(error);\n }\n }\n );\n\n return pkgRouter;\n}\n\nexport default addPackageWebApi;\n"],"mappings":"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","ignoreList":[]}
@@ -28,7 +28,7 @@ var _core = require("@verdaccio/core");
28
28
  var _logger = require("@verdaccio/logger");
29
29
  var _middleware = require("@verdaccio/middleware");
30
30
  var _webUtils = require("../web-utils");
31
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
32
32
  // Was required by other packages
33
33
 
34
34
  // TODO: review this type, should be on @verdacid/types
@@ -1 +1 @@
1
- {"version":3,"file":"readme.js","names":["_debug","_interopRequireDefault","require","_express","_core","_logger","_middleware","_webUtils","obj","__esModule","default","NOT_README_FOUND","exports","debug","buildDebug","getReadme","readme","length","addReadmeWebApi","storage","auth","can","allow","beforeAll","a","b","logger","trace","afterAll","pkgRouter","Router","get","req","res","next","name","params","scope","addScope","package","requestOptions","protocol","headers","host","remoteAddress","socket","manifest","getPackageByOptions","uplinksLook","abbreviated","set","HEADER_TYPE","CONTENT_TYPE","HEADERS","TEXT_PLAIN_UTF8","err","_default"],"sources":["../../src/api/readme.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { HEADERS, HEADER_TYPE } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend, allow } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Manifest } from '@verdaccio/types';\n\nimport { AuthorAvatar, addScope } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\n// TODO: review this type, should be on @verdacid/types\nexport type PackageExt = Manifest & { author: AuthorAvatar; dist?: { tarball: string } };\nexport const NOT_README_FOUND = 'ERROR: No README data found!';\nconst debug = buildDebug('verdaccio:web:api:readme');\nconst getReadme = (readme) => {\n if (typeof readme === 'string' && readme.length === 0) {\n return NOT_README_FOUND;\n }\n if (typeof readme !== 'string') {\n return NOT_README_FOUND;\n } else {\n return readme;\n }\n};\n\nfunction addReadmeWebApi(storage: Storage, auth: Auth): Router {\n debug('initialized readme web api');\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n\n pkgRouter.get(\n '/package/readme/(@:scope/)?:package/:version?',\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('readme hit');\n const name = req.params.scope\n ? addScope(req.params.scope, req.params.package)\n : req.params.package;\n debug('readme name %o', name);\n const requestOptions = {\n protocol: req.protocol,\n headers: req.headers as any,\n // FIXME: if we migrate to req.hostname, the port is not longer included.\n host: req.host,\n remoteAddress: req.socket.remoteAddress,\n };\n try {\n const manifest = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n abbreviated: false,\n requestOptions,\n })) as Manifest;\n debug('readme pkg %o', manifest?.name);\n res.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8);\n next(getReadme(manifest.readme));\n } catch (err) {\n next(err);\n }\n }\n );\n return pkgRouter;\n}\n\nexport default addReadmeWebApi;\n"],"mappings":"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"}
1
+ {"version":3,"file":"readme.js","names":["_debug","_interopRequireDefault","require","_express","_core","_logger","_middleware","_webUtils","e","__esModule","default","NOT_README_FOUND","exports","debug","buildDebug","getReadme","readme","length","addReadmeWebApi","storage","auth","can","allow","beforeAll","a","b","logger","trace","afterAll","pkgRouter","Router","get","req","res","next","name","params","scope","addScope","package","requestOptions","protocol","headers","host","remoteAddress","socket","manifest","getPackageByOptions","uplinksLook","abbreviated","set","HEADER_TYPE","CONTENT_TYPE","HEADERS","TEXT_PLAIN_UTF8","err","_default"],"sources":["../../src/api/readme.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { HEADERS, HEADER_TYPE } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend, allow } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Manifest } from '@verdaccio/types';\n\nimport { AuthorAvatar, addScope } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\n// TODO: review this type, should be on @verdacid/types\nexport type PackageExt = Manifest & { author: AuthorAvatar; dist?: { tarball: string } };\nexport const NOT_README_FOUND = 'ERROR: No README data found!';\nconst debug = buildDebug('verdaccio:web:api:readme');\nconst getReadme = (readme) => {\n if (typeof readme === 'string' && readme.length === 0) {\n return NOT_README_FOUND;\n }\n if (typeof readme !== 'string') {\n return NOT_README_FOUND;\n } else {\n return readme;\n }\n};\n\nfunction addReadmeWebApi(storage: Storage, auth: Auth): Router {\n debug('initialized readme web api');\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n const pkgRouter = Router(); /* eslint new-cap: 0 */\n\n pkgRouter.get(\n '/package/readme/(@:scope/)?:package/:version?',\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('readme hit');\n const name = req.params.scope\n ? addScope(req.params.scope, req.params.package)\n : req.params.package;\n debug('readme name %o', name);\n const requestOptions = {\n protocol: req.protocol,\n headers: req.headers as any,\n // FIXME: if we migrate to req.hostname, the port is not longer included.\n host: req.host,\n remoteAddress: req.socket.remoteAddress,\n };\n try {\n const manifest = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n abbreviated: false,\n requestOptions,\n })) as Manifest;\n debug('readme pkg %o', manifest?.name);\n res.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8);\n next(getReadme(manifest.readme));\n } catch (err) {\n next(err);\n }\n }\n );\n return pkgRouter;\n}\n\nexport default addReadmeWebApi;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAIA,IAAAK,SAAA,GAAAL,OAAA;AAAsD,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEQ;;AAE9D;;AAEO,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,8BAA8B;AAC9D,MAAME,KAAK,GAAG,IAAAC,cAAU,EAAC,0BAA0B,CAAC;AACpD,MAAMC,SAAS,GAAIC,MAAM,IAAK;EAC5B,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IACrD,OAAON,gBAAgB;EACzB;EACA,IAAI,OAAOK,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOL,gBAAgB;EACzB,CAAC,MAAM;IACL,OAAOK,MAAM;EACf;AACF,CAAC;AAED,SAASE,eAAeA,CAACC,OAAgB,EAAEC,IAAU,EAAU;EAC7DP,KAAK,CAAC,4BAA4B,CAAC;EACnC,MAAMQ,GAAG,GAAG,IAAAC,iBAAK,EAACF,IAAI,EAAE;IACtBG,SAAS,EAAEA,CAACC,CAAC,EAAEC,CAAC,KAAKC,cAAM,CAACC,KAAK,CAACH,CAAC,EAAEC,CAAC,CAAC;IACvCG,QAAQ,EAAEA,CAACJ,CAAC,EAAEC,CAAC,KAAKC,cAAM,CAACC,KAAK,CAACH,CAAC,EAAEC,CAAC;EACvC,CAAC,CAAC;EACF,MAAMI,SAAS,GAAG,IAAAC,eAAM,EAAC,CAAC,CAAC,CAAC;;EAE5BD,SAAS,CAACE,GAAG,CACX,+CAA+C,EAC/CV,GAAG,CAAC,QAAQ,CAAC,EACb,gBACEW,GAAmB,EACnBC,GAAoB,EACpBC,IAAsB,EACP;IACfrB,KAAK,CAAC,YAAY,CAAC;IACnB,MAAMsB,IAAI,GAAGH,GAAG,CAACI,MAAM,CAACC,KAAK,GACzB,IAAAC,kBAAQ,EAACN,GAAG,CAACI,MAAM,CAACC,KAAK,EAAEL,GAAG,CAACI,MAAM,CAACG,OAAO,CAAC,GAC9CP,GAAG,CAACI,MAAM,CAACG,OAAO;IACtB1B,KAAK,CAAC,gBAAgB,EAAEsB,IAAI,CAAC;IAC7B,MAAMK,cAAc,GAAG;MACrBC,QAAQ,EAAET,GAAG,CAACS,QAAQ;MACtBC,OAAO,EAAEV,GAAG,CAACU,OAAc;MAC3B;MACAC,IAAI,EAAEX,GAAG,CAACW,IAAI;MACdC,aAAa,EAAEZ,GAAG,CAACa,MAAM,CAACD;IAC5B,CAAC;IACD,IAAI;MACF,MAAME,QAAQ,GAAI,MAAM3B,OAAO,CAAC4B,mBAAmB,CAAC;QAClDZ,IAAI;QACJa,WAAW,EAAE,IAAI;QACjBC,WAAW,EAAE,KAAK;QAClBT;MACF,CAAC,CAAc;MACf3B,KAAK,CAAC,eAAe,EAAEiC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEX,IAAI,CAAC;MACtCF,GAAG,CAACiB,GAAG,CAACC,iBAAW,CAACC,YAAY,EAAEC,aAAO,CAACC,eAAe,CAAC;MAC1DpB,IAAI,CAACnB,SAAS,CAAC+B,QAAQ,CAAC9B,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,OAAOuC,GAAG,EAAE;MACZrB,IAAI,CAACqB,GAAG,CAAC;IACX;EACF,CACF,CAAC;EACD,OAAO1B,SAAS;AAClB;AAAC,IAAA2B,QAAA,GAAA5C,OAAA,CAAAF,OAAA,GAEcQ,eAAe","ignoreList":[]}
@@ -9,13 +9,13 @@ var _express = require("express");
9
9
  var _lodash = _interopRequireDefault(require("lodash"));
10
10
  var _url = require("url");
11
11
  var _core = require("@verdaccio/core");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  const debug = (0, _debug.default)('verdaccio:web:api:search');
14
14
  function checkAccess(pkg, auth, remoteUser) {
15
15
  return new Promise((resolve, reject) => {
16
16
  var _pkg$package;
17
17
  auth.allow_access({
18
- packageName: pkg === null || pkg === void 0 ? void 0 : (_pkg$package = pkg.package) === null || _pkg$package === void 0 ? void 0 : _pkg$package.name
18
+ packageName: pkg === null || pkg === void 0 || (_pkg$package = pkg.package) === null || _pkg$package === void 0 ? void 0 : _pkg$package.name
19
19
  }, remoteUser, function (err, allowed) {
20
20
  if (err) {
21
21
  if (err.status && String(err.status).match(/^4\d\d$/)) {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_url","_core","obj","__esModule","default","debug","buildDebug","checkAccess","pkg","auth","remoteUser","Promise","resolve","reject","_pkg$package","allow_access","packageName","package","name","err","allowed","status","String","match","addSearchWebApi","storage","router","Router","get","req","res","next","_ref","data","abort","AbortController","socket","on","text","params","anything","size","from","query","maintenance","popularity","quality","urlParams","URLSearchParams","search","url","toString","checkAccessPromises","all","map","pkgItem","remote_user","final","filter","i","_","isNull","slice","errorUtils","getInternalError","message","_default","exports"],"sources":["../../src/api/search.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\nimport { URLSearchParams } from 'url';\n\nimport { Auth } from '@verdaccio/auth';\nimport { errorUtils, searchUtils } from '@verdaccio/core';\nimport { SearchQuery } from '@verdaccio/core/src/search-utils';\nimport { Storage } from '@verdaccio/store';\nimport { Manifest } from '@verdaccio/types';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:search');\n\nfunction checkAccess(pkg: any, auth: any, remoteUser): Promise<Manifest | null> {\n return new Promise((resolve, reject) => {\n auth.allow_access({ packageName: pkg?.package?.name }, remoteUser, function (err, allowed) {\n if (err) {\n if (err.status && String(err.status).match(/^4\\d\\d$/)) {\n // auth plugin returns 4xx user error,\n // that's equivalent of !allowed basically\n allowed = false;\n return resolve(null);\n } else {\n reject(err);\n }\n } else {\n return resolve(allowed ? pkg : null);\n }\n });\n });\n}\n\nfunction addSearchWebApi(storage: Storage, auth: Auth): Router {\n const router = Router(); /* eslint new-cap: 0 */\n router.get(\n '/search/:anything',\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n try {\n let data;\n const abort = new AbortController();\n req.socket.on('close', function () {\n debug('search web aborted');\n abort.abort();\n });\n const text: string = (req.params.anything as string) ?? '';\n // These values are declared as optimal by npm cli\n // FUTURE: could be overwritten by ui settings.\n const size = 20;\n const from = 0;\n const query: SearchQuery = {\n from: 0,\n maintenance: 0.5,\n popularity: 0.98,\n quality: 0.65,\n size: 20,\n text,\n };\n // @ts-ignore\n const urlParams = new URLSearchParams(query);\n debug('search web init');\n data = await storage?.search({\n query,\n url: `/-/v1/search?${urlParams.toString()}`,\n abort,\n });\n const checkAccessPromises: searchUtils.SearchItemPkg[] = await Promise.all(\n data.map((pkgItem) => {\n return checkAccess(pkgItem, auth, req.remote_user);\n })\n );\n\n const final: searchUtils.SearchItemPkg[] = checkAccessPromises\n .filter((i) => !_.isNull(i))\n .slice(from, size);\n\n next(final);\n } catch (err: any) {\n next(errorUtils.getInternalError(err.message));\n }\n }\n );\n return router;\n}\n\nexport default addSearchWebApi;\n"],"mappings":"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"}
1
+ {"version":3,"file":"search.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_url","_core","e","__esModule","default","debug","buildDebug","checkAccess","pkg","auth","remoteUser","Promise","resolve","reject","_pkg$package","allow_access","packageName","package","name","err","allowed","status","String","match","addSearchWebApi","storage","router","Router","get","req","res","next","_ref","data","abort","AbortController","socket","on","text","params","anything","size","from","query","maintenance","popularity","quality","urlParams","URLSearchParams","search","url","toString","checkAccessPromises","all","map","pkgItem","remote_user","final","filter","i","_","isNull","slice","errorUtils","getInternalError","message","_default","exports"],"sources":["../../src/api/search.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\nimport _ from 'lodash';\nimport { URLSearchParams } from 'url';\n\nimport { Auth } from '@verdaccio/auth';\nimport { errorUtils, searchUtils } from '@verdaccio/core';\nimport { SearchQuery } from '@verdaccio/core/src/search-utils';\nimport { Storage } from '@verdaccio/store';\nimport { Manifest } from '@verdaccio/types';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:search');\n\nfunction checkAccess(pkg: any, auth: any, remoteUser): Promise<Manifest | null> {\n return new Promise((resolve, reject) => {\n auth.allow_access({ packageName: pkg?.package?.name }, remoteUser, function (err, allowed) {\n if (err) {\n if (err.status && String(err.status).match(/^4\\d\\d$/)) {\n // auth plugin returns 4xx user error,\n // that's equivalent of !allowed basically\n allowed = false;\n return resolve(null);\n } else {\n reject(err);\n }\n } else {\n return resolve(allowed ? pkg : null);\n }\n });\n });\n}\n\nfunction addSearchWebApi(storage: Storage, auth: Auth): Router {\n const router = Router(); /* eslint new-cap: 0 */\n router.get(\n '/search/:anything',\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n try {\n let data;\n const abort = new AbortController();\n req.socket.on('close', function () {\n debug('search web aborted');\n abort.abort();\n });\n const text: string = (req.params.anything as string) ?? '';\n // These values are declared as optimal by npm cli\n // FUTURE: could be overwritten by ui settings.\n const size = 20;\n const from = 0;\n const query: SearchQuery = {\n from: 0,\n maintenance: 0.5,\n popularity: 0.98,\n quality: 0.65,\n size: 20,\n text,\n };\n // @ts-ignore\n const urlParams = new URLSearchParams(query);\n debug('search web init');\n data = await storage?.search({\n query,\n url: `/-/v1/search?${urlParams.toString()}`,\n abort,\n });\n const checkAccessPromises: searchUtils.SearchItemPkg[] = await Promise.all(\n data.map((pkgItem) => {\n return checkAccess(pkgItem, auth, req.remote_user);\n })\n );\n\n const final: searchUtils.SearchItemPkg[] = checkAccessPromises\n .filter((i) => !_.isNull(i))\n .slice(from, size);\n\n next(final);\n } catch (err: any) {\n next(errorUtils.getInternalError(err.message));\n }\n }\n );\n return router;\n}\n\nexport default addSearchWebApi;\n"],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,7 @@ var _middleware = require("@verdaccio/middleware");
30
30
  var _tarball = require("@verdaccio/tarball");
31
31
  var _utils = require("@verdaccio/utils");
32
32
  var _webUtils = require("../web-utils");
33
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
34
34
  // Was required by other packages
35
35
 
36
36
  const debug = (0, _debug.default)('verdaccio:web:api:sidebar');
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","names":["_debug","_interopRequireDefault","require","_express","_core","_logger","_middleware","_tarball","_utils","_webUtils","obj","__esModule","default","debug","buildDebug","addSidebarWebApi","config","storage","auth","router","Router","can","allow","beforeAll","a","b","logger","trace","afterAll","get","req","res","next","name","params","scope","addScope","package","requestOptions","protocol","headers","host","remoteAddress","socket","info","getPackageByOptions","uplinksLook","keepUpLinkData","v","query","sideBarInfo","versions","convertDistRemoteToLocalTarballUrls","hostname","url_prefix","isVersionValid","latest","author","formatAuthor","DIST_TAGS","deleteProperties","authorAvatar","web","addGravatarSupport","gravatar","err","status","HTTP_STATUS","NOT_FOUND","end","_default","exports"],"sources":["../../src/api/sidebar.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { DIST_TAGS, HTTP_STATUS } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend, allow } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { convertDistRemoteToLocalTarballUrls } from '@verdaccio/tarball';\nimport { Config, Manifest, Version } from '@verdaccio/types';\nimport { addGravatarSupport, formatAuthor, isVersionValid } from '@verdaccio/utils';\n\nimport { AuthorAvatar, addScope, deleteProperties } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nexport type PackageExt = Manifest & { author: AuthorAvatar; dist?: { tarball: string } };\n\nexport type $SidebarPackage = Manifest & { latest: Version };\nconst debug = buildDebug('verdaccio:web:api:sidebar');\n\nfunction addSidebarWebApi(config: Config, storage: Storage, auth: Auth): Router {\n debug('initialized sidebar web api');\n const router = Router(); /* eslint new-cap: 0 */\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n // Get package readme\n router.get(\n '/sidebar/(@:scope/)?:package',\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const name: string = req.params.scope\n ? addScope(req.params.scope, req.params.package)\n : req.params.package;\n const requestOptions = {\n protocol: req.protocol,\n headers: req.headers as any,\n // FIXME: if we migrate to req.hostname, the port is not longer included.\n host: req.host,\n remoteAddress: req.socket.remoteAddress,\n };\n try {\n const info = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n keepUpLinkData: true,\n requestOptions,\n })) as Manifest;\n const { v } = req.query;\n let sideBarInfo = { ...info };\n sideBarInfo.versions = convertDistRemoteToLocalTarballUrls(\n info,\n { protocol: req.protocol, headers: req.headers as any, host: req.hostname },\n config.url_prefix\n ).versions;\n // TODO: review this implementation\n if (typeof v === 'string' && isVersionValid(info, v)) {\n // @ts-ignore\n sideBarInfo.latest = sideBarInfo.versions[v];\n // @ts-ignore\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n } else {\n // @ts-ignore\n sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest];\n // @ts-ignore\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n }\n sideBarInfo = deleteProperties(['readme', '_attachments', '_rev', 'name'], sideBarInfo);\n const authorAvatar = config.web\n ? addGravatarSupport(sideBarInfo, config.web.gravatar)\n : addGravatarSupport(sideBarInfo);\n next(authorAvatar);\n } catch (err) {\n res.status(HTTP_STATUS.NOT_FOUND);\n res.end();\n }\n }\n );\n\n return router;\n}\n\nexport default addSidebarWebApi;\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","names":["_debug","_interopRequireDefault","require","_express","_core","_logger","_middleware","_tarball","_utils","_webUtils","e","__esModule","default","debug","buildDebug","addSidebarWebApi","config","storage","auth","router","Router","can","allow","beforeAll","a","b","logger","trace","afterAll","get","req","res","next","name","params","scope","addScope","package","requestOptions","protocol","headers","host","remoteAddress","socket","info","getPackageByOptions","uplinksLook","keepUpLinkData","v","query","sideBarInfo","versions","convertDistRemoteToLocalTarballUrls","hostname","url_prefix","isVersionValid","latest","author","formatAuthor","DIST_TAGS","deleteProperties","authorAvatar","web","addGravatarSupport","gravatar","err","status","HTTP_STATUS","NOT_FOUND","end","_default","exports"],"sources":["../../src/api/sidebar.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { DIST_TAGS, HTTP_STATUS } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend, allow } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { convertDistRemoteToLocalTarballUrls } from '@verdaccio/tarball';\nimport { Config, Manifest, Version } from '@verdaccio/types';\nimport { addGravatarSupport, formatAuthor, isVersionValid } from '@verdaccio/utils';\n\nimport { AuthorAvatar, addScope, deleteProperties } from '../web-utils';\n\nexport { $RequestExtend, $ResponseExtend, $NextFunctionVer }; // Was required by other packages\n\nexport type PackageExt = Manifest & { author: AuthorAvatar; dist?: { tarball: string } };\n\nexport type $SidebarPackage = Manifest & { latest: Version };\nconst debug = buildDebug('verdaccio:web:api:sidebar');\n\nfunction addSidebarWebApi(config: Config, storage: Storage, auth: Auth): Router {\n debug('initialized sidebar web api');\n const router = Router(); /* eslint new-cap: 0 */\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n // Get package readme\n router.get(\n '/sidebar/(@:scope/)?:package',\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const name: string = req.params.scope\n ? addScope(req.params.scope, req.params.package)\n : req.params.package;\n const requestOptions = {\n protocol: req.protocol,\n headers: req.headers as any,\n // FIXME: if we migrate to req.hostname, the port is not longer included.\n host: req.host,\n remoteAddress: req.socket.remoteAddress,\n };\n try {\n const info = (await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n keepUpLinkData: true,\n requestOptions,\n })) as Manifest;\n const { v } = req.query;\n let sideBarInfo = { ...info };\n sideBarInfo.versions = convertDistRemoteToLocalTarballUrls(\n info,\n { protocol: req.protocol, headers: req.headers as any, host: req.hostname },\n config.url_prefix\n ).versions;\n // TODO: review this implementation\n if (typeof v === 'string' && isVersionValid(info, v)) {\n // @ts-ignore\n sideBarInfo.latest = sideBarInfo.versions[v];\n // @ts-ignore\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n } else {\n // @ts-ignore\n sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest];\n // @ts-ignore\n sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author);\n }\n sideBarInfo = deleteProperties(['readme', '_attachments', '_rev', 'name'], sideBarInfo);\n const authorAvatar = config.web\n ? addGravatarSupport(sideBarInfo, config.web.gravatar)\n : addGravatarSupport(sideBarInfo);\n next(authorAvatar);\n } catch (err) {\n res.status(HTTP_STATUS.NOT_FOUND);\n res.end();\n }\n }\n );\n\n return router;\n}\n\nexport default addSidebarWebApi;\n"],"mappings":"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","ignoreList":[]}
package/build/api/user.js CHANGED
@@ -9,7 +9,7 @@ var _express = require("express");
9
9
  var _lodash = _interopRequireDefault(require("lodash"));
10
10
  var _core = require("@verdaccio/core");
11
11
  var _middleware = require("@verdaccio/middleware");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  const debug = (0, _debug.default)('verdaccio:web:api:user');
14
14
  function addUserAuthApi(auth, config) {
15
15
  var _config$flags;
@@ -36,7 +36,7 @@ function addUserAuthApi(auth, config) {
36
36
  }
37
37
  });
38
38
  });
39
- if ((config === null || config === void 0 ? void 0 : (_config$flags = config.flags) === null || _config$flags === void 0 ? void 0 : _config$flags.changePassword) === true) {
39
+ if ((config === null || config === void 0 || (_config$flags = config.flags) === null || _config$flags === void 0 ? void 0 : _config$flags.changePassword) === true) {
40
40
  route.put('/reset_password', (0, _middleware.rateLimit)(config === null || config === void 0 ? void 0 : config.userRateLimit), function (req, res, next) {
41
41
  var _config$serverSetting;
42
42
  if (_lodash.default.isNil(req.remote_user.name)) {
@@ -52,7 +52,7 @@ function addUserAuthApi(auth, config) {
52
52
  const {
53
53
  name
54
54
  } = req.remote_user;
55
- if (_core.validatioUtils.validatePassword(password.new, config === null || config === void 0 ? void 0 : (_config$serverSetting = config.serverSettings) === null || _config$serverSetting === void 0 ? void 0 : _config$serverSetting.passwordValidationRegex) === false) {
55
+ if (_core.validatioUtils.validatePassword(password.new, config === null || config === void 0 || (_config$serverSetting = config.serverSettings) === null || _config$serverSetting === void 0 ? void 0 : _config$serverSetting.passwordValidationRegex) === false) {
56
56
  return next(_core.errorUtils.getCode(_core.HTTP_STATUS.BAD_REQUEST, _core.APP_ERROR.PASSWORD_VALIDATION));
57
57
  }
58
58
  auth.changePassword(name, password.old, password.new, (err, isUpdated) => {
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_core","_middleware","obj","__esModule","default","debug","buildDebug","addUserAuthApi","auth","config","_config$flags","route","Router","post","rateLimit","userRateLimit","req","res","next","username","password","body","authenticate","err","user","errorCode","message","HTTP_STATUS","UNAUTHORIZED","INTERNAL_ERROR","errorUtils","getCode","remote_user","jWTSignOptions","security","web","sign","set","HEADERS","CACHE_CONTROL","token","jwtEncrypt","name","flags","changePassword","put","_config$serverSetting","_","isNil","status","API_ERROR","MUST_BE_LOGGED","validatioUtils","validatePassword","new","serverSettings","passwordValidationRegex","BAD_REQUEST","APP_ERROR","PASSWORD_VALIDATION","old","isUpdated","ok","getInternalError","INTERNAL_SERVER_ERROR","_default","exports"],"sources":["../../src/api/user.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Request, Response, Router } from 'express';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n API_ERROR,\n APP_ERROR,\n HEADERS,\n HTTP_STATUS,\n VerdaccioError,\n errorUtils,\n validatioUtils,\n} from '@verdaccio/core';\nimport { rateLimit } from '@verdaccio/middleware';\nimport { Config, JWTSignOptions, RemoteUser } from '@verdaccio/types';\n\nimport { $NextFunctionVer } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:user');\n\nfunction addUserAuthApi(auth: Auth, config: Config): Router {\n const route = Router(); /* eslint new-cap: 0 */\n route.post(\n '/login',\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n const { username, password } = req.body;\n debug('authenticate %o', username);\n auth.authenticate(\n username,\n password,\n async (err: VerdaccioError | null, user?: RemoteUser): Promise<void> => {\n if (err) {\n const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR;\n debug('error authenticate %o', errorCode);\n next(errorUtils.getCode(errorCode, err.message));\n } else {\n req.remote_user = user as RemoteUser;\n const jWTSignOptions: JWTSignOptions = config.security.web.sign;\n res.set(HEADERS.CACHE_CONTROL, 'no-cache, no-store');\n next({\n token: await auth.jwtEncrypt(user as RemoteUser, jWTSignOptions),\n username: req.remote_user.name,\n });\n }\n }\n );\n }\n );\n\n if (config?.flags?.changePassword === true) {\n route.put(\n '/reset_password',\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n if (_.isNil(req.remote_user.name)) {\n res.status(HTTP_STATUS.UNAUTHORIZED);\n return next({\n // FUTURE: update to a more meaningful message\n message: API_ERROR.MUST_BE_LOGGED,\n });\n }\n\n const { password } = req.body;\n const { name } = req.remote_user;\n\n if (\n validatioUtils.validatePassword(\n password.new,\n config?.serverSettings?.passwordValidationRegex\n ) === false\n ) {\n return next(errorUtils.getCode(HTTP_STATUS.BAD_REQUEST, APP_ERROR.PASSWORD_VALIDATION));\n }\n\n auth.changePassword(name as string, password.old, password.new, (err, isUpdated): void => {\n if (_.isNil(err) && isUpdated) {\n next({\n ok: true,\n });\n } else {\n return next(errorUtils.getInternalError(API_ERROR.INTERNAL_SERVER_ERROR));\n }\n });\n }\n );\n }\n\n return route;\n}\n\nexport default addUserAuthApi;\n"],"mappings":"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"}
1
+ {"version":3,"file":"user.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_core","_middleware","e","__esModule","default","debug","buildDebug","addUserAuthApi","auth","config","_config$flags","route","Router","post","rateLimit","userRateLimit","req","res","next","username","password","body","authenticate","err","user","errorCode","message","HTTP_STATUS","UNAUTHORIZED","INTERNAL_ERROR","errorUtils","getCode","remote_user","jWTSignOptions","security","web","sign","set","HEADERS","CACHE_CONTROL","token","jwtEncrypt","name","flags","changePassword","put","_config$serverSetting","_","isNil","status","API_ERROR","MUST_BE_LOGGED","validatioUtils","validatePassword","new","serverSettings","passwordValidationRegex","BAD_REQUEST","APP_ERROR","PASSWORD_VALIDATION","old","isUpdated","ok","getInternalError","INTERNAL_SERVER_ERROR","_default","exports"],"sources":["../../src/api/user.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Request, Response, Router } from 'express';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n API_ERROR,\n APP_ERROR,\n HEADERS,\n HTTP_STATUS,\n VerdaccioError,\n errorUtils,\n validatioUtils,\n} from '@verdaccio/core';\nimport { rateLimit } from '@verdaccio/middleware';\nimport { Config, JWTSignOptions, RemoteUser } from '@verdaccio/types';\n\nimport { $NextFunctionVer } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:user');\n\nfunction addUserAuthApi(auth: Auth, config: Config): Router {\n const route = Router(); /* eslint new-cap: 0 */\n route.post(\n '/login',\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n const { username, password } = req.body;\n debug('authenticate %o', username);\n auth.authenticate(\n username,\n password,\n async (err: VerdaccioError | null, user?: RemoteUser): Promise<void> => {\n if (err) {\n const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR;\n debug('error authenticate %o', errorCode);\n next(errorUtils.getCode(errorCode, err.message));\n } else {\n req.remote_user = user as RemoteUser;\n const jWTSignOptions: JWTSignOptions = config.security.web.sign;\n res.set(HEADERS.CACHE_CONTROL, 'no-cache, no-store');\n next({\n token: await auth.jwtEncrypt(user as RemoteUser, jWTSignOptions),\n username: req.remote_user.name,\n });\n }\n }\n );\n }\n );\n\n if (config?.flags?.changePassword === true) {\n route.put(\n '/reset_password',\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n if (_.isNil(req.remote_user.name)) {\n res.status(HTTP_STATUS.UNAUTHORIZED);\n return next({\n // FUTURE: update to a more meaningful message\n message: API_ERROR.MUST_BE_LOGGED,\n });\n }\n\n const { password } = req.body;\n const { name } = req.remote_user;\n\n if (\n validatioUtils.validatePassword(\n password.new,\n config?.serverSettings?.passwordValidationRegex\n ) === false\n ) {\n return next(errorUtils.getCode(HTTP_STATUS.BAD_REQUEST, APP_ERROR.PASSWORD_VALIDATION));\n }\n\n auth.changePassword(name as string, password.old, password.new, (err, isUpdated): void => {\n if (_.isNil(err) && isUpdated) {\n next({\n ok: true,\n });\n } else {\n return next(errorUtils.getInternalError(API_ERROR.INTERNAL_SERVER_ERROR));\n }\n });\n }\n );\n }\n\n return route;\n}\n\nexport default addUserAuthApi;\n"],"mappings":"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","ignoreList":[]}
package/build/index.js CHANGED
@@ -10,5 +10,5 @@ Object.defineProperty(exports, "default", {
10
10
  }
11
11
  });
12
12
  var _middleware = _interopRequireDefault(require("./middleware"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_middleware","_interopRequireDefault","require","obj","__esModule","default"],"sources":["../src/index.ts"],"sourcesContent":["export { default } from './middleware';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["_middleware","_interopRequireDefault","require","e","__esModule","default"],"sources":["../src/index.ts"],"sourcesContent":["export { default } from './middleware';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -7,11 +7,12 @@ exports.default = void 0;
7
7
  exports.loadTheme = loadTheme;
8
8
  var _express = _interopRequireDefault(require("express"));
9
9
  var _lodash = _interopRequireDefault(require("lodash"));
10
+ var _core = require("@verdaccio/core");
10
11
  var _loaders = require("@verdaccio/loaders");
11
12
  var _logger = require("@verdaccio/logger");
12
13
  var _middleware = require("@verdaccio/middleware");
13
14
  var _api = _interopRequireDefault(require("./api"));
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
16
  async function loadTheme(config) {
16
17
  if (_lodash.default.isNil(config.theme) === false) {
17
18
  var _config$serverSetting, _config$serverSetting2;
@@ -28,7 +29,7 @@ async function loadTheme(config) {
28
29
  - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.
29
30
  */
30
31
  return plugin.staticPath && plugin.manifest && plugin.manifestFiles;
31
- }, (_config$serverSetting = config === null || config === void 0 ? void 0 : (_config$serverSetting2 = config.serverSettings) === null || _config$serverSetting2 === void 0 ? void 0 : _config$serverSetting2.pluginPrefix) !== null && _config$serverSetting !== void 0 ? _config$serverSetting : 'verdaccio-theme');
32
+ }, (_config$serverSetting = config === null || config === void 0 || (_config$serverSetting2 = config.serverSettings) === null || _config$serverSetting2 === void 0 ? void 0 : _config$serverSetting2.pluginPrefix) !== null && _config$serverSetting !== void 0 ? _config$serverSetting : 'verdaccio-theme', _core.PLUGIN_CATEGORY.THEME);
32
33
  if (plugin.length > 1) {
33
34
  _logger.logger.warn('multiple ui themes are not supported , only the first plugin is used used');
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","names":["_express","_interopRequireDefault","require","_lodash","_loaders","_logger","_middleware","_api","obj","__esModule","default","loadTheme","config","_","isNil","theme","_config$serverSetting","_config$serverSetting2","plugin","asyncLoadPlugin","logger","staticPath","manifest","manifestFiles","serverSettings","pluginPrefix","length","warn","head","_default","auth","storage","pluginOptions","web","router","express","Router","use","webMiddleware","tokenMiddleware","webUIJWTmiddleware","webEndpointsApi","exports"],"sources":["../src/middleware.ts"],"sourcesContent":["import express from 'express';\nimport _ from 'lodash';\n\nimport { asyncLoadPlugin } from '@verdaccio/loaders';\nimport { logger } from '@verdaccio/logger';\nimport { webMiddleware } from '@verdaccio/middleware';\n\nimport webEndpointsApi from './api';\n\nexport async function loadTheme(config: any) {\n if (_.isNil(config.theme) === false) {\n const plugin = await asyncLoadPlugin(\n config.theme,\n { config, logger },\n // TODO: add types { staticPath: string; manifest: unknown; manifestFiles: unknown }\n function (plugin: any) {\n /**\n * \n - `staticPath`: is the same data returned in Verdaccio 5.\n - `manifest`: A webpack manifest object.\n - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.\n */\n return plugin.staticPath && plugin.manifest && plugin.manifestFiles;\n },\n config?.serverSettings?.pluginPrefix ?? 'verdaccio-theme'\n );\n if (plugin.length > 1) {\n logger.warn('multiple ui themes are not supported , only the first plugin is used used');\n }\n\n return _.head(plugin);\n }\n}\n\nexport default async (config, auth, storage) => {\n const pluginOptions = (await loadTheme(config)) || require('@verdaccio/ui-theme')(config.web);\n\n // eslint-disable-next-line new-cap\n const router = express.Router();\n // load application\n router.use(\n webMiddleware(\n config,\n {\n tokenMiddleware: auth.webUIJWTmiddleware(),\n webEndpointsApi: webEndpointsApi(auth, storage, config),\n },\n pluginOptions\n )\n );\n return router;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,IAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE7B,eAAeG,SAASA,CAACC,MAAW,EAAE;EAC3C,IAAIC,eAAC,CAACC,KAAK,CAACF,MAAM,CAACG,KAAK,CAAC,KAAK,KAAK,EAAE;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACnC,MAAMC,MAAM,GAAG,MAAM,IAAAC,wBAAe,EAClCP,MAAM,CAACG,KAAK,EACZ;MAAEH,MAAM;MAAEQ,MAAM,EAANA;IAAO,CAAC;IAClB;IACA,UAAUF,MAAW,EAAE;MACrB;AACR;AACA;AACA;AACA;AACA;MACQ,OAAOA,MAAM,CAACG,UAAU,IAAIH,MAAM,CAACI,QAAQ,IAAIJ,MAAM,CAACK,aAAa;IACrE,CAAC,GAAAP,qBAAA,GACDJ,MAAM,aAANA,MAAM,wBAAAK,sBAAA,GAANL,MAAM,CAAEY,cAAc,cAAAP,sBAAA,uBAAtBA,sBAAA,CAAwBQ,YAAY,cAAAT,qBAAA,cAAAA,qBAAA,GAAI,iBAC1C,CAAC;IACD,IAAIE,MAAM,CAACQ,MAAM,GAAG,CAAC,EAAE;MACrBN,cAAM,CAACO,IAAI,CAAC,2EAA2E,CAAC;IAC1F;IAEA,OAAOd,eAAC,CAACe,IAAI,CAACV,MAAM,CAAC;EACvB;AACF;AAAC,IAAAW,QAAA,GAEc,MAAAA,CAAOjB,MAAM,EAAEkB,IAAI,EAAEC,OAAO,KAAK;EAC9C,MAAMC,aAAa,GAAG,CAAC,MAAMrB,SAAS,CAACC,MAAM,CAAC,KAAKV,OAAO,CAAC,qBAAqB,CAAC,CAACU,MAAM,CAACqB,GAAG,CAAC;;EAE7F;EACA,MAAMC,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;EAC/B;EACAF,MAAM,CAACG,GAAG,CACR,IAAAC,yBAAa,EACX1B,MAAM,EACN;IACE2B,eAAe,EAAET,IAAI,CAACU,kBAAkB,CAAC,CAAC;IAC1CC,eAAe,EAAE,IAAAA,YAAe,EAACX,IAAI,EAAEC,OAAO,EAAEnB,MAAM;EACxD,CAAC,EACDoB,aACF,CACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;AAAAQ,OAAA,CAAAhC,OAAA,GAAAmB,QAAA"}
1
+ {"version":3,"file":"middleware.js","names":["_express","_interopRequireDefault","require","_lodash","_core","_loaders","_logger","_middleware","_api","e","__esModule","default","loadTheme","config","_","isNil","theme","_config$serverSetting","_config$serverSetting2","plugin","asyncLoadPlugin","logger","staticPath","manifest","manifestFiles","serverSettings","pluginPrefix","PLUGIN_CATEGORY","THEME","length","warn","head","_default","auth","storage","pluginOptions","web","router","express","Router","use","webMiddleware","tokenMiddleware","webUIJWTmiddleware","webEndpointsApi","exports"],"sources":["../src/middleware.ts"],"sourcesContent":["import express from 'express';\nimport _ from 'lodash';\n\nimport { PLUGIN_CATEGORY } from '@verdaccio/core';\nimport { asyncLoadPlugin } from '@verdaccio/loaders';\nimport { logger } from '@verdaccio/logger';\nimport { webMiddleware } from '@verdaccio/middleware';\n\nimport webEndpointsApi from './api';\n\nexport async function loadTheme(config: any) {\n if (_.isNil(config.theme) === false) {\n const plugin = await asyncLoadPlugin(\n config.theme,\n { config, logger },\n // TODO: add types { staticPath: string; manifest: unknown; manifestFiles: unknown }\n function (plugin: any) {\n /**\n * \n - `staticPath`: is the same data returned in Verdaccio 5.\n - `manifest`: A webpack manifest object.\n - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.\n */\n return plugin.staticPath && plugin.manifest && plugin.manifestFiles;\n },\n config?.serverSettings?.pluginPrefix ?? 'verdaccio-theme',\n PLUGIN_CATEGORY.THEME\n );\n if (plugin.length > 1) {\n logger.warn('multiple ui themes are not supported , only the first plugin is used used');\n }\n\n return _.head(plugin);\n }\n}\n\nexport default async (config, auth, storage) => {\n const pluginOptions = (await loadTheme(config)) || require('@verdaccio/ui-theme')(config.web);\n\n // eslint-disable-next-line new-cap\n const router = express.Router();\n // load application\n router.use(\n webMiddleware(\n config,\n {\n tokenMiddleware: auth.webUIJWTmiddleware(),\n webEndpointsApi: webEndpointsApi(auth, storage, config),\n },\n pluginOptions\n )\n );\n return router;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA,IAAAM,IAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,eAAeG,SAASA,CAACC,MAAW,EAAE;EAC3C,IAAIC,eAAC,CAACC,KAAK,CAACF,MAAM,CAACG,KAAK,CAAC,KAAK,KAAK,EAAE;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACnC,MAAMC,MAAM,GAAG,MAAM,IAAAC,wBAAe,EAClCP,MAAM,CAACG,KAAK,EACZ;MAAEH,MAAM;MAAEQ,MAAM,EAANA;IAAO,CAAC;IAClB;IACA,UAAUF,MAAW,EAAE;MACrB;AACR;AACA;AACA;AACA;AACA;MACQ,OAAOA,MAAM,CAACG,UAAU,IAAIH,MAAM,CAACI,QAAQ,IAAIJ,MAAM,CAACK,aAAa;IACrE,CAAC,GAAAP,qBAAA,GACDJ,MAAM,aAANA,MAAM,gBAAAK,sBAAA,GAANL,MAAM,CAAEY,cAAc,cAAAP,sBAAA,uBAAtBA,sBAAA,CAAwBQ,YAAY,cAAAT,qBAAA,cAAAA,qBAAA,GAAI,iBAAiB,EACzDU,qBAAe,CAACC,KAClB,CAAC;IACD,IAAIT,MAAM,CAACU,MAAM,GAAG,CAAC,EAAE;MACrBR,cAAM,CAACS,IAAI,CAAC,2EAA2E,CAAC;IAC1F;IAEA,OAAOhB,eAAC,CAACiB,IAAI,CAACZ,MAAM,CAAC;EACvB;AACF;AAAC,IAAAa,QAAA,GAEc,MAAAA,CAAOnB,MAAM,EAAEoB,IAAI,EAAEC,OAAO,KAAK;EAC9C,MAAMC,aAAa,GAAG,CAAC,MAAMvB,SAAS,CAACC,MAAM,CAAC,KAAKX,OAAO,CAAC,qBAAqB,CAAC,CAACW,MAAM,CAACuB,GAAG,CAAC;;EAE7F;EACA,MAAMC,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;EAC/B;EACAF,MAAM,CAACG,GAAG,CACR,IAAAC,yBAAa,EACX5B,MAAM,EACN;IACE6B,eAAe,EAAET,IAAI,CAACU,kBAAkB,CAAC,CAAC;IAC1CC,eAAe,EAAE,IAAAA,YAAe,EAACX,IAAI,EAAEC,OAAO,EAAErB,MAAM;EACxD,CAAC,EACDsB,aACF,CACF,CAAC;EACD,OAAOE,MAAM;AACf,CAAC;AAAAQ,OAAA,CAAAlC,OAAA,GAAAqB,QAAA","ignoreList":[]}
@@ -8,10 +8,10 @@ exports.deleteProperties = deleteProperties;
8
8
  exports.hasLogin = hasLogin;
9
9
  exports.sortByName = sortByName;
10
10
  var _lodash = _interopRequireDefault(require("lodash"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  function hasLogin(config) {
13
13
  var _config$web, _config$web2;
14
- return _lodash.default.isNil(config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) || (config === null || config === void 0 ? void 0 : (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.login) === true;
14
+ return _lodash.default.isNil(config === null || config === void 0 || (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.login) || (config === null || config === void 0 || (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.login) === true;
15
15
  }
16
16
  function sortByName(packages, orderAscending = true) {
17
17
  return packages.slice().sort(function (a, b) {
@@ -1 +1 @@
1
- {"version":3,"file":"web-utils.js","names":["_lodash","_interopRequireDefault","require","obj","__esModule","default","hasLogin","config","_config$web","_config$web2","_","isNil","web","login","sortByName","packages","orderAscending","slice","sort","a","b","comparatorNames","name","toLowerCase","addScope","scope","packageName","deleteProperties","propertiesToDelete","objectItem","forEach","property"],"sources":["../src/web-utils.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport { Author, ConfigYaml } from '@verdaccio/types';\n\nexport function hasLogin(config: ConfigYaml) {\n return _.isNil(config?.web?.login) || config?.web?.login === true;\n}\n\nexport function sortByName(packages: any[], orderAscending: boolean | void = true): string[] {\n return packages.slice().sort(function (a, b): number {\n const comparatorNames = a.name.toLowerCase() < b.name.toLowerCase();\n return orderAscending ? (comparatorNames ? -1 : 1) : comparatorNames ? 1 : -1;\n });\n}\n\nexport type AuthorAvatar = Author & { avatar?: string };\n\nexport function addScope(scope: string, packageName: string): string {\n return `@${scope}/${packageName}`;\n}\n\nexport function deleteProperties(propertiesToDelete: string[], objectItem: any): any {\n _.forEach(propertiesToDelete, (property): any => {\n delete objectItem[property];\n });\n\n return objectItem;\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuB,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIhB,SAASG,QAAQA,CAACC,MAAkB,EAAE;EAAA,IAAAC,WAAA,EAAAC,YAAA;EAC3C,OAAOC,eAAC,CAACC,KAAK,CAACJ,MAAM,aAANA,MAAM,wBAAAC,WAAA,GAAND,MAAM,CAAEK,GAAG,cAAAJ,WAAA,uBAAXA,WAAA,CAAaK,KAAK,CAAC,IAAI,CAAAN,MAAM,aAANA,MAAM,wBAAAE,YAAA,GAANF,MAAM,CAAEK,GAAG,cAAAH,YAAA,uBAAXA,YAAA,CAAaI,KAAK,MAAK,IAAI;AACnE;AAEO,SAASC,UAAUA,CAACC,QAAe,EAAEC,cAA8B,GAAG,IAAI,EAAY;EAC3F,OAAOD,QAAQ,CAACE,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,UAAUC,CAAC,EAAEC,CAAC,EAAU;IACnD,MAAMC,eAAe,GAAGF,CAAC,CAACG,IAAI,CAACC,WAAW,CAAC,CAAC,GAAGH,CAAC,CAACE,IAAI,CAACC,WAAW,CAAC,CAAC;IACnE,OAAOP,cAAc,GAAIK,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,GAAIA,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;EAC/E,CAAC,CAAC;AACJ;AAIO,SAASG,QAAQA,CAACC,KAAa,EAAEC,WAAmB,EAAU;EACnE,OAAQ,IAAGD,KAAM,IAAGC,WAAY,EAAC;AACnC;AAEO,SAASC,gBAAgBA,CAACC,kBAA4B,EAAEC,UAAe,EAAO;EACnFnB,eAAC,CAACoB,OAAO,CAACF,kBAAkB,EAAGG,QAAQ,IAAU;IAC/C,OAAOF,UAAU,CAACE,QAAQ,CAAC;EAC7B,CAAC,CAAC;EAEF,OAAOF,UAAU;AACnB"}
1
+ {"version":3,"file":"web-utils.js","names":["_lodash","_interopRequireDefault","require","e","__esModule","default","hasLogin","config","_config$web","_config$web2","_","isNil","web","login","sortByName","packages","orderAscending","slice","sort","a","b","comparatorNames","name","toLowerCase","addScope","scope","packageName","deleteProperties","propertiesToDelete","objectItem","forEach","property"],"sources":["../src/web-utils.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport { Author, ConfigYaml } from '@verdaccio/types';\n\nexport function hasLogin(config: ConfigYaml) {\n return _.isNil(config?.web?.login) || config?.web?.login === true;\n}\n\nexport function sortByName(packages: any[], orderAscending: boolean | void = true): string[] {\n return packages.slice().sort(function (a, b): number {\n const comparatorNames = a.name.toLowerCase() < b.name.toLowerCase();\n return orderAscending ? (comparatorNames ? -1 : 1) : comparatorNames ? 1 : -1;\n });\n}\n\nexport type AuthorAvatar = Author & { avatar?: string };\n\nexport function addScope(scope: string, packageName: string): string {\n return `@${scope}/${packageName}`;\n}\n\nexport function deleteProperties(propertiesToDelete: string[], objectItem: any): any {\n _.forEach(propertiesToDelete, (property): any => {\n delete objectItem[property];\n });\n\n return objectItem;\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuB,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIhB,SAASG,QAAQA,CAACC,MAAkB,EAAE;EAAA,IAAAC,WAAA,EAAAC,YAAA;EAC3C,OAAOC,eAAC,CAACC,KAAK,CAACJ,MAAM,aAANA,MAAM,gBAAAC,WAAA,GAAND,MAAM,CAAEK,GAAG,cAAAJ,WAAA,uBAAXA,WAAA,CAAaK,KAAK,CAAC,IAAI,CAAAN,MAAM,aAANA,MAAM,gBAAAE,YAAA,GAANF,MAAM,CAAEK,GAAG,cAAAH,YAAA,uBAAXA,YAAA,CAAaI,KAAK,MAAK,IAAI;AACnE;AAEO,SAASC,UAAUA,CAACC,QAAe,EAAEC,cAA8B,GAAG,IAAI,EAAY;EAC3F,OAAOD,QAAQ,CAACE,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,UAAUC,CAAC,EAAEC,CAAC,EAAU;IACnD,MAAMC,eAAe,GAAGF,CAAC,CAACG,IAAI,CAACC,WAAW,CAAC,CAAC,GAAGH,CAAC,CAACE,IAAI,CAACC,WAAW,CAAC,CAAC;IACnE,OAAOP,cAAc,GAAIK,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,GAAIA,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;EAC/E,CAAC,CAAC;AACJ;AAIO,SAASG,QAAQA,CAACC,KAAa,EAAEC,WAAmB,EAAU;EACnE,OAAO,IAAID,KAAK,IAAIC,WAAW,EAAE;AACnC;AAEO,SAASC,gBAAgBA,CAACC,kBAA4B,EAAEC,UAAe,EAAO;EACnFnB,eAAC,CAACoB,OAAO,CAACF,kBAAkB,EAAGG,QAAQ,IAAU;IAC/C,OAAOF,UAAU,CAACE,QAAQ,CAAC;EAC7B,CAAC,CAAC;EAEF,OAAOF,UAAU;AACnB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/web",
3
- "version": "7.0.0-next.5",
3
+ "version": "7.0.1-next-8.0",
4
4
  "description": "web ui middleware",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -24,30 +24,30 @@
24
24
  },
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
- "@verdaccio/auth": "7.0.0-next.5",
28
- "@verdaccio/config": "7.0.0-next.5",
29
- "@verdaccio/core": "7.0.0-next.5",
30
- "@verdaccio/loaders": "7.0.0-next.5",
31
- "@verdaccio/logger": "7.0.0-next.5",
32
- "@verdaccio/middleware": "7.0.0-next.5",
33
- "@verdaccio/store": "7.0.0-next.5",
34
- "@verdaccio/tarball": "12.0.0-next.5",
35
- "@verdaccio/url": "12.0.0-next.5",
36
- "@verdaccio/utils": "7.0.0-next.5",
37
- "debug": "4.3.4",
38
- "express": "4.18.2",
27
+ "@verdaccio/auth": "7.0.1-next-8.0",
28
+ "@verdaccio/config": "8.0.0-next-8.0",
29
+ "@verdaccio/core": "8.0.0-next-8.0",
30
+ "@verdaccio/loaders": "8.0.0-next-8.0",
31
+ "@verdaccio/logger": "8.0.0-next-8.0",
32
+ "@verdaccio/middleware": "8.0.0-next-8.0",
33
+ "@verdaccio/store": "8.0.0-next-8.0",
34
+ "@verdaccio/tarball": "13.0.0-next-8.0",
35
+ "@verdaccio/url": "13.0.0-next-8.0",
36
+ "@verdaccio/utils": "7.0.1-next-8.0",
37
+ "debug": "4.3.7",
38
+ "express": "4.21.0",
39
39
  "lodash": "4.17.21"
40
40
  },
41
41
  "devDependencies": {
42
- "@verdaccio/api": "7.0.0-next.5",
43
- "@verdaccio/test-helper": "3.0.0-next.1",
44
- "@verdaccio/types": "12.0.0-next.2",
42
+ "@verdaccio/api": "7.0.1-next-8.0",
43
+ "@verdaccio/test-helper": "4.0.0-next-8.0",
44
+ "@verdaccio/types": "13.0.0-next-8.0",
45
45
  "jsdom": "20.0.3",
46
- "nock": "13.4.0",
46
+ "nock": "13.5.1",
47
47
  "node-html-parser": "4.1.5",
48
- "supertest": "6.3.3",
49
- "verdaccio-auth-memory": "12.0.0-next.5",
50
- "verdaccio-memory": "12.0.0-next.5"
48
+ "supertest": "7.0.0",
49
+ "verdaccio-auth-memory": "13.0.0-next-8.0",
50
+ "verdaccio-memory": "13.0.0-next-8.0"
51
51
  },
52
52
  "funding": {
53
53
  "type": "opencollective",
package/src/middleware.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import express from 'express';
2
2
  import _ from 'lodash';
3
3
 
4
+ import { PLUGIN_CATEGORY } from '@verdaccio/core';
4
5
  import { asyncLoadPlugin } from '@verdaccio/loaders';
5
6
  import { logger } from '@verdaccio/logger';
6
7
  import { webMiddleware } from '@verdaccio/middleware';
@@ -22,7 +23,8 @@ export async function loadTheme(config: any) {
22
23
  */
23
24
  return plugin.staticPath && plugin.manifest && plugin.manifestFiles;
24
25
  },
25
- config?.serverSettings?.pluginPrefix ?? 'verdaccio-theme'
26
+ config?.serverSettings?.pluginPrefix ?? 'verdaccio-theme',
27
+ PLUGIN_CATEGORY.THEME
26
28
  );
27
29
  if (plugin.length > 1) {
28
30
  logger.warn('multiple ui themes are not supported , only the first plugin is used used');