@verdaccio/api 8.1.0-next-8.30 → 8.1.0-next-8.32

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.
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_core","_middleware","_store","e","__esModule","default","debug","buildDebug","_default","route","auth","storage","logger","can","allow","beforeAll","a","b","trace","afterAll","get","PACKAGE_API_ENDPOINTS","get_package_by_version","req","_res","next","name","params","package","version","write","query","username","remote_user","abbreviated","stringUtils","getByQualityPriorityValue","Storage","ABBREVIATED_HEADER","enabled","socket","remoteAddress","host","protocol","url","requestOptions","headers","byPassCache","manifest","getPackageByOptions","uplinksLook","setHeader","HEADER_TYPE","CONTENT_TYPE","HEADERS","JSON_INSTALL_CHARSET","JSON","err","get_package_tarball","res","pkgName","filename","abort","AbortController","stream","getTarball","signal","on","size","header","CONTENT_LENGTH","once","locals","report_error","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 { allow } from '@verdaccio/middleware';\nimport { PACKAGE_API_ENDPOINTS } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Logger } from '@verdaccio/types';\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, logger: Logger): 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_API_ENDPOINTS.get_package_by_version,\n can('access'),\n async function (\n req: $RequestExtend,\n _res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug('get 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 if (debug.enabled) {\n debug('is write %o', write);\n debug('is abbreviated %o', abbreviated);\n debug('package %o', name);\n debug('version %o', version);\n debug('username %o', username);\n debug('remote address %o', req.socket.remoteAddress);\n debug('host %o', req.host);\n debug('protocol %o', req.protocol);\n debug('url %o', req.url);\n }\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 debug('abbreviated response');\n _res.setHeader(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_INSTALL_CHARSET);\n } else {\n debug('full response');\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_API_ENDPOINTS.get_package_tarball,\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 debug('downloading tarball %o', filename);\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 debug('tarball size %o', size);\n res.header(HEADER_TYPE.CONTENT_LENGTH, size);\n });\n\n stream.once('error', (err) => {\n debug('error on download tarball %o', 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 res.locals.report_error(err);\n next(err);\n }\n }\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"package.js","names":["_debug","_interopRequireDefault","require","_core","_middleware","_store","e","__esModule","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","debug","buildDebug","_default","route","auth","storage","logger","can","allow","beforeAll","b","trace","afterAll","get","PACKAGE_API_ENDPOINTS","get_package_by_version","_ref","_callee","req","_res","next","name","version","abbreviated","requestOptions","manifest","_t","_context","params","stringUtils","getByQualityPriorityValue","Storage","ABBREVIATED_HEADER","getRequestOptions","getPackageByOptions","uplinksLook","setHeader","HEADER_TYPE","CONTENT_TYPE","HEADERS","JSON_INSTALL_CHARSET","JSON","_x","_x2","_x3","get_package_tarball","_ref2","_callee2","res","_req$params","pkgName","filename","abort","stream","_t2","_context2","AbortController","getTarball","signal","on","size","header","CONTENT_LENGTH","once","err","locals","report_error","url","OCTET_STREAM","pipe","_x4","_x5","_x6"],"sources":["../src/package.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport type { Router } from 'express';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { HEADERS, HEADER_TYPE, stringUtils } from '@verdaccio/core';\nimport { PACKAGE_API_ENDPOINTS, allow, getRequestOptions } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport type { Logger } from '@verdaccio/types';\n\nimport type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nconst debug = buildDebug('verdaccio:api:package');\n\nexport default function (route: Router, auth: Auth, storage: Storage, logger: Logger): 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_API_ENDPOINTS.get_package_by_version,\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 version = req.params.version;\n debug('get package by version: %o %o', name, version);\n const abbreviated =\n stringUtils.getByQualityPriorityValue(req.get('Accept')) === Storage.ABBREVIATED_HEADER;\n debug('abbreviated: %o', abbreviated);\n\n const requestOptions = getRequestOptions(req);\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 debug('abbreviated response');\n _res.setHeader(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_INSTALL_CHARSET);\n } else {\n debug('full response');\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_API_ENDPOINTS.get_package_tarball,\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 debug('downloading tarball %o', filename);\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 debug('tarball size %o', size);\n res.header(HEADER_TYPE.CONTENT_LENGTH, size);\n });\n\n stream.once('error', (err) => {\n debug('error on download tarball %o', 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 res.locals.report_error(err);\n next(err);\n }\n }\n );\n}\n"],"mappings":"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","ignoreList":[]}
package/build/ping.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Router } from 'express';
1
+ import type { Router } from 'express';
2
2
  export default function (route: Router): void;
package/build/ping.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = _default;
6
+ exports["default"] = _default;
7
7
  var _middleware = require("@verdaccio/middleware");
8
8
  function _default(route) {
9
9
  route.get(_middleware.PING_API_ENDPOINTS.ping, function (req, res, next) {
package/build/ping.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ping.js","names":["_middleware","require","_default","route","get","PING_API_ENDPOINTS","ping","req","res","next"],"sources":["../src/ping.ts"],"sourcesContent":["import { Router } from 'express';\n\nimport { PING_API_ENDPOINTS } from '@verdaccio/middleware';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router): void {\n route.get(\n PING_API_ENDPOINTS.ping,\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {\n next({});\n }\n );\n}\n"],"mappings":";;;;;;AAEA,IAAAA,WAAA,GAAAC,OAAA;AAIe,SAAAC,SAAUC,KAAa,EAAQ;EAC5CA,KAAK,CAACC,GAAG,CACPC,8BAAkB,CAACC,IAAI,EACvB,UAAUC,GAAmB,EAAEC,GAAoB,EAAEC,IAAsB,EAAE;IAC3EA,IAAI,CAAC,CAAC,CAAC,CAAC;EACV,CACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"ping.js","names":["_middleware","require","_default","route","get","PING_API_ENDPOINTS","ping","req","res","next"],"sources":["../src/ping.ts"],"sourcesContent":["import type { Router } from 'express';\n\nimport { PING_API_ENDPOINTS } from '@verdaccio/middleware';\n\nimport type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nexport default function (route: Router): void {\n route.get(\n PING_API_ENDPOINTS.ping,\n function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {\n next({});\n }\n );\n}\n"],"mappings":";;;;;;AAEA,IAAAA,WAAA,GAAAC,OAAA;AAIe,SAAAC,SAAUC,KAAa,EAAQ;EAC5CA,KAAK,CAACC,GAAG,CACPC,8BAAkB,CAACC,IAAI,EACvB,UAAUC,GAAmB,EAAEC,GAAoB,EAAEC,IAAsB,EAAE;IAC3EA,IAAI,CAAC,CAAC,CAAC,CAAC;EACV,CACF,CAAC;AACH","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { Router } from 'express';
2
- import { Auth } from '@verdaccio/auth';
3
- import { Storage } from '@verdaccio/store';
4
- import { Logger } from '@verdaccio/types';
1
+ import type { Router } from 'express';
2
+ import type { Auth } from '@verdaccio/auth';
3
+ import type { Storage } from '@verdaccio/store';
4
+ import type { Logger } from '@verdaccio/types';
5
5
  /**
6
6
  * Publish a package / update package / un/start a package
7
7
  *
@@ -72,12 +72,12 @@ import { Logger } from '@verdaccio/types';
72
72
  * is the users property which is part of the payload and the body only includes
73
73
  *
74
74
  * {
75
- "_id": pkgName,
76
- "_rev": "3-b0cdaefc9bdb77c8",
77
- "users": {
78
- [username]: boolean value (true, false)
79
- }
80
- }
75
+ "_id": pkgName,
76
+ "_rev": "3-b0cdaefc9bdb77c8",
77
+ "users": {
78
+ [username]: boolean value (true, false)
79
+ }
80
+ }
81
81
  *
82
82
  * 4. Change owners of a package
83
83
  *
@@ -87,14 +87,14 @@ import { Logger } from '@verdaccio/types';
87
87
  * The body includes a list of the new owners with the following format
88
88
  *
89
89
  * {
90
- "_id": pkgName,
91
- "_rev": "4-b0cdaefc9bdb77c8",
92
- "maintainers": [
90
+ "_id": pkgName,
91
+ "_rev": "4-b0cdaefc9bdb77c8",
92
+ "maintainers": [
93
93
  { "name": "first owner", "email": "me@verdaccio.org" },
94
94
  { "name": "second owner", "email": "you@verdaccio.org" },
95
95
  ...
96
- ]
97
- }
96
+ ]
97
+ }
98
98
  *
99
99
  */
100
100
  export default function publish(router: Router, auth: Auth, storage: Storage, logger: Logger): void;
package/build/publish.js CHANGED
@@ -3,15 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = publish;
6
+ exports["default"] = publish;
7
7
  exports.publishPackage = publishPackage;
8
8
  var _debug = _interopRequireDefault(require("debug"));
9
9
  var _core = require("@verdaccio/core");
10
10
  var _middleware = require("@verdaccio/middleware");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
13
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
14
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
15
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
16
  // import star from './star';
13
17
 
14
- const debug = (0, _debug.default)('verdaccio:api:publish');
18
+ var debug = (0, _debug["default"])('verdaccio:api:publish');
15
19
 
16
20
  /**
17
21
  * Publish a package / update package / un/start a package
@@ -83,12 +87,12 @@ const debug = (0, _debug.default)('verdaccio:api:publish');
83
87
  * is the users property which is part of the payload and the body only includes
84
88
  *
85
89
  * {
86
- "_id": pkgName,
87
- "_rev": "3-b0cdaefc9bdb77c8",
88
- "users": {
89
- [username]: boolean value (true, false)
90
- }
91
- }
90
+ "_id": pkgName,
91
+ "_rev": "3-b0cdaefc9bdb77c8",
92
+ "users": {
93
+ [username]: boolean value (true, false)
94
+ }
95
+ }
92
96
  *
93
97
  * 4. Change owners of a package
94
98
  *
@@ -98,20 +102,24 @@ const debug = (0, _debug.default)('verdaccio:api:publish');
98
102
  * The body includes a list of the new owners with the following format
99
103
  *
100
104
  * {
101
- "_id": pkgName,
102
- "_rev": "4-b0cdaefc9bdb77c8",
103
- "maintainers": [
105
+ "_id": pkgName,
106
+ "_rev": "4-b0cdaefc9bdb77c8",
107
+ "maintainers": [
104
108
  { "name": "first owner", "email": "me@verdaccio.org" },
105
109
  { "name": "second owner", "email": "you@verdaccio.org" },
106
110
  ...
107
- ]
108
- }
111
+ ]
112
+ }
109
113
  *
110
114
  */
111
115
  function publish(router, auth, storage, logger) {
112
- const can = (0, _middleware.allow)(auth, {
113
- beforeAll: (a, b) => logger.trace(a, b),
114
- afterAll: (a, b) => logger.trace(a, b)
116
+ var can = (0, _middleware.allow)(auth, {
117
+ beforeAll: function beforeAll(a, b) {
118
+ return logger.trace(a, b);
119
+ },
120
+ afterAll: function afterAll(a, b) {
121
+ return logger.trace(a, b);
122
+ }
115
123
  });
116
124
  router.put(_middleware.PUBLISH_API_ENDPOINTS.add_package, can('publish'), (0, _middleware.media)(_core.HEADERS.JSON), _middleware.expectJson, publishPackage(storage, logger, 'publish one version'));
117
125
  router.put(_middleware.PUBLISH_API_ENDPOINTS.publish_package, can('unpublish'), (0, _middleware.media)(_core.HEADERS.JSON), _middleware.expectJson, publishPackage(storage, logger, 'publish with revision'));
@@ -132,100 +140,135 @@ function publish(router, auth, storage, logger) {
132
140
  * and the package name, it will delete the entire package and all tarballs (or tarball depends the scenario)
133
141
  * npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms
134
142
  */
135
- router.delete(_middleware.PUBLISH_API_ENDPOINTS.publish_package, can('unpublish'), async function (req, res, next) {
136
- const packageName = req.params.package;
137
- const rev = req.params.revision;
138
- const username = req?.remote_user?.name;
139
- logger.debug({
140
- packageName
141
- }, `unpublishing @{packageName}`);
142
- try {
143
- await storage.removePackage(packageName, rev, username);
144
- debug('package %s unpublished', packageName);
145
- res.status(_core.HTTP_STATUS.CREATED);
146
- return next({
147
- ok: _core.API_MESSAGE.PKG_REMOVED
148
- });
149
- } catch (err) {
150
- return next(err);
151
- }
152
- });
143
+ router["delete"](_middleware.PUBLISH_API_ENDPOINTS.publish_package, can('unpublish'), /*#__PURE__*/function () {
144
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, res, next) {
145
+ var _req$remote_user;
146
+ var packageName, rev, username, _t;
147
+ return _regenerator().w(function (_context) {
148
+ while (1) switch (_context.p = _context.n) {
149
+ case 0:
150
+ packageName = req.params["package"];
151
+ rev = req.params.revision;
152
+ username = req === null || req === void 0 || (_req$remote_user = req.remote_user) === null || _req$remote_user === void 0 ? void 0 : _req$remote_user.name;
153
+ logger.debug({
154
+ packageName: packageName
155
+ }, "unpublishing @{packageName}");
156
+ _context.p = 1;
157
+ _context.n = 2;
158
+ return storage.removePackage(packageName, rev, username);
159
+ case 2:
160
+ debug('package %s unpublished', packageName);
161
+ res.status(_core.HTTP_STATUS.CREATED);
162
+ return _context.a(2, next({
163
+ ok: _core.API_MESSAGE.PKG_REMOVED
164
+ }));
165
+ case 3:
166
+ _context.p = 3;
167
+ _t = _context.v;
168
+ return _context.a(2, next(_t));
169
+ }
170
+ }, _callee, null, [[1, 3]]);
171
+ }));
172
+ return function (_x, _x2, _x3) {
173
+ return _ref.apply(this, arguments);
174
+ };
175
+ }());
153
176
 
154
177
  /*
155
178
  Remove a tarball, this happens when npm unpublish a package unique version.
156
179
  npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms
157
180
  */
158
- router.delete(_middleware.PUBLISH_API_ENDPOINTS.remove_tarball, can('unpublish'), can('publish'), async function (req, res, next) {
159
- const packageName = req.params.package;
160
- const {
161
- filename,
162
- revision
163
- } = req.params;
164
- const username = req?.remote_user?.name;
165
- logger.debug({
166
- packageName,
167
- filename,
168
- revision
169
- }, `removing a tarball for @{packageName}-@{tarballName}-@{revision}`);
170
- try {
171
- await storage.removeTarball(packageName, filename, revision, username);
172
- res.status(_core.HTTP_STATUS.CREATED);
173
- logger.debug({
174
- packageName,
175
- filename,
176
- revision
177
- }, `success remove tarball for @{packageName}-@{tarballName}-@{revision}`);
178
- return next({
179
- ok: _core.API_MESSAGE.TARBALL_REMOVED
180
- });
181
- } catch (err) {
182
- return next(err);
183
- }
184
- });
181
+ router["delete"](_middleware.PUBLISH_API_ENDPOINTS.remove_tarball, can('unpublish'), /*#__PURE__*/function () {
182
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(req, res, next) {
183
+ var _req$remote_user2;
184
+ var packageName, _req$params, filename, revision, username, _t2;
185
+ return _regenerator().w(function (_context2) {
186
+ while (1) switch (_context2.p = _context2.n) {
187
+ case 0:
188
+ packageName = req.params["package"];
189
+ _req$params = req.params, filename = _req$params.filename, revision = _req$params.revision;
190
+ username = req === null || req === void 0 || (_req$remote_user2 = req.remote_user) === null || _req$remote_user2 === void 0 ? void 0 : _req$remote_user2.name;
191
+ logger.debug({
192
+ packageName: packageName,
193
+ filename: filename,
194
+ revision: revision
195
+ }, "removing a tarball for @{packageName}-@{tarballName}-@{revision}");
196
+ _context2.p = 1;
197
+ _context2.n = 2;
198
+ return storage.removeTarball(packageName, filename, revision, username);
199
+ case 2:
200
+ res.status(_core.HTTP_STATUS.CREATED);
201
+ logger.debug({
202
+ packageName: packageName,
203
+ filename: filename,
204
+ revision: revision
205
+ }, "success remove tarball for @{packageName}-@{tarballName}-@{revision}");
206
+ return _context2.a(2, next({
207
+ ok: _core.API_MESSAGE.TARBALL_REMOVED
208
+ }));
209
+ case 3:
210
+ _context2.p = 3;
211
+ _t2 = _context2.v;
212
+ return _context2.a(2, next(_t2));
213
+ }
214
+ }, _callee2, null, [[1, 3]]);
215
+ }));
216
+ return function (_x4, _x5, _x6) {
217
+ return _ref2.apply(this, arguments);
218
+ };
219
+ }());
185
220
  }
186
221
  function publishPackage(storage, logger, origin) {
187
- return async function (req, res, next) {
188
- debug(origin);
189
- const ac = new AbortController();
190
- const packageName = req.params.package;
191
- const {
192
- revision
193
- } = req.params;
194
- debug('publishing package %s', packageName);
195
- debug('revision %s', revision);
196
- if (debug.enabled) {
197
- debug('body %o', req.body);
198
- }
199
- const metadata = req.body;
200
- const username = req?.remote_user?.name;
201
- debug('publishing package %o for user %o', packageName, username);
202
- logger.debug({
203
- packageName,
204
- username
205
- }, 'publishing package @{packageName} for user @{username}');
206
- try {
207
- const message = await storage.updateManifest(metadata, {
208
- name: packageName,
209
- revision,
210
- signal: ac.signal,
211
- requestOptions: {
212
- host: req.hostname,
213
- protocol: req.protocol,
214
- headers: req.headers,
215
- username
216
- },
217
- uplinksLook: false
218
- });
219
- debug('package %s published', packageName);
220
- res.status(_core.HTTP_STATUS.CREATED);
221
- return next({
222
- success: true,
223
- ok: message
224
- });
225
- } catch (err) {
226
- // TODO: review if we need the abort controller here
227
- next(err);
228
- }
229
- };
222
+ return /*#__PURE__*/function () {
223
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(req, res, next) {
224
+ var ac, packageName, revision, metadata, requestOptions, message, _t3;
225
+ return _regenerator().w(function (_context3) {
226
+ while (1) switch (_context3.p = _context3.n) {
227
+ case 0:
228
+ debug(origin);
229
+ ac = new AbortController();
230
+ packageName = req.params["package"];
231
+ revision = req.params.revision;
232
+ debug('publishing package %s', packageName);
233
+ debug('revision %s', revision);
234
+ if (debug.enabled) {
235
+ debug('body %o', req.body);
236
+ }
237
+ metadata = req.body;
238
+ logger.debug({
239
+ packageName: packageName
240
+ }, "publishing package @{packageName}");
241
+ requestOptions = (0, _middleware.getRequestOptions)(req);
242
+ _context3.p = 1;
243
+ _context3.n = 2;
244
+ return storage.updateManifest(metadata, {
245
+ name: packageName,
246
+ revision: revision,
247
+ signal: ac.signal,
248
+ requestOptions: requestOptions,
249
+ uplinksLook: false
250
+ });
251
+ case 2:
252
+ message = _context3.v;
253
+ debug('package %s published', packageName);
254
+ res.status(_core.HTTP_STATUS.CREATED);
255
+ return _context3.a(2, next({
256
+ success: true,
257
+ ok: message
258
+ }));
259
+ case 3:
260
+ _context3.p = 3;
261
+ _t3 = _context3.v;
262
+ // TODO: review if we need the abort controller here
263
+ next(_t3);
264
+ case 4:
265
+ return _context3.a(2);
266
+ }
267
+ }, _callee3, null, [[1, 3]]);
268
+ }));
269
+ return function (_x7, _x8, _x9) {
270
+ return _ref3.apply(this, arguments);
271
+ };
272
+ }();
230
273
  }
