@verdaccio/api 7.0.0-next.6 → 7.0.1-next-8.1
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 +281 -0
- package/build/dist-tags.js +1 -1
- package/build/dist-tags.js.map +1 -1
- package/build/index.js +3 -3
- package/build/index.js.map +1 -1
- package/build/package.js +6 -3
- package/build/package.js.map +1 -1
- package/build/ping.js.map +1 -1
- package/build/publish.d.ts +21 -4
- package/build/publish.js +35 -9
- package/build/publish.js.map +1 -1
- package/build/search.js.map +1 -1
- package/build/stars.js +1 -1
- package/build/stars.js.map +1 -1
- package/build/user.js +19 -3
- package/build/user.js.map +1 -1
- package/build/v1/profile.js +6 -3
- package/build/v1/profile.js.map +1 -1
- package/build/v1/search.js +4 -3
- package/build/v1/search.js.map +1 -1
- package/build/v1/token.js +1 -1
- package/build/v1/token.js.map +1 -1
- package/build/whoami.js +2 -2
- package/build/whoami.js.map +1 -1
- package/package.json +17 -17
- package/src/index.ts +3 -2
- package/src/package.ts +3 -1
- package/src/publish.ts +31 -6
- package/src/user.ts +17 -0
- package/src/v1/profile.ts +5 -3
- package/src/v1/search.ts +2 -1
- package/test/integration/_helper.ts +33 -1
- package/test/integration/config/owner.yaml +24 -0
- package/test/integration/config/profile.yaml +27 -0
- package/test/integration/config/user.jwt.yaml +1 -1
- package/test/integration/config/user.yaml +1 -1
- package/test/integration/distTag.spec.ts +1 -0
- package/test/integration/owner.spec.ts +119 -0
- package/test/integration/package.spec.ts +3 -2
- package/test/integration/ping.spec.ts +1 -0
- package/test/integration/profile.spec.ts +112 -0
- package/test/integration/publish.spec.ts +1 -0
- package/test/integration/search.spec.ts +13 -0
- package/test/integration/star.spec.ts +1 -0
- package/test/integration/token.spec.ts +1 -0
- package/test/integration/user.spec.ts +54 -1
- package/test/integration/whoami.spec.ts +1 -0
- package/test/unit/validate.api.params.middleware.spec.ts +1 -0
- package/jest.config.js +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,286 @@
|
|
|
1
1
|
# @verdaccio/api
|
|
2
2
|
|
|
3
|
+
## 7.0.1-next-8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [e5cc01e]
|
|
8
|
+
- @verdaccio/auth@8.0.0-next-8.1
|
|
9
|
+
- @verdaccio/core@8.0.0-next-8.1
|
|
10
|
+
- @verdaccio/config@8.0.0-next-8.1
|
|
11
|
+
- @verdaccio/middleware@8.0.0-next-8.1
|
|
12
|
+
- @verdaccio/store@8.0.0-next-8.1
|
|
13
|
+
- @verdaccio/utils@7.0.1-next-8.1
|
|
14
|
+
- @verdaccio/logger@8.0.0-next-8.1
|
|
15
|
+
|
|
16
|
+
## 7.0.1-next-8.0
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @verdaccio/logger@8.0.0-next-8.0
|
|
22
|
+
- @verdaccio/middleware@8.0.0-next-8.0
|
|
23
|
+
- @verdaccio/core@8.0.0-next-8.0
|
|
24
|
+
- @verdaccio/config@8.0.0-next-8.0
|
|
25
|
+
- @verdaccio/store@8.0.0-next-8.0
|
|
26
|
+
- @verdaccio/auth@7.0.1-next-8.0
|
|
27
|
+
- @verdaccio/utils@7.0.1-next-8.0
|
|
28
|
+
|
|
29
|
+
## 7.0.0
|
|
30
|
+
|
|
31
|
+
### Major Changes
|
|
32
|
+
|
|
33
|
+
- 47f61c6: feat!: bump to v7
|
|
34
|
+
- e7ebccb: update major dependencies, remove old nodejs support
|
|
35
|
+
|
|
36
|
+
### Minor Changes
|
|
37
|
+
|
|
38
|
+
- f047cc8: refactor: auth with legacy sign support
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- 6e764e3: feat: add support for npm owner
|
|
43
|
+
- 74cd588: fix: bug on change password npm profile
|
|
44
|
+
- 19df355: chore(api): update comment about route parameters
|
|
45
|
+
- Updated dependencies [e5624e1]
|
|
46
|
+
- Updated dependencies [47f61c6]
|
|
47
|
+
- Updated dependencies [2a6ee33]
|
|
48
|
+
- Updated dependencies [10dd81f]
|
|
49
|
+
- Updated dependencies [5bfab62]
|
|
50
|
+
- Updated dependencies [6c5f7a4]
|
|
51
|
+
- Updated dependencies [6e764e3]
|
|
52
|
+
- Updated dependencies [b0946b2]
|
|
53
|
+
- Updated dependencies [ccc7bd1]
|
|
54
|
+
- Updated dependencies [8c10a3e]
|
|
55
|
+
- Updated dependencies [daceb6d]
|
|
56
|
+
- Updated dependencies [e14b064]
|
|
57
|
+
- Updated dependencies [e7ebccb]
|
|
58
|
+
- Updated dependencies [c9962fe]
|
|
59
|
+
- Updated dependencies [7400830]
|
|
60
|
+
- Updated dependencies [f967a69]
|
|
61
|
+
- Updated dependencies [de6ff5c]
|
|
62
|
+
- Updated dependencies [f047cc8]
|
|
63
|
+
- Updated dependencies [a99a4bb]
|
|
64
|
+
- Updated dependencies [c807f0c]
|
|
65
|
+
- Updated dependencies [a05a7d8]
|
|
66
|
+
- Updated dependencies [7c9f3cf]
|
|
67
|
+
- Updated dependencies [c31aec8]
|
|
68
|
+
- Updated dependencies [bd8703e]
|
|
69
|
+
- Updated dependencies [4dc62a8]
|
|
70
|
+
- Updated dependencies [253cc13]
|
|
71
|
+
- Updated dependencies [4d96324]
|
|
72
|
+
- @verdaccio/store@7.0.0
|
|
73
|
+
- @verdaccio/auth@7.0.0
|
|
74
|
+
- @verdaccio/config@7.0.0
|
|
75
|
+
- @verdaccio/core@7.0.0
|
|
76
|
+
- @verdaccio/logger@7.0.0
|
|
77
|
+
- @verdaccio/middleware@7.0.0
|
|
78
|
+
- @verdaccio/utils@7.0.0
|
|
79
|
+
|
|
80
|
+
## 7.0.0-next-8.21
|
|
81
|
+
|
|
82
|
+
### Patch Changes
|
|
83
|
+
|
|
84
|
+
- Updated dependencies [8c10a3e]
|
|
85
|
+
- Updated dependencies [a05a7d8]
|
|
86
|
+
- Updated dependencies [7c9f3cf]
|
|
87
|
+
- @verdaccio/config@7.0.0-next-8.21
|
|
88
|
+
- @verdaccio/core@7.0.0-next-8.21
|
|
89
|
+
- @verdaccio/store@7.0.0-next-8.21
|
|
90
|
+
- @verdaccio/auth@7.0.0-next-8.21
|
|
91
|
+
- @verdaccio/middleware@7.0.0-next-8.21
|
|
92
|
+
- @verdaccio/utils@7.0.0-next-8.21
|
|
93
|
+
- @verdaccio/logger@7.0.0-next-8.21
|
|
94
|
+
|
|
95
|
+
## 7.0.0-next-7.20
|
|
96
|
+
|
|
97
|
+
### Patch Changes
|
|
98
|
+
|
|
99
|
+
- Updated dependencies [ccc7bd1]
|
|
100
|
+
- @verdaccio/middleware@7.0.0-next-7.20
|
|
101
|
+
- @verdaccio/auth@7.0.0-next-7.20
|
|
102
|
+
- @verdaccio/store@7.0.0-next-7.20
|
|
103
|
+
- @verdaccio/core@7.0.0-next-7.20
|
|
104
|
+
- @verdaccio/config@7.0.0-next-7.20
|
|
105
|
+
- @verdaccio/utils@7.0.0-next-7.20
|
|
106
|
+
- @verdaccio/logger@7.0.0-next-7.20
|
|
107
|
+
|
|
108
|
+
## 7.0.0-next-7.19
|
|
109
|
+
|
|
110
|
+
### Patch Changes
|
|
111
|
+
|
|
112
|
+
- 19df355: chore(api): update comment about route parameters
|
|
113
|
+
- Updated dependencies [2a6ee33]
|
|
114
|
+
- Updated dependencies [6c5f7a4]
|
|
115
|
+
- Updated dependencies [c31aec8]
|
|
116
|
+
- @verdaccio/middleware@7.0.0-next-7.19
|
|
117
|
+
- @verdaccio/config@7.0.0-next-7.19
|
|
118
|
+
- @verdaccio/auth@7.0.0-next-7.19
|
|
119
|
+
- @verdaccio/store@7.0.0-next-7.19
|
|
120
|
+
- @verdaccio/core@7.0.0-next-7.19
|
|
121
|
+
- @verdaccio/utils@7.0.0-next-7.19
|
|
122
|
+
- @verdaccio/logger@7.0.0-next-7.19
|
|
123
|
+
|
|
124
|
+
## 7.0.0-next-7.18
|
|
125
|
+
|
|
126
|
+
### Patch Changes
|
|
127
|
+
|
|
128
|
+
- Updated dependencies [10dd81f]
|
|
129
|
+
- @verdaccio/middleware@7.0.0-next-7.18
|
|
130
|
+
- @verdaccio/config@7.0.0-next-7.18
|
|
131
|
+
- @verdaccio/auth@7.0.0-next-7.18
|
|
132
|
+
- @verdaccio/core@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
|
+
- 6e764e3: feat: add support for npm owner
|
|
142
|
+
- Updated dependencies [6e764e3]
|
|
143
|
+
- Updated dependencies [de6ff5c]
|
|
144
|
+
- @verdaccio/config@7.0.0-next-7.17
|
|
145
|
+
- @verdaccio/core@7.0.0-next-7.17
|
|
146
|
+
- @verdaccio/store@7.0.0-next-7.17
|
|
147
|
+
- @verdaccio/auth@7.0.0-next-7.17
|
|
148
|
+
- @verdaccio/logger@7.0.0-next-7.17
|
|
149
|
+
- @verdaccio/middleware@7.0.0-next-7.17
|
|
150
|
+
- @verdaccio/utils@7.0.0-next-7.17
|
|
151
|
+
|
|
152
|
+
## 7.0.0-next-7.16
|
|
153
|
+
|
|
154
|
+
### Patch Changes
|
|
155
|
+
|
|
156
|
+
- Updated dependencies [e5624e1]
|
|
157
|
+
- Updated dependencies [5bfab62]
|
|
158
|
+
- @verdaccio/store@7.0.0-next-7.16
|
|
159
|
+
- @verdaccio/logger@7.0.0-next-7.16
|
|
160
|
+
- @verdaccio/middleware@7.0.0-next-7.16
|
|
161
|
+
- @verdaccio/auth@7.0.0-next-7.16
|
|
162
|
+
- @verdaccio/core@7.0.0-next-7.16
|
|
163
|
+
- @verdaccio/config@7.0.0-next-7.16
|
|
164
|
+
- @verdaccio/utils@7.0.0-next-7.16
|
|
165
|
+
|
|
166
|
+
## 7.0.0-next-7.15
|
|
167
|
+
|
|
168
|
+
### Patch Changes
|
|
169
|
+
|
|
170
|
+
- Updated dependencies [7400830]
|
|
171
|
+
- Updated dependencies [bd8703e]
|
|
172
|
+
- @verdaccio/store@7.0.0-next-7.15
|
|
173
|
+
- @verdaccio/core@7.0.0-next-7.15
|
|
174
|
+
- @verdaccio/config@7.0.0-next-7.15
|
|
175
|
+
- @verdaccio/auth@7.0.0-next-7.15
|
|
176
|
+
- @verdaccio/logger@7.0.0-next-7.15
|
|
177
|
+
- @verdaccio/middleware@7.0.0-next-7.15
|
|
178
|
+
- @verdaccio/utils@7.0.0-next-7.15
|
|
179
|
+
|
|
180
|
+
## 7.0.0-next-7.14
|
|
181
|
+
|
|
182
|
+
### Patch Changes
|
|
183
|
+
|
|
184
|
+
- Updated dependencies [b0946b2]
|
|
185
|
+
- Updated dependencies [f967a69]
|
|
186
|
+
- Updated dependencies [4dc62a8]
|
|
187
|
+
- Updated dependencies [253cc13]
|
|
188
|
+
- @verdaccio/middleware@7.0.0-next-7.14
|
|
189
|
+
- @verdaccio/store@7.0.0-next-7.14
|
|
190
|
+
- @verdaccio/auth@7.0.0-next-7.14
|
|
191
|
+
- @verdaccio/core@7.0.0-next-7.14
|
|
192
|
+
- @verdaccio/config@7.0.0-next-7.14
|
|
193
|
+
- @verdaccio/utils@7.0.0-next-7.14
|
|
194
|
+
- @verdaccio/logger@7.0.0-next-7.14
|
|
195
|
+
|
|
196
|
+
## 7.0.0-next-7.13
|
|
197
|
+
|
|
198
|
+
### Patch Changes
|
|
199
|
+
|
|
200
|
+
- Updated dependencies [a99a4bb]
|
|
201
|
+
- @verdaccio/config@7.0.0-next-7.13
|
|
202
|
+
- @verdaccio/auth@7.0.0-next-7.13
|
|
203
|
+
- @verdaccio/middleware@7.0.0-next-7.13
|
|
204
|
+
- @verdaccio/store@7.0.0-next-7.13
|
|
205
|
+
- @verdaccio/logger@7.0.0-next-7.13
|
|
206
|
+
- @verdaccio/core@7.0.0-next-7.13
|
|
207
|
+
- @verdaccio/utils@7.0.0-next-7.13
|
|
208
|
+
|
|
209
|
+
## 7.0.0-next-7.12
|
|
210
|
+
|
|
211
|
+
### Patch Changes
|
|
212
|
+
|
|
213
|
+
- @verdaccio/store@7.0.0-next-7.12
|
|
214
|
+
- @verdaccio/core@7.0.0-next-7.12
|
|
215
|
+
- @verdaccio/config@7.0.0-next-7.12
|
|
216
|
+
- @verdaccio/auth@7.0.0-next-7.12
|
|
217
|
+
- @verdaccio/middleware@7.0.0-next-7.12
|
|
218
|
+
- @verdaccio/utils@7.0.0-next-7.12
|
|
219
|
+
- @verdaccio/logger@7.0.0-next-7.12
|
|
220
|
+
|
|
221
|
+
## 7.0.0-next-7.11
|
|
222
|
+
|
|
223
|
+
### Patch Changes
|
|
224
|
+
|
|
225
|
+
- Updated dependencies [c9962fe]
|
|
226
|
+
- @verdaccio/config@7.0.0-next-7.11
|
|
227
|
+
- @verdaccio/auth@7.0.0-next-7.11
|
|
228
|
+
- @verdaccio/middleware@7.0.0-next-7.11
|
|
229
|
+
- @verdaccio/store@7.0.0-next-7.11
|
|
230
|
+
- @verdaccio/core@7.0.0-next-7.11
|
|
231
|
+
- @verdaccio/utils@7.0.0-next-7.11
|
|
232
|
+
- @verdaccio/logger@7.0.0-next-7.11
|
|
233
|
+
|
|
234
|
+
## 7.0.0-next-7.10
|
|
235
|
+
|
|
236
|
+
### Patch Changes
|
|
237
|
+
|
|
238
|
+
- @verdaccio/core@7.0.0-next-7.10
|
|
239
|
+
- @verdaccio/config@7.0.0-next-7.10
|
|
240
|
+
- @verdaccio/auth@7.0.0-next-7.10
|
|
241
|
+
- @verdaccio/middleware@7.0.0-next-7.10
|
|
242
|
+
- @verdaccio/store@7.0.0-next-7.10
|
|
243
|
+
- @verdaccio/utils@7.0.0-next-7.10
|
|
244
|
+
- @verdaccio/logger@7.0.0-next-7.10
|
|
245
|
+
|
|
246
|
+
## 7.0.0-next-7.9
|
|
247
|
+
|
|
248
|
+
### Patch Changes
|
|
249
|
+
|
|
250
|
+
- Updated dependencies [c807f0c]
|
|
251
|
+
- @verdaccio/store@7.0.0-next-7.9
|
|
252
|
+
- @verdaccio/core@7.0.0-next-7.9
|
|
253
|
+
- @verdaccio/config@7.0.0-next-7.9
|
|
254
|
+
- @verdaccio/auth@7.0.0-next-7.9
|
|
255
|
+
- @verdaccio/middleware@7.0.0-next-7.9
|
|
256
|
+
- @verdaccio/utils@7.0.0-next-7.9
|
|
257
|
+
- @verdaccio/logger@7.0.0-next-7.9
|
|
258
|
+
|
|
259
|
+
## 7.0.0-next-7.8
|
|
260
|
+
|
|
261
|
+
### Patch Changes
|
|
262
|
+
|
|
263
|
+
- 74cd588: fix: bug on change password npm profile
|
|
264
|
+
- @verdaccio/core@7.0.0-next-7.8
|
|
265
|
+
- @verdaccio/config@7.0.0-next-7.8
|
|
266
|
+
- @verdaccio/auth@7.0.0-next-7.8
|
|
267
|
+
- @verdaccio/middleware@7.0.0-next-7.8
|
|
268
|
+
- @verdaccio/store@7.0.0-next-7.8
|
|
269
|
+
- @verdaccio/utils@7.0.0-next-7.8
|
|
270
|
+
- @verdaccio/logger@7.0.0-next-7.8
|
|
271
|
+
|
|
272
|
+
## 7.0.0-next-7.7
|
|
273
|
+
|
|
274
|
+
### Patch Changes
|
|
275
|
+
|
|
276
|
+
- @verdaccio/core@7.0.0-next-7.7
|
|
277
|
+
- @verdaccio/config@7.0.0-next-7.7
|
|
278
|
+
- @verdaccio/auth@7.0.0-next-7.7
|
|
279
|
+
- @verdaccio/middleware@7.0.0-next-7.7
|
|
280
|
+
- @verdaccio/store@7.0.0-next-7.7
|
|
281
|
+
- @verdaccio/utils@7.0.0-next-7.7
|
|
282
|
+
- @verdaccio/logger@7.0.0-next-7.7
|
|
283
|
+
|
|
3
284
|
## 7.0.0-next.6
|
|
4
285
|
|
|
5
286
|
### Patch Changes
|
package/build/dist-tags.js
CHANGED
|
@@ -9,7 +9,7 @@ var _mime = _interopRequireDefault(require("mime"));
|
|
|
9
9
|
var _core = require("@verdaccio/core");
|
|
10
10
|
var _logger = require("@verdaccio/logger");
|
|
11
11
|
var _middleware = require("@verdaccio/middleware");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
function _default(route, auth, storage) {
|
|
14
14
|
const can = (0, _middleware.allow)(auth, {
|
|
15
15
|
beforeAll: (a, b) => _logger.logger.trace(a, b),
|
package/build/dist-tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-tags.js","names":["_lodash","_interopRequireDefault","require","_mime","_core","_logger","_middleware","
|
|
1
|
+
{"version":3,"file":"dist-tags.js","names":["_lodash","_interopRequireDefault","require","_mime","_core","_logger","_middleware","e","__esModule","default","_default","route","auth","storage","can","allow","beforeAll","a","b","logger","trace","afterAll","addTagPackageVersionMiddleware","req","res","next","_","isString","body","errorUtils","getBadRequest","tags","params","tag","mergeTagsNext","package","status","constants","HTTP_STATUS","CREATED","ok","API_MESSAGE","TAG_ADDED","err","put","media","mime","getType","delete","TAG_REMOVED","get","name","requestOptions","protocol","headers","host","remoteAddress","socket","manifest","getPackageByOptions","uplinksLook","DIST_TAGS"],"sources":["../src/dist-tags.ts"],"sourcesContent":["import { Router } from 'express';\nimport _ from 'lodash';\nimport mime from 'mime';\n\nimport { Auth } from '@verdaccio/auth';\nimport { constants, errorUtils } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { allow, media } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router, auth: Auth, storage: Storage): void {\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n const addTagPackageVersionMiddleware = async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<$NextFunctionVer> {\n if (_.isString(req.body) === false) {\n return next(errorUtils.getBadRequest('version is missing'));\n }\n\n const tags = {};\n tags[req.params.tag] = req.body;\n try {\n await storage.mergeTagsNext(req.params.package, tags);\n res.status(constants.HTTP_STATUS.CREATED);\n return next({\n ok: constants.API_MESSAGE.TAG_ADDED,\n });\n } catch (err) {\n next(err);\n }\n };\n\n // tagging a package.\n route.put(\n '/:package/:tag',\n can('publish'),\n media(mime.getType('json')),\n addTagPackageVersionMiddleware\n );\n\n route.put(\n '/-/package/:package/dist-tags/:tag',\n can('publish'),\n media(mime.getType('json')),\n addTagPackageVersionMiddleware\n );\n\n route.delete(\n '/-/package/:package/dist-tags/:tag',\n can('publish'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const tags = {};\n tags[req.params.tag] = null;\n try {\n await storage.mergeTagsNext(req.params.package, tags);\n res.status(constants.HTTP_STATUS.CREATED);\n return next({\n ok: constants.API_MESSAGE.TAG_REMOVED,\n });\n } catch (err) {\n next(err);\n }\n }\n );\n\n route.get(\n '/-/package/:package/dist-tags',\n can('access'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const name = 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 manifest = await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n requestOptions,\n });\n next(manifest[constants.DIST_TAGS]);\n } catch (err) {\n next(err);\n }\n }\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var _profile = _interopRequireDefault(require("./v1/profile"));
|
|
|
17
17
|
var _search2 = _interopRequireDefault(require("./v1/search"));
|
|
18
18
|
var _token = _interopRequireDefault(require("./v1/token"));
|
|
19
19
|
var _whoami = _interopRequireDefault(require("./whoami"));
|
|
20
|
-
function _interopRequireDefault(
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
21
|
function _default(config, auth, storage) {
|
|
22
22
|
/* eslint new-cap:off */
|
|
23
23
|
const app = _express.default.Router();
|
|
@@ -32,8 +32,8 @@ function _default(config, auth, storage) {
|
|
|
32
32
|
app.param('revision', _middleware.validateName);
|
|
33
33
|
app.param('token', _middleware.validateName);
|
|
34
34
|
|
|
35
|
-
//
|
|
36
|
-
//
|
|
35
|
+
// Express route parameter names must be valid JavaScript identifiers, which means
|
|
36
|
+
// they cannot start with a hyphen (-) or contain special characters like dots (.)
|
|
37
37
|
app.param('_rev', (0, _middleware.match)(/^-rev$/));
|
|
38
38
|
app.param('org_couchdb_user', (0, _middleware.match)(/^org\.couchdb\.user:/));
|
|
39
39
|
app.use(auth.apiJWTmiddleware());
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_express","_interopRequireDefault","require","_middleware","_distTags","_package","_ping","_publish","_search","_stars","_user","_profile","_search2","_token","_whoami","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_express","_interopRequireDefault","require","_middleware","_distTags","_package","_ping","_publish","_search","_stars","_user","_profile","_search2","_token","_whoami","e","__esModule","default","_default","config","auth","storage","app","express","Router","param","validatePackage","validateName","match","use","apiJWTmiddleware","json","strict","limit","max_body_size","antiLoop","encodeScopePackage","whoami","profile","search","user","distTags","publish","ping","stars","v1Search","token","pkg"],"sources":["../src/index.ts"],"sourcesContent":["import express, { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n antiLoop,\n encodeScopePackage,\n match,\n validateName,\n validatePackage,\n} from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Config } from '@verdaccio/types';\n\nimport distTags from './dist-tags';\nimport pkg from './package';\nimport ping from './ping';\nimport publish from './publish';\nimport search from './search';\nimport stars from './stars';\nimport user from './user';\nimport profile from './v1/profile';\nimport v1Search from './v1/search';\nimport token from './v1/token';\nimport whoami from './whoami';\n\nexport default function (config: Config, auth: Auth, storage: Storage): Router {\n /* eslint new-cap:off */\n const app = express.Router();\n /* eslint new-cap:off */\n\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble\n app.param('package', validatePackage);\n app.param('filename', validateName);\n app.param('tag', validateName);\n app.param('version', validateName);\n app.param('revision', validateName);\n app.param('token', validateName);\n\n // Express route parameter names must be valid JavaScript identifiers, which means\n // they cannot start with a hyphen (-) or contain special characters like dots (.)\n app.param('_rev', match(/^-rev$/));\n app.param('org_couchdb_user', match(/^org\\.couchdb\\.user:/));\n\n app.use(auth.apiJWTmiddleware());\n app.use(express.json({ strict: false, limit: config.max_body_size || '10mb' }));\n app.use(antiLoop(config));\n // encode / in a scoped package name to be matched as a single parameter in routes\n app.use(encodeScopePackage);\n // for \"npm whoami\"\n whoami(app);\n profile(app, auth, config);\n search(app);\n user(app, auth, config);\n distTags(app, auth, storage);\n publish(app, auth, storage);\n ping(app);\n stars(app, storage);\n v1Search(app, auth, storage);\n token(app, auth, storage, config);\n pkg(app, auth, storage);\n return app;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/package.js
CHANGED
|
@@ -9,7 +9,7 @@ var _core = require("@verdaccio/core");
|
|
|
9
9
|
var _logger = require("@verdaccio/logger");
|
|
10
10
|
var _middleware = require("@verdaccio/middleware");
|
|
11
11
|
var _store = require("@verdaccio/store");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
const debug = (0, _debug.default)('verdaccio:api:package');
|
|
14
14
|
function _default(route, auth, storage) {
|
|
15
15
|
const can = (0, _middleware.allow)(auth, {
|
|
@@ -17,10 +17,12 @@ function _default(route, auth, storage) {
|
|
|
17
17
|
afterAll: (a, b) => _logger.logger.trace(a, b)
|
|
18
18
|
});
|
|
19
19
|
route.get('/:package/:version?', can('access'), async function (req, _res, next) {
|
|
20
|
+
var _req$remote_user;
|
|
20
21
|
debug('init package by version');
|
|
21
22
|
const name = req.params.package;
|
|
22
23
|
let version = req.params.version;
|
|
23
24
|
const write = req.query.write === 'true';
|
|
25
|
+
const username = req === null || req === void 0 || (_req$remote_user = req.remote_user) === null || _req$remote_user === void 0 ? void 0 : _req$remote_user.name;
|
|
24
26
|
const abbreviated = _core.stringUtils.getByQualityPriorityValue(req.get('Accept')) === _store.Storage.ABBREVIATED_HEADER;
|
|
25
27
|
const requestOptions = {
|
|
26
28
|
protocol: req.protocol,
|
|
@@ -28,7 +30,8 @@ function _default(route, auth, storage) {
|
|
|
28
30
|
// FIXME: if we migrate to req.hostname, the port is not longer included.
|
|
29
31
|
host: req.host,
|
|
30
32
|
remoteAddress: req.socket.remoteAddress,
|
|
31
|
-
byPassCache: write
|
|
33
|
+
byPassCache: write,
|
|
34
|
+
username
|
|
32
35
|
};
|
|
33
36
|
try {
|
|
34
37
|
const manifest = await storage.getPackageByOptions({
|
|
@@ -55,7 +58,7 @@ function _default(route, auth, storage) {
|
|
|
55
58
|
} = req.params;
|
|
56
59
|
const abort = new AbortController();
|
|
57
60
|
try {
|
|
58
|
-
const stream = await storage.
|
|
61
|
+
const stream = await storage.getTarball(pkgName, filename, {
|
|
59
62
|
signal: abort.signal
|
|
60
63
|
// TODO: review why this param
|
|
61
64
|
// enableRemote: true,
|
package/build/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_core","_logger","_middleware","_store","
|
|
1
|
+
{"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_core","_logger","_middleware","_store","e","__esModule","default","debug","buildDebug","_default","route","auth","storage","can","allow","beforeAll","a","b","logger","trace","afterAll","get","req","_res","next","_req$remote_user","name","params","package","version","write","query","username","remote_user","abbreviated","stringUtils","getByQualityPriorityValue","Storage","ABBREVIATED_HEADER","requestOptions","protocol","headers","host","remoteAddress","socket","byPassCache","manifest","getPackageByOptions","uplinksLook","setHeader","HEADER_TYPE","CONTENT_TYPE","HEADERS","JSON_INSTALL_CHARSET","JSON","err","res","pkgName","filename","abort","AbortController","stream","getTarball","signal","on","size","header","CONTENT_LENGTH","once","locals","report_error","url","OCTET_STREAM","pipe"],"sources":["../src/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { HEADERS, HEADER_TYPE, stringUtils } from '@verdaccio/core';\nimport { logger } from '@verdaccio/logger';\nimport { allow } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nconst debug = buildDebug('verdaccio:api:package');\n\nexport default function (route: Router, auth: Auth, storage: Storage): void {\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n route.get(\n '/:package/:version?',\n can('access'),\n async function (\n req: $RequestExtend,\n _res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('init package by version');\n const name = req.params.package;\n let version = req.params.version;\n const write = req.query.write === 'true';\n const username = req?.remote_user?.name;\n const abbreviated =\n stringUtils.getByQualityPriorityValue(req.get('Accept')) === Storage.ABBREVIATED_HEADER;\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 byPassCache: write,\n username,\n };\n\n try {\n const manifest = await storage.getPackageByOptions({\n name,\n uplinksLook: true,\n abbreviated,\n version,\n requestOptions,\n });\n if (abbreviated) {\n _res.setHeader(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_INSTALL_CHARSET);\n } else {\n _res.setHeader(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON);\n }\n\n next(manifest);\n } catch (err) {\n next(err);\n }\n }\n );\n\n route.get(\n '/:package/-/:filename',\n can('access'),\n async function (req: $RequestExtend, res: $ResponseExtend, next): Promise<void> {\n const { package: pkgName, filename } = req.params;\n const abort = new AbortController();\n try {\n const stream = (await storage.getTarball(pkgName, filename, {\n signal: abort.signal,\n // TODO: review why this param\n // enableRemote: true,\n })) as any;\n\n stream.on('content-length', (size) => {\n res.header(HEADER_TYPE.CONTENT_LENGTH, size);\n });\n\n stream.once('error', (err) => {\n res.locals.report_error(err);\n next(err);\n });\n\n req.on('abort', () => {\n debug('request aborted for %o', req.url);\n abort.abort();\n });\n\n res.header(HEADERS.CONTENT_TYPE, HEADERS.OCTET_STREAM);\n stream.pipe(res);\n } catch (err: any) {\n // console.log('catch API error request', err);\n res.locals.report_error(err);\n next(err);\n }\n }\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/ping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","names":["_default","route","get","req","res","next"],"sources":["../src/ping.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router): void {\n route.get(\n '/-/ping',\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {\n next({});\n }\n );\n}\n"],"mappings":";;;;;;AAIe,SAAAA,SAAUC,KAAa,EAAQ;EAC5CA,KAAK,CAACC,GAAG,CACP,SAAS,EACT,UAAUC,GAAmB,EAAEC,GAAoB,EAAEC,IAAsB,EAAE;IAC3EA,IAAI,CAAC,CAAC,CAAC,CAAC;EACV,CACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"ping.js","names":["_default","route","get","req","res","next"],"sources":["../src/ping.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router): void {\n route.get(\n '/-/ping',\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {\n next({});\n }\n );\n}\n"],"mappings":";;;;;;AAIe,SAAAA,SAAUC,KAAa,EAAQ;EAC5CA,KAAK,CAACC,GAAG,CACP,SAAS,EACT,UAAUC,GAAmB,EAAEC,GAAoB,EAAEC,IAAsB,EAAE;IAC3EA,IAAI,CAAC,CAAC,CAAC,CAAC;EACV,CACF,CAAC;AACH","ignoreList":[]}
|
package/build/publish.d.ts
CHANGED
|
@@ -63,11 +63,11 @@ import { Storage } from '@verdaccio/store';
|
|
|
63
63
|
*
|
|
64
64
|
* 3. Star a package
|
|
65
65
|
*
|
|
66
|
-
* Permissions:
|
|
67
|
-
* specific flag for star or
|
|
66
|
+
* Permissions: staring a package depends of the publish and unpublish permissions, there is no
|
|
67
|
+
* specific flag for star or unstar.
|
|
68
68
|
* The URL for star is similar to the unpublish (change package format)
|
|
69
69
|
*
|
|
70
|
-
* npm has no endpoint for
|
|
70
|
+
* npm has no endpoint for staring a package, rather mutate the metadata and acts as, the difference
|
|
71
71
|
* is the users property which is part of the payload and the body only includes
|
|
72
72
|
*
|
|
73
73
|
* {
|
|
@@ -76,7 +76,24 @@ import { Storage } from '@verdaccio/store';
|
|
|
76
76
|
"users": {
|
|
77
77
|
[username]: boolean value (true, false)
|
|
78
78
|
}
|
|
79
|
-
|
|
79
|
+
}
|
|
80
|
+
*
|
|
81
|
+
* 4. Change owners of a package
|
|
82
|
+
*
|
|
83
|
+
* Similar to staring a package, changing owners (maintainers) of a package uses the publish
|
|
84
|
+
* endpoint.
|
|
85
|
+
*
|
|
86
|
+
* The body includes a list of the new owners with the following format
|
|
87
|
+
*
|
|
88
|
+
* {
|
|
89
|
+
"_id": pkgName,
|
|
90
|
+
"_rev": "4-b0cdaefc9bdb77c8",
|
|
91
|
+
"maintainers": [
|
|
92
|
+
{ "name": "first owner", "email": "me@verdaccio.org" },
|
|
93
|
+
{ "name": "second owner", "email": "you@verdaccio.org" },
|
|
94
|
+
...
|
|
95
|
+
]
|
|
96
|
+
}
|
|
80
97
|
*
|
|
81
98
|
*/
|
|
82
99
|
export default function publish(router: Router, auth: Auth, storage: Storage): void;
|
package/build/publish.js
CHANGED
|
@@ -10,7 +10,7 @@ var _mime = _interopRequireDefault(require("mime"));
|
|
|
10
10
|
var _core = require("@verdaccio/core");
|
|
11
11
|
var _logger = require("@verdaccio/logger");
|
|
12
12
|
var _middleware = require("@verdaccio/middleware");
|
|
13
|
-
function _interopRequireDefault(
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
// import star from './star';
|
|
15
15
|
|
|
16
16
|
const debug = (0, _debug.default)('verdaccio:api:publish');
|
|
@@ -77,11 +77,11 @@ const debug = (0, _debug.default)('verdaccio:api:publish');
|
|
|
77
77
|
*
|
|
78
78
|
* 3. Star a package
|
|
79
79
|
*
|
|
80
|
-
* Permissions:
|
|
81
|
-
* specific flag for star or
|
|
80
|
+
* Permissions: staring a package depends of the publish and unpublish permissions, there is no
|
|
81
|
+
* specific flag for star or unstar.
|
|
82
82
|
* The URL for star is similar to the unpublish (change package format)
|
|
83
83
|
*
|
|
84
|
-
* npm has no endpoint for
|
|
84
|
+
* npm has no endpoint for staring a package, rather mutate the metadata and acts as, the difference
|
|
85
85
|
* is the users property which is part of the payload and the body only includes
|
|
86
86
|
*
|
|
87
87
|
* {
|
|
@@ -90,7 +90,24 @@ const debug = (0, _debug.default)('verdaccio:api:publish');
|
|
|
90
90
|
"users": {
|
|
91
91
|
[username]: boolean value (true, false)
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
}
|
|
94
|
+
*
|
|
95
|
+
* 4. Change owners of a package
|
|
96
|
+
*
|
|
97
|
+
* Similar to staring a package, changing owners (maintainers) of a package uses the publish
|
|
98
|
+
* endpoint.
|
|
99
|
+
*
|
|
100
|
+
* The body includes a list of the new owners with the following format
|
|
101
|
+
*
|
|
102
|
+
* {
|
|
103
|
+
"_id": pkgName,
|
|
104
|
+
"_rev": "4-b0cdaefc9bdb77c8",
|
|
105
|
+
"maintainers": [
|
|
106
|
+
{ "name": "first owner", "email": "me@verdaccio.org" },
|
|
107
|
+
{ "name": "second owner", "email": "you@verdaccio.org" },
|
|
108
|
+
...
|
|
109
|
+
]
|
|
110
|
+
}
|
|
94
111
|
*
|
|
95
112
|
*/
|
|
96
113
|
function publish(router, auth, storage) {
|
|
@@ -110,13 +127,15 @@ function publish(router, auth, storage) {
|
|
|
110
127
|
* npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms
|
|
111
128
|
*/
|
|
112
129
|
router.delete('/:package/-rev/:revision', can('unpublish'), async function (req, res, next) {
|
|
130
|
+
var _req$remote_user;
|
|
113
131
|
const packageName = req.params.package;
|
|
114
132
|
const rev = req.params.revision;
|
|
133
|
+
const username = req === null || req === void 0 || (_req$remote_user = req.remote_user) === null || _req$remote_user === void 0 ? void 0 : _req$remote_user.name;
|
|
115
134
|
_logger.logger.debug({
|
|
116
135
|
packageName
|
|
117
136
|
}, `unpublishing @{packageName}`);
|
|
118
137
|
try {
|
|
119
|
-
await storage.removePackage(packageName, rev);
|
|
138
|
+
await storage.removePackage(packageName, rev, username);
|
|
120
139
|
debug('package %s unpublished', packageName);
|
|
121
140
|
res.status(_core.HTTP_STATUS.CREATED);
|
|
122
141
|
return next({
|
|
@@ -132,18 +151,20 @@ function publish(router, auth, storage) {
|
|
|
132
151
|
npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms
|
|
133
152
|
*/
|
|
134
153
|
router.delete('/:package/-/:filename/-rev/:revision', can('unpublish'), can('publish'), async function (req, res, next) {
|
|
154
|
+
var _req$remote_user2;
|
|
135
155
|
const packageName = req.params.package;
|
|
136
156
|
const {
|
|
137
157
|
filename,
|
|
138
158
|
revision
|
|
139
159
|
} = req.params;
|
|
160
|
+
const username = req === null || req === void 0 || (_req$remote_user2 = req.remote_user) === null || _req$remote_user2 === void 0 ? void 0 : _req$remote_user2.name;
|
|
140
161
|
_logger.logger.debug({
|
|
141
162
|
packageName,
|
|
142
163
|
filename,
|
|
143
164
|
revision
|
|
144
165
|
}, `removing a tarball for @{packageName}-@{tarballName}-@{revision}`);
|
|
145
166
|
try {
|
|
146
|
-
await storage.removeTarball(packageName, filename, revision);
|
|
167
|
+
await storage.removeTarball(packageName, filename, revision, username);
|
|
147
168
|
res.status(_core.HTTP_STATUS.CREATED);
|
|
148
169
|
_logger.logger.debug({
|
|
149
170
|
packageName,
|
|
@@ -160,14 +181,19 @@ function publish(router, auth, storage) {
|
|
|
160
181
|
}
|
|
161
182
|
function publishPackage(storage) {
|
|
162
183
|
return async function (req, res, next) {
|
|
163
|
-
var _req$
|
|
184
|
+
var _req$remote_user3;
|
|
164
185
|
const ac = new AbortController();
|
|
165
186
|
const packageName = req.params.package;
|
|
166
187
|
const {
|
|
167
188
|
revision
|
|
168
189
|
} = req.params;
|
|
169
190
|
const metadata = req.body;
|
|
170
|
-
const username = req === null || req === void 0
|
|
191
|
+
const username = req === null || req === void 0 || (_req$remote_user3 = req.remote_user) === null || _req$remote_user3 === void 0 ? void 0 : _req$remote_user3.name;
|
|
192
|
+
debug('publishing package %o for user %o', packageName, username);
|
|
193
|
+
_logger.logger.debug({
|
|
194
|
+
packageName,
|
|
195
|
+
username
|
|
196
|
+
}, 'publishing package @{packageName} for user @{username}');
|
|
171
197
|
try {
|
|
172
198
|
const message = await storage.updateManifest(metadata, {
|
|
173
199
|
name: packageName,
|