231
274
  //# sourceMappingURL=publish.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","names":["_debug","_interopRequireDefault","require","_core","_middleware","e","__esModule","default","debug","buildDebug","publish","router","auth","storage","logger","can","allow","beforeAll","a","b","trace","afterAll","put","PUBLISH_API_ENDPOINTS","add_package","media","HEADERS","JSON","expectJson","publishPackage","publish_package","delete","req","res","next","packageName","params","package","rev","revision","username","remote_user","name","removePackage","status","HTTP_STATUS","CREATED","ok","API_MESSAGE","PKG_REMOVED","err","remove_tarball","filename","removeTarball","TARBALL_REMOVED","origin","ac","AbortController","enabled","body","metadata","message","updateManifest","signal","requestOptions","host","hostname","protocol","headers","uplinksLook","success"],"sources":["../src/publish.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Router } from 'express';\n\nimport { Auth } from '@verdaccio/auth';\nimport { API_MESSAGE, HEADERS, HTTP_STATUS } from '@verdaccio/core';\nimport { allow, expectJson, media } from '@verdaccio/middleware';\n// import star from './star';\nimport { PUBLISH_API_ENDPOINTS } from '@verdaccio/middleware';\nimport { Storage } from '@verdaccio/store';\nimport { Logger } from '@verdaccio/types';\n\nimport { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nconst debug = buildDebug('verdaccio:api:publish');\n\n/**\n * Publish a package / update package / un/start a package\n *\n * There are multiples scenarios here to be considered:\n *\n * 1. Publish scenario\n *\n * Publish a package consist of at least 1 step (PUT) with a metadata payload.\n * When a package is published, an _attachment property is present that contains the data\n * of the tarball.\n *\n * Example flow of publish.\n *\n * npm http fetch PUT 201 http://localhost:4873/@scope%2ftest1 9627ms\n npm info lifecycle @scope/test1@1.0.1~publish: @scope/test1@1.0.1\n npm info lifecycle @scope/test1@1.0.1~postpublish: @scope/test1@1.0.1\n + @scope/test1@1.0.1\n npm verb exit [ 0, true ]\n *\n *\n * 2. Unpublish scenario\n *\n * Unpublish consist in 3 steps.\n * 1. Try to fetch metadata -> if it fails, return 404\n * 2. Compute metadata locally (client side) and send a mutate payload excluding the version to\n * be unpublished\n * eg: if metadata reflects 1.0.1, 1.0.2 and 1.0.3, the computed metadata won't include 1.0.3.\n * 3. Once the second step has been successfully finished, delete the tarball.\n *\n * All these steps are consecutive and required, there is no transacions here, if step 3 fails,\n * metadata might get corrupted.\n *\n * Note the unpublish call will suffix in the url a /-rev/14-5d500cfce92f90fd revision number,\n * this not\n * used internally.\n *\n *\n * Example flow of unpublish.\n *\n * There are two possible flows:\n *\n * - Remove all packages (entirely)\n * eg: npm unpublish package-name@* --force\n * eg: npm unpublish package-name --force\n *\n * npm http fetch GET 200 http://localhost:4873/custom-name?write=true 1680ms\n * npm http fetch DELETE 201 http://localhost:4873/custom-name/-/test1-1.0.3.tgz/-rev/16-e11c8db282b2d992 19ms\n *\n * - Remove a specific version\n * eg: npm unpublish package-name@1.0.0 --force\n *\n * Get fresh manifest\n * npm http fetch GET 200 http://localhost:4873/custom-name?write=true 1680ms\n * Update manifest without the version to be unpublished\n * npm http fetch PUT 201 http://localhost:4873/custom-name/-rev/14-5d500cfce92f90fd 956606ms\n * Get fresh manifest (revision should be different)\n * npm http fetch GET 200 http://localhost:4873/custom-name?write=true 1601ms\n * Remove the tarball\n * npm http fetch DELETE 201 http://localhost:4873/custom-name/-/test1-1.0.3.tgz/-rev/16-e11c8db282b2d992 19ms\n *\n * 3. Star a package\n *\n * Permissions: staring a package depends of the publish and unpublish permissions, there is no\n * specific flag for star or unstar.\n * The URL for star is similar to the unpublish (change package format)\n *\n * npm has no endpoint for staring a package, rather mutate the metadata and acts as, the difference\n * is the users property which is part of the payload and the body only includes\n *\n * {\n\t\t \"_id\": pkgName,\n\t \t\"_rev\": \"3-b0cdaefc9bdb77c8\",\n\t\t \"users\": {\n\t\t [username]: boolean value (true, false)\n\t\t }\n\t }\n *\n * 4. Change owners of a package\n *\n * Similar to staring a package, changing owners (maintainers) of a package uses the publish\n * endpoint.\n *\n * The body includes a list of the new owners with the following format\n *\n * {\n\t\t \"_id\": pkgName,\n\t \t\"_rev\": \"4-b0cdaefc9bdb77c8\",\n\t\t \"maintainers\": [\n { \"name\": \"first owner\", \"email\": \"me@verdaccio.org\" },\n { \"name\": \"second owner\", \"email\": \"you@verdaccio.org\" },\n ...\n\t\t ]\n\t }\n *\n */\nexport default function publish(\n router: Router,\n auth: Auth,\n storage: Storage,\n logger: Logger\n): void {\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n router.put(\n PUBLISH_API_ENDPOINTS.add_package,\n can('publish'),\n media(HEADERS.JSON),\n expectJson,\n publishPackage(storage, logger, 'publish one version')\n );\n\n router.put(\n PUBLISH_API_ENDPOINTS.publish_package,\n can('unpublish'),\n media(HEADERS.JSON),\n expectJson,\n publishPackage(storage, logger, 'publish with revision')\n );\n\n /**\n * Un-publishing an entire package.\n *\n * This scenario happens when any of these scenarios happens:\n * - the first call detect there is only one version remaining\n * - no version is specified in the unpublish call\n * - all versions are removed npm unpublish package@*\n * - there is no versions on the metadata\n\n * then the client decides to DELETE the resource\n * Example:\n * Get fresh manifest (write=true is a flag to get the latest revision)\n * npm http fetch GET 304 http://localhost:4873/package-name?write=true 1076ms (from cache)\n * Send request to delete the package, this includes the revision number that must match\n * and the package name, it will delete the entire package and all tarballs (or tarball depends the scenario)\n * npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms\n */\n router.delete(\n PUBLISH_API_ENDPOINTS.publish_package,\n can('unpublish'),\n async function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {\n const packageName = req.params.package;\n const rev = req.params.revision;\n const username = req?.remote_user?.name;\n\n logger.debug({ packageName }, `unpublishing @{packageName}`);\n try {\n await storage.removePackage(packageName, rev, username);\n debug('package %s unpublished', packageName);\n res.status(HTTP_STATUS.CREATED);\n return next({ ok: API_MESSAGE.PKG_REMOVED });\n } catch (err) {\n return next(err);\n }\n }\n );\n\n /*\n Remove a tarball, this happens when npm unpublish a package unique version.\n npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms\n */\n router.delete(\n PUBLISH_API_ENDPOINTS.remove_tarball,\n can('unpublish'),\n can('publish'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const packageName = req.params.package;\n const { filename, revision } = req.params;\n const username = req?.remote_user?.name;\n\n logger.debug(\n { packageName, filename, revision },\n `removing a tarball for @{packageName}-@{tarballName}-@{revision}`\n );\n try {\n await storage.removeTarball(packageName, filename, revision, username);\n res.status(HTTP_STATUS.CREATED);\n\n logger.debug(\n { packageName, filename, revision },\n `success remove tarball for @{packageName}-@{tarballName}-@{revision}`\n );\n return next({ ok: API_MESSAGE.TARBALL_REMOVED });\n } catch (err) {\n return next(err);\n }\n }\n );\n}\n\nexport function publishPackage(storage: Storage, logger: Logger, origin: string): any {\n return async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug(origin);\n const ac = new AbortController();\n const packageName = req.params.package;\n const { revision } = req.params;\n debug('publishing package %s', packageName);\n debug('revision %s', revision);\n if (debug.enabled) {\n debug('body %o', req.body);\n }\n const metadata = req.body;\n const username = req?.remote_user?.name;\n\n debug('publishing package %o for user %o', packageName, username);\n logger.debug(\n { packageName, username },\n 'publishing package @{packageName} for user @{username}'\n );\n\n try {\n const message = await storage.updateManifest(metadata, {\n name: packageName,\n revision,\n signal: ac.signal,\n requestOptions: {\n host: req.hostname,\n protocol: req.protocol,\n headers: req.headers as { [key: string]: string },\n username,\n },\n uplinksLook: false,\n });\n debug('package %s published', packageName);\n\n res.status(HTTP_STATUS.CREATED);\n\n return next({\n success: true,\n ok: message,\n });\n } catch (err: any) {\n // TODO: review if we need the abort controller here\n next(err);\n }\n };\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAAiE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AACjE;;AAOA,MAAMG,KAAK,GAAG,IAAAC,cAAU,EAAC,uBAAuB,CAAC;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,OAAOA,CAC7BC,MAAc,EACdC,IAAU,EACVC,OAAgB,EAChBC,MAAc,EACR;EACN,MAAMC,GAAG,GAAG,IAAAC,iBAAK,EAACJ,IAAI,EAAE;IACtBK,SAAS,EAAEA,CAACC,CAAC,EAAEC,CAAC,KAAKL,MAAM,CAACM,KAAK,CAACF,CAAC,EAAEC,CAAC,CAAC;IACvCE,QAAQ,EAAEA,CAACH,CAAC,EAAEC,CAAC,KAAKL,MAAM,CAACM,KAAK,CAACF,CAAC,EAAEC,CAAC;EACvC,CAAC,CAAC;EACFR,MAAM,CAACW,GAAG,CACRC,iCAAqB,CAACC,WAAW,EACjCT,GAAG,CAAC,SAAS,CAAC,EACd,IAAAU,iBAAK,EAACC,aAAO,CAACC,IAAI,CAAC,EACnBC,sBAAU,EACVC,cAAc,CAAChB,OAAO,EAAEC,MAAM,EAAE,q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","ignoreList":[]}
1
+ {"version":3,"file":"publish.js","names":["_debug","_interopRequireDefault","require","_core","_middleware","e","__esModule","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","debug","buildDebug","publish","router","auth","storage","logger","can","allow","beforeAll","b","trace","afterAll","put","PUBLISH_API_ENDPOINTS","add_package","media","HEADERS","JSON","expectJson","publishPackage","publish_package","_ref","_callee","req","res","next","_req$remote_user","packageName","rev","username","_t","_context","params","revision","remote_user","name","removePackage","status","HTTP_STATUS","CREATED","ok","API_MESSAGE","PKG_REMOVED","_x","_x2","_x3","remove_tarball","_ref2","_callee2","_req$remote_user2","_req$params","filename","_t2","_context2","removeTarball","TARBALL_REMOVED","_x4","_x5","_x6","origin","_ref3","_callee3","ac","metadata","requestOptions","message","_t3","_context3","AbortController","enabled","body","getRequestOptions","updateManifest","signal","uplinksLook","success","_x7","_x8","_x9"],"sources":["../src/publish.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport type { Router } from 'express';\n\nimport type { Auth } from '@verdaccio/auth';\nimport { API_MESSAGE, HEADERS, HTTP_STATUS } from '@verdaccio/core';\nimport {\n PUBLISH_API_ENDPOINTS,\n allow,\n expectJson,\n getRequestOptions,\n media,\n} from '@verdaccio/middleware';\n// import star from './star';\nimport type { Storage } from '@verdaccio/store';\nimport type { Logger } from '@verdaccio/types';\n\nimport type { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types/custom';\n\nconst debug = buildDebug('verdaccio:api:publish');\n\n/**\n * Publish a package / update package / un/start a package\n *\n * There are multiples scenarios here to be considered:\n *\n * 1. Publish scenario\n *\n * Publish a package consist of at least 1 step (PUT) with a metadata payload.\n * When a package is published, an _attachment property is present that contains the data\n * of the tarball.\n *\n * Example flow of publish.\n *\n * npm http fetch PUT 201 http://localhost:4873/@scope%2ftest1 9627ms\n npm info lifecycle @scope/test1@1.0.1~publish: @scope/test1@1.0.1\n npm info lifecycle @scope/test1@1.0.1~postpublish: @scope/test1@1.0.1\n + @scope/test1@1.0.1\n npm verb exit [ 0, true ]\n *\n *\n * 2. Unpublish scenario\n *\n * Unpublish consist in 3 steps.\n * 1. Try to fetch metadata -> if it fails, return 404\n * 2. Compute metadata locally (client side) and send a mutate payload excluding the version to\n * be unpublished\n * eg: if metadata reflects 1.0.1, 1.0.2 and 1.0.3, the computed metadata won't include 1.0.3.\n * 3. Once the second step has been successfully finished, delete the tarball.\n *\n * All these steps are consecutive and required, there is no transacions here, if step 3 fails,\n * metadata might get corrupted.\n *\n * Note the unpublish call will suffix in the url a /-rev/14-5d500cfce92f90fd revision number,\n * this not\n * used internally.\n *\n *\n * Example flow of unpublish.\n *\n * There are two possible flows:\n *\n * - Remove all packages (entirely)\n * eg: npm unpublish package-name@* --force\n * eg: npm unpublish package-name --force\n *\n * npm http fetch GET 200 http://localhost:4873/custom-name?write=true 1680ms\n * npm http fetch DELETE 201 http://localhost:4873/custom-name/-/test1-1.0.3.tgz/-rev/16-e11c8db282b2d992 19ms\n *\n * - Remove a specific version\n * eg: npm unpublish package-name@1.0.0 --force\n *\n * Get fresh manifest\n * npm http fetch GET 200 http://localhost:4873/custom-name?write=true 1680ms\n * Update manifest without the version to be unpublished\n * npm http fetch PUT 201 http://localhost:4873/custom-name/-rev/14-5d500cfce92f90fd 956606ms\n * Get fresh manifest (revision should be different)\n * npm http fetch GET 200 http://localhost:4873/custom-name?write=true 1601ms\n * Remove the tarball\n * npm http fetch DELETE 201 http://localhost:4873/custom-name/-/test1-1.0.3.tgz/-rev/16-e11c8db282b2d992 19ms\n *\n * 3. Star a package\n *\n * Permissions: staring a package depends of the publish and unpublish permissions, there is no\n * specific flag for star or unstar.\n * The URL for star is similar to the unpublish (change package format)\n *\n * npm has no endpoint for staring a package, rather mutate the metadata and acts as, the difference\n * is the users property which is part of the payload and the body only includes\n *\n * {\n \"_id\": pkgName,\n \"_rev\": \"3-b0cdaefc9bdb77c8\",\n \"users\": {\n [username]: boolean value (true, false)\n }\n }\n *\n * 4. Change owners of a package\n *\n * Similar to staring a package, changing owners (maintainers) of a package uses the publish\n * endpoint.\n *\n * The body includes a list of the new owners with the following format\n *\n * {\n \"_id\": pkgName,\n \"_rev\": \"4-b0cdaefc9bdb77c8\",\n \"maintainers\": [\n { \"name\": \"first owner\", \"email\": \"me@verdaccio.org\" },\n { \"name\": \"second owner\", \"email\": \"you@verdaccio.org\" },\n ...\n ]\n }\n *\n */\nexport default function publish(\n router: Router,\n auth: Auth,\n storage: Storage,\n logger: Logger\n): void {\n const can = allow(auth, {\n beforeAll: (a, b) => logger.trace(a, b),\n afterAll: (a, b) => logger.trace(a, b),\n });\n router.put(\n PUBLISH_API_ENDPOINTS.add_package,\n can('publish'),\n media(HEADERS.JSON),\n expectJson,\n publishPackage(storage, logger, 'publish one version')\n );\n\n router.put(\n PUBLISH_API_ENDPOINTS.publish_package,\n can('unpublish'),\n media(HEADERS.JSON),\n expectJson,\n publishPackage(storage, logger, 'publish with revision')\n );\n\n /**\n * Un-publishing an entire package.\n *\n * This scenario happens when any of these scenarios happens:\n * - the first call detect there is only one version remaining\n * - no version is specified in the unpublish call\n * - all versions are removed npm unpublish package@*\n * - there is no versions on the metadata\n\n * then the client decides to DELETE the resource\n * Example:\n * Get fresh manifest (write=true is a flag to get the latest revision)\n * npm http fetch GET 304 http://localhost:4873/package-name?write=true 1076ms (from cache)\n * Send request to delete the package, this includes the revision number that must match\n * and the package name, it will delete the entire package and all tarballs (or tarball depends the scenario)\n * npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms\n */\n router.delete(\n PUBLISH_API_ENDPOINTS.publish_package,\n can('unpublish'),\n async function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) {\n const packageName = req.params.package;\n const rev = req.params.revision;\n const username = req?.remote_user?.name;\n\n logger.debug({ packageName }, `unpublishing @{packageName}`);\n try {\n await storage.removePackage(packageName, rev, username);\n debug('package %s unpublished', packageName);\n res.status(HTTP_STATUS.CREATED);\n return next({ ok: API_MESSAGE.PKG_REMOVED });\n } catch (err) {\n return next(err);\n }\n }\n );\n\n /*\n Remove a tarball, this happens when npm unpublish a package unique version.\n npm http fetch DELETE 201 http://localhost:4873/package-name/-rev/18-d8ebe3020bd4ac9c 22ms\n */\n router.delete(\n PUBLISH_API_ENDPOINTS.remove_tarball,\n can('unpublish'),\n async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n const packageName = req.params.package;\n const { filename, revision } = req.params;\n const username = req?.remote_user?.name;\n\n logger.debug(\n { packageName, filename, revision },\n `removing a tarball for @{packageName}-@{tarballName}-@{revision}`\n );\n try {\n await storage.removeTarball(packageName, filename, revision, username);\n res.status(HTTP_STATUS.CREATED);\n\n logger.debug(\n { packageName, filename, revision },\n `success remove tarball for @{packageName}-@{tarballName}-@{revision}`\n );\n return next({ ok: API_MESSAGE.TARBALL_REMOVED });\n } catch (err) {\n return next(err);\n }\n }\n );\n}\n\nexport function publishPackage(storage: Storage, logger: Logger, origin: string): any {\n return async function (\n req: $RequestExtend,\n res: $ResponseExtend,\n next: $NextFunctionVer\n ): Promise<void> {\n debug(origin);\n const ac = new AbortController();\n const packageName = req.params.package;\n const { revision } = req.params;\n debug('publishing package %s', packageName);\n debug('revision %s', revision);\n if (debug.enabled) {\n debug('body %o', req.body);\n }\n const metadata = req.body;\n\n logger.debug({ packageName }, `publishing package @{packageName}`);\n\n const requestOptions = getRequestOptions(req);\n\n try {\n const message = await storage.updateManifest(metadata, {\n name: packageName,\n revision,\n signal: ac.signal,\n requestOptions,\n uplinksLook: false,\n });\n debug('package %s published', packageName);\n\n res.status(HTTP_STATUS.CREATED);\n\n return next({\n success: true,\n ok: message,\n });\n } catch (err: any) {\n // TODO: review if we need the abort controller here\n next(err);\n }\n };\n}\n"],"mappings":"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wC,kBAAA,CAAAvB,CAAA,EAAAnB,CAAA,EAAAI,CAAA,EAAA6C,KAAA,EAAAC,MAAA,WAAAhD,CAAA,KAAA+C,KAAA;AAWA;;AAMA,IAAME,KAAK,GAAG,IAAAC,iBAAU,EAAC,uBAAuB,CAAC;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,OAAOA,CAC7BC,MAAc,EACdC,IAAU,EACVC,OAAgB,EAChBC,MAAc,EACR;EACN,IAAMC,GAAG,GAAG,IAAAC,iBAAK,EAACJ,IAAI,EAAE;IACtBK,SAAS,EAAE,SAAXA,SAASA,CAAGzC,CAAC,EAAE0C,CAAC;MAAA,OAAKJ,MAAM,CAACK,KAAK,CAAC3C,CAAC,EAAE0C,CAAC,CAAC;IAAA;IACvCE,QAAQ,EAAE,SAAVA,QAAQA,CAAG5C,CAAC,EAAE0C,CAAC;MAAA,OAAKJ,MAAM,CAACK,KAAK,CAAC3C,CAAC,EAAE0C,CAAC,CAAC;IAAA;EACxC,CAAC,CAAC;EACFP,MAAM,CAACU,GAAG,CACRC,iCAAqB,CAACC,WAAW,EACjCR,GAAG,CAAC,SAAS,CAAC,EACd,IAAAS,iBAAK,EAACC,aAAO,CAACC,IAAI,CAAC,EACnBC,sBAAU,EACVC,cAAc,CAACf,OAAO,EAAEC,MAAM,EAAE,qBAAqB,CACvD,CAAC;EAEDH,MAAM,CAACU,GAAG,CACRC,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","ignoreList":[]}
package/build/search.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Logger } from '@verdaccio/types';
1
+ import type { Logger } from '@verdaccio/types';
2
2
  export default function (route: any, logger: Logger): void;
package/build/search.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = _default;
6
+ exports["default"] = _default;
7
7
  var _core = require("@verdaccio/core");
8
8
  var _middleware = require("@verdaccio/middleware");
9
9
  function _default(route, logger) {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","names":["_core","require","_middleware","_default","route","logger","get","SEARCH_API_ENDPOINTS","deprecated_search","_req","res","warn","status","HTTP_STATUS","NOT_FOUND","json","error"],"sources":["../src/search.ts"],"sourcesContent":["import { HTTP_STATUS } from '@verdaccio/core';\nimport { SEARCH_API_ENDPOINTS } from '@verdaccio/middleware';\nimport { Logger } from '@verdaccio/types';\n\nexport default function (route, logger: Logger): void {\n // TODO: next major version, remove this\n route.get(SEARCH_API_ENDPOINTS.deprecated_search, function (_req, res) {\n logger.warn('search endpoint has been removed, please use search v1');\n res.status(HTTP_STATUS.NOT_FOUND);\n res.json({ error: 'not found, endpoint was removed' });\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGe,SAAAE,SAAUC,KAAK,EAAEC,MAAc,EAAQ;EACpD;EACAD,KAAK,CAACE,GAAG,CAACC,gCAAoB,CAACC,iBAAiB,EAAE,UAAUC,IAAI,EAAEC,GAAG,EAAE;IACrEL,MAAM,CAACM,IAAI,CAAC,wDAAwD,CAAC;IACrED,GAAG,CAACE,MAAM,CAACC,iBAAW,CAACC,SAAS,CAAC;IACjCJ,GAAG,CAACK,IAAI,CAAC;MAAEC,KAAK,EAAE;IAAkC,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"search.js","names":["_core","require","_middleware","_default","route","logger","get","SEARCH_API_ENDPOINTS","deprecated_search","_req","res","warn","status","HTTP_STATUS","NOT_FOUND","json","error"],"sources":["../src/search.ts"],"sourcesContent":["import { HTTP_STATUS } from '@verdaccio/core';\nimport { SEARCH_API_ENDPOINTS } from '@verdaccio/middleware';\nimport type { Logger } from '@verdaccio/types';\n\nexport default function (route, logger: Logger): void {\n // TODO: next major version, remove this\n route.get(SEARCH_API_ENDPOINTS.deprecated_search, function (_req, res) {\n logger.warn('search endpoint has been removed, please use search v1');\n res.status(HTTP_STATUS.NOT_FOUND);\n res.json({ error: 'not found, endpoint was removed' });\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGe,SAAAE,SAAUC,KAAK,EAAEC,MAAc,EAAQ;EACpD;EACAD,KAAK,CAACE,GAAG,CAACC,gCAAoB,CAACC,iBAAiB,EAAE,UAAUC,IAAI,EAAEC,GAAG,EAAE;IACrEL,MAAM,CAACM,IAAI,CAAC,wDAAwD,CAAC;IACrED,GAAG,CAACE,MAAM,CAACC,iBAAW,CAACC,SAAS,CAAC;IACjCJ,GAAG,CAACK,IAAI,CAAC;MAAEC,KAAK,EAAE;IAAkC,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ","ignoreList":[]}
package/build/stars.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { Router } from 'express';
2
- import { Storage } from '@verdaccio/store';
1
+ import type { Router } from 'express';
2
+ import type { Storage } from '@verdaccio/store';
3
3
  export default function (route: Router, storage: Storage): void;