@verdaccio/search 8.0.0-next-8.30 → 8.0.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.
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/search-utils.d.ts +1 -1
- package/build/search-utils.js +6 -5
- package/build/search-utils.js.map +1 -1
- package/build/search.d.ts +3 -3
- package/build/search.js +174 -83
- package/build/search.js.map +1 -1
- package/package.json +6 -6
package/build/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
var _exportNames = {};
|
|
7
7
|
Object.defineProperty(exports, "default", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () {
|
|
9
|
+
get: function get() {
|
|
10
10
|
return _search.Search;
|
|
11
11
|
}
|
|
12
12
|
});
|
|
@@ -18,7 +18,7 @@ Object.keys(_searchUtils).forEach(function (key) {
|
|
|
18
18
|
if (key in exports && exports[key] === _searchUtils[key]) return;
|
|
19
19
|
Object.defineProperty(exports, key, {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () {
|
|
21
|
+
get: function get() {
|
|
22
22
|
return _searchUtils[key];
|
|
23
23
|
}
|
|
24
24
|
});
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_search","require","_searchUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../src/index.ts"],"sourcesContent":["export { Search as default } from './search';\nexport * from './search-utils';\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,YAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,YAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["_search","require","_searchUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../src/index.ts"],"sourcesContent":["export { Search as default } from './search';\nexport * from './search-utils';\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,YAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,YAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,YAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/build/search-utils.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { searchUtils } from '@verdaccio/core';
|
|
1
|
+
import type { searchUtils } from '@verdaccio/core';
|
|
2
2
|
export declare function removeDuplicates(results: searchUtils.SearchPackageItem[]): searchUtils.SearchPackageItem[];
|
package/build/search-utils.js
CHANGED
|
@@ -6,13 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.removeDuplicates = removeDuplicates;
|
|
7
7
|
var _lodash = require("lodash");
|
|
8
8
|
function removeDuplicates(results) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return orderByResults.filter(pkg
|
|
12
|
-
|
|
9
|
+
var pkgNames = [];
|
|
10
|
+
var orderByResults = (0, _lodash.orderBy)(results, ['verdaccioPrivate', 'asc']);
|
|
11
|
+
return orderByResults.filter(function (pkg) {
|
|
12
|
+
var _pkg$package, _pkg$package2;
|
|
13
|
+
if (pkgNames.includes(pkg === null || pkg === void 0 || (_pkg$package = pkg["package"]) === null || _pkg$package === void 0 ? void 0 : _pkg$package.name)) {
|
|
13
14
|
return false;
|
|
14
15
|
}
|
|
15
|
-
pkgNames.push(pkg
|
|
16
|
+
pkgNames.push(pkg === null || pkg === void 0 || (_pkg$package2 = pkg["package"]) === null || _pkg$package2 === void 0 ? void 0 : _pkg$package2.name);
|
|
16
17
|
return true;
|
|
17
18
|
});
|
|
18
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-utils.js","names":["_lodash","require","removeDuplicates","results","pkgNames","orderByResults","orderBy","filter","pkg","
|
|
1
|
+
{"version":3,"file":"search-utils.js","names":["_lodash","require","removeDuplicates","results","pkgNames","orderByResults","orderBy","filter","pkg","_pkg$package","_pkg$package2","includes","name","push"],"sources":["../src/search-utils.ts"],"sourcesContent":["import { orderBy } from 'lodash';\n\nimport type { searchUtils } from '@verdaccio/core';\n\nexport function removeDuplicates(results: searchUtils.SearchPackageItem[]) {\n const pkgNames: any[] = [];\n const orderByResults = orderBy(results, ['verdaccioPrivate', 'asc']);\n return orderByResults.filter((pkg) => {\n if (pkgNames.includes(pkg?.package?.name)) {\n return false;\n }\n pkgNames.push(pkg?.package?.name);\n return true;\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAIO,SAASC,gBAAgBA,CAACC,OAAwC,EAAE;EACzE,IAAMC,QAAe,GAAG,EAAE;EAC1B,IAAMC,cAAc,GAAG,IAAAC,eAAO,EAACH,OAAO,EAAE,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;EACpE,OAAOE,cAAc,CAACE,MAAM,CAAC,UAACC,GAAG,EAAK;IAAA,IAAAC,YAAA,EAAAC,aAAA;IACpC,IAAIN,QAAQ,CAACO,QAAQ,CAACH,GAAG,aAAHA,GAAG,gBAAAC,YAAA,GAAHD,GAAG,WAAS,cAAAC,YAAA,uBAAZA,YAAA,CAAcG,IAAI,CAAC,EAAE;MACzC,OAAO,KAAK;IACd;IACAR,QAAQ,CAACS,IAAI,CAACL,GAAG,aAAHA,GAAG,gBAAAE,aAAA,GAAHF,GAAG,WAAS,cAAAE,aAAA,uBAAZA,aAAA,CAAcE,IAAI,CAAC;IACjC,OAAO,IAAI;EACb,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/build/search.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { searchUtils } from '@verdaccio/core';
|
|
2
|
-
import { ProxyInstanceList, ProxySearchParams } from '@verdaccio/proxy';
|
|
3
|
-
import { Config, Logger } from '@verdaccio/types';
|
|
1
|
+
import type { searchUtils } from '@verdaccio/core';
|
|
2
|
+
import type { ProxyInstanceList, ProxySearchParams } from '@verdaccio/proxy';
|
|
3
|
+
import type { Config, Logger } from '@verdaccio/types';
|
|
4
4
|
declare class Search {
|
|
5
5
|
readonly uplinks: ProxyInstanceList;
|
|
6
6
|
readonly logger: Logger;
|
package/build/search.js
CHANGED
|
@@ -9,95 +9,186 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
9
9
|
var _nodeStream = require("node:stream");
|
|
10
10
|
var _proxy = require("@verdaccio/proxy");
|
|
11
11
|
var _searchUtils = require("./search-utils");
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
14
|
+
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 }; })(); }
|
|
15
|
+
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); }
|
|
16
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
19
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
20
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
23
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
24
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
25
|
+
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); }
|
|
26
|
+
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); }); }; }
|
|
27
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
28
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
29
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
30
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
31
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
32
|
+
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
33
|
+
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(r) { var n = this.s["return"]; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, "throw": function _throw(r) { var n = this.s["return"]; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
34
|
+
var debug = (0, _debug["default"])('verdaccio:search');
|
|
35
|
+
var Search = exports.Search = /*#__PURE__*/function () {
|
|
36
|
+
function Search(config, logger) {
|
|
37
|
+
_classCallCheck(this, Search);
|
|
16
38
|
this.logger = logger.child({
|
|
17
39
|
module: 'proxy'
|
|
18
40
|
});
|
|
19
41
|
this.uplinks = (0, _proxy.setupUpLinks)(config, this.logger);
|
|
20
42
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Handle search on packages and proxies.
|
|
28
|
-
* Iterate all proxies configured and search in all endpoints in v2 and pipe all responses
|
|
29
|
-
* to a stream, once the proxies request has finished search in local storage for all packages
|
|
30
|
-
* (privated and cached).
|
|
31
|
-
*/
|
|
32
|
-
async search(options) {
|
|
33
|
-
const results = [];
|
|
34
|
-
const upLinkList = this.getProxyList();
|
|
35
|
-
// const transformResults = new TransFormResults({ objectMode: true });
|
|
36
|
-
const streamPassThrough = new _nodeStream.PassThrough({
|
|
37
|
-
objectMode: true
|
|
38
|
-
});
|
|
39
|
-
debug('uplinks found %s', upLinkList.length);
|
|
40
|
-
const searchUplinksStreams = upLinkList.map(uplinkName => {
|
|
41
|
-
const uplink = this.uplinks[uplinkName];
|
|
42
|
-
if (!uplink) {
|
|
43
|
-
// this line should never happens
|
|
44
|
-
this.logger.error({
|
|
45
|
-
uplinkName
|
|
46
|
-
}, 'uplink @uplinkName not found');
|
|
47
|
-
}
|
|
48
|
-
return this.consumeSearchStream(uplinkName, uplink, options, streamPassThrough);
|
|
49
|
-
});
|
|
50
|
-
try {
|
|
51
|
-
debug('searching on %s uplinks...', searchUplinksStreams?.length);
|
|
52
|
-
// only process those streams end successfully, if all request fails
|
|
53
|
-
// just include local storage results (if local fails then return 500)
|
|
54
|
-
await Promise.allSettled([...searchUplinksStreams]);
|
|
55
|
-
streamPassThrough.end();
|
|
56
|
-
for await (const chunk of streamPassThrough) {
|
|
57
|
-
if (_lodash.default.isArray(chunk)) {
|
|
58
|
-
chunk.filter(pkgItem => {
|
|
59
|
-
debug(`streaming remote pkg name ${pkgItem?.package?.name}`);
|
|
60
|
-
return true;
|
|
61
|
-
}).forEach(pkgItem => {
|
|
62
|
-
// @ts-ignore
|
|
63
|
-
return results.push({
|
|
64
|
-
...pkgItem,
|
|
65
|
-
verdaccioPkgCached: false,
|
|
66
|
-
verdaccioPrivate: false
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
debug('searching all uplinks done');
|
|
72
|
-
} catch (err) {
|
|
73
|
-
this.logger.error({
|
|
74
|
-
err: err?.message
|
|
75
|
-
}, ' error on uplinks search @{err}');
|
|
76
|
-
throw err;
|
|
43
|
+
return _createClass(Search, [{
|
|
44
|
+
key: "getProxyList",
|
|
45
|
+
value: function getProxyList() {
|
|
46
|
+
var uplinksList = Object.keys(this.uplinks);
|
|
47
|
+
return uplinksList;
|
|
77
48
|
}
|
|
78
|
-
return (0, _searchUtils.removeDuplicates)(results);
|
|
79
|
-
}
|
|
80
49
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Handle search on packages and proxies.
|
|
52
|
+
* Iterate all proxies configured and search in all endpoints in v2 and pipe all responses
|
|
53
|
+
* to a stream, once the proxies request has finished search in local storage for all packages
|
|
54
|
+
* (privated and cached).
|
|
55
|
+
*/
|
|
56
|
+
}, {
|
|
57
|
+
key: "search",
|
|
58
|
+
value: (function () {
|
|
59
|
+
var _search = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
|
|
60
|
+
var _this = this;
|
|
61
|
+
var results, upLinkList, streamPassThrough, searchUplinksStreams, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, _t, _t2;
|
|
62
|
+
return _regenerator().w(function (_context) {
|
|
63
|
+
while (1) switch (_context.p = _context.n) {
|
|
64
|
+
case 0:
|
|
65
|
+
results = [];
|
|
66
|
+
upLinkList = this.getProxyList(); // const transformResults = new TransFormResults({ objectMode: true });
|
|
67
|
+
streamPassThrough = new _nodeStream.PassThrough({
|
|
68
|
+
objectMode: true
|
|
69
|
+
});
|
|
70
|
+
debug('uplinks found %s', upLinkList.length);
|
|
71
|
+
searchUplinksStreams = upLinkList.map(function (uplinkName) {
|
|
72
|
+
var uplink = _this.uplinks[uplinkName];
|
|
73
|
+
if (!uplink) {
|
|
74
|
+
// this line should never happens
|
|
75
|
+
_this.logger.error({
|
|
76
|
+
uplinkName: uplinkName
|
|
77
|
+
}, 'uplink @uplinkName not found');
|
|
78
|
+
}
|
|
79
|
+
return _this.consumeSearchStream(uplinkName, uplink, options, streamPassThrough);
|
|
80
|
+
});
|
|
81
|
+
_context.p = 1;
|
|
82
|
+
debug('searching on %s uplinks...', searchUplinksStreams === null || searchUplinksStreams === void 0 ? void 0 : searchUplinksStreams.length);
|
|
83
|
+
// only process those streams end successfully, if all request fails
|
|
84
|
+
// just include local storage results (if local fails then return 500)
|
|
85
|
+
_context.n = 2;
|
|
86
|
+
return Promise.allSettled(_toConsumableArray(searchUplinksStreams));
|
|
87
|
+
case 2:
|
|
88
|
+
streamPassThrough.end();
|
|
89
|
+
_iteratorAbruptCompletion = false;
|
|
90
|
+
_didIteratorError = false;
|
|
91
|
+
_context.p = 3;
|
|
92
|
+
_iterator = _asyncIterator(streamPassThrough);
|
|
93
|
+
case 4:
|
|
94
|
+
_context.n = 5;
|
|
95
|
+
return _iterator.next();
|
|
96
|
+
case 5:
|
|
97
|
+
if (!(_iteratorAbruptCompletion = !(_step = _context.v).done)) {
|
|
98
|
+
_context.n = 7;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
chunk = _step.value;
|
|
102
|
+
if (_lodash["default"].isArray(chunk)) {
|
|
103
|
+
chunk.filter(function (pkgItem) {
|
|
104
|
+
var _pkgItem$package;
|
|
105
|
+
debug("streaming remote pkg name ".concat(pkgItem === null || pkgItem === void 0 || (_pkgItem$package = pkgItem["package"]) === null || _pkgItem$package === void 0 ? void 0 : _pkgItem$package.name));
|
|
106
|
+
return true;
|
|
107
|
+
}).forEach(function (pkgItem) {
|
|
108
|
+
// @ts-ignore
|
|
109
|
+
return results.push(_objectSpread(_objectSpread({}, pkgItem), {}, {
|
|
110
|
+
verdaccioPkgCached: false,
|
|
111
|
+
verdaccioPrivate: false
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
case 6:
|
|
116
|
+
_iteratorAbruptCompletion = false;
|
|
117
|
+
_context.n = 4;
|
|
118
|
+
break;
|
|
119
|
+
case 7:
|
|
120
|
+
_context.n = 9;
|
|
121
|
+
break;
|
|
122
|
+
case 8:
|
|
123
|
+
_context.p = 8;
|
|
124
|
+
_t = _context.v;
|
|
125
|
+
_didIteratorError = true;
|
|
126
|
+
_iteratorError = _t;
|
|
127
|
+
case 9:
|
|
128
|
+
_context.p = 9;
|
|
129
|
+
_context.p = 10;
|
|
130
|
+
if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) {
|
|
131
|
+
_context.n = 11;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
_context.n = 11;
|
|
135
|
+
return _iterator["return"]();
|
|
136
|
+
case 11:
|
|
137
|
+
_context.p = 11;
|
|
138
|
+
if (!_didIteratorError) {
|
|
139
|
+
_context.n = 12;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
throw _iteratorError;
|
|
143
|
+
case 12:
|
|
144
|
+
return _context.f(11);
|
|
145
|
+
case 13:
|
|
146
|
+
return _context.f(9);
|
|
147
|
+
case 14:
|
|
148
|
+
debug('searching all uplinks done');
|
|
149
|
+
_context.n = 16;
|
|
150
|
+
break;
|
|
151
|
+
case 15:
|
|
152
|
+
_context.p = 15;
|
|
153
|
+
_t2 = _context.v;
|
|
154
|
+
this.logger.error({
|
|
155
|
+
err: _t2 === null || _t2 === void 0 ? void 0 : _t2.message
|
|
156
|
+
}, ' error on uplinks search @{err}');
|
|
157
|
+
throw _t2;
|
|
158
|
+
case 16:
|
|
159
|
+
return _context.a(2, (0, _searchUtils.removeDuplicates)(results));
|
|
160
|
+
}
|
|
161
|
+
}, _callee, this, [[10,, 11, 13], [3, 8, 9, 14], [1, 15]]);
|
|
162
|
+
}));
|
|
163
|
+
function search(_x) {
|
|
164
|
+
return _search.apply(this, arguments);
|
|
165
|
+
}
|
|
166
|
+
return search;
|
|
167
|
+
}()
|
|
168
|
+
/**
|
|
169
|
+
* Consume the upstream and pipe it to a transformable stream.
|
|
170
|
+
*/
|
|
171
|
+
)
|
|
172
|
+
}, {
|
|
173
|
+
key: "consumeSearchStream",
|
|
174
|
+
value: function consumeSearchStream(uplinkName, uplink, options, searchPassThrough) {
|
|
175
|
+
var _this2 = this;
|
|
176
|
+
return uplink.search(_objectSpread({}, options)).then(function (bodyStream) {
|
|
177
|
+
bodyStream.pipe(searchPassThrough, {
|
|
178
|
+
end: false
|
|
179
|
+
});
|
|
180
|
+
bodyStream.on('error', function (err) {
|
|
181
|
+
_this2.logger.error({
|
|
182
|
+
uplinkName: uplinkName,
|
|
183
|
+
err: err
|
|
184
|
+
}, 'search error for uplink @{uplinkName}: @{err?.message}');
|
|
185
|
+
searchPassThrough.end();
|
|
186
|
+
});
|
|
187
|
+
return new Promise(function (resolve) {
|
|
188
|
+
return bodyStream.on('end', resolve);
|
|
189
|
+
});
|
|
97
190
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
exports.Search = Search;
|
|
191
|
+
}
|
|
192
|
+
}]);
|
|
193
|
+
}();
|
|
103
194
|
//# sourceMappingURL=search.js.map
|
package/build/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","names":["_debug","_interopRequireDefault","require","_lodash","_nodeStream","_proxy","_searchUtils","e","__esModule","default","debug","buildDebug","Search","constructor","config","logger","child","module","uplinks","setupUpLinks","getProxyList","uplinksList","Object","keys","search","options","results","upLinkList","streamPassThrough","PassThrough","objectMode","length","searchUplinksStreams","map","uplinkName","uplink","error","consumeSearchStream","Promise","allSettled","end","chunk","_","isArray","filter","pkgItem","package","name","forEach","push","verdaccioPkgCached","verdaccioPrivate","err","message","removeDuplicates","searchPassThrough","then","bodyStream","pipe","on","resolve","exports"],"sources":["../src/search.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\nimport { PassThrough } from 'node:stream';\n\nimport { searchUtils } from '@verdaccio/core';\nimport { IProxy, ProxyInstanceList, ProxySearchParams, setupUpLinks } from '@verdaccio/proxy';\nimport { Config, Logger } from '@verdaccio/types';\n\nimport { removeDuplicates } from './search-utils';\n\nconst debug = buildDebug('verdaccio:search');\n\nclass Search {\n public readonly uplinks: ProxyInstanceList;\n public readonly logger: Logger;\n constructor(config: Config, logger: Logger) {\n this.logger = logger.child({ module: 'proxy' });\n this.uplinks = setupUpLinks(config, this.logger);\n }\n\n private getProxyList() {\n const uplinksList = Object.keys(this.uplinks);\n\n return uplinksList;\n }\n\n /**\n * Handle search on packages and proxies.\n * Iterate all proxies configured and search in all endpoints in v2 and pipe all responses\n * to a stream, once the proxies request has finished search in local storage for all packages\n * (privated and cached).\n */\n public async search(options: ProxySearchParams): Promise<searchUtils.SearchPackageItem[]> {\n const results: searchUtils.SearchPackageItem[] = [];\n const upLinkList = this.getProxyList();\n // const transformResults = new TransFormResults({ objectMode: true });\n const streamPassThrough = new PassThrough({ objectMode: true });\n debug('uplinks found %s', upLinkList.length);\n const searchUplinksStreams = upLinkList.map((uplinkName: string) => {\n const uplink = this.uplinks[uplinkName];\n if (!uplink) {\n // this line should never happens\n this.logger.error({ uplinkName }, 'uplink @uplinkName not found');\n }\n return this.consumeSearchStream(uplinkName, uplink, options, streamPassThrough);\n });\n\n try {\n debug('searching on %s uplinks...', searchUplinksStreams?.length);\n // only process those streams end successfully, if all request fails\n // just include local storage results (if local fails then return 500)\n await Promise.allSettled([...searchUplinksStreams]);\n streamPassThrough.end();\n\n for await (const chunk of streamPassThrough) {\n if (_.isArray(chunk)) {\n (chunk as searchUtils.SearchItem[])\n .filter((pkgItem) => {\n debug(`streaming remote pkg name ${pkgItem?.package?.name}`);\n return true;\n })\n .forEach((pkgItem) => {\n // @ts-ignore\n return results.push({\n ...pkgItem,\n verdaccioPkgCached: false,\n verdaccioPrivate: false,\n });\n });\n }\n }\n debug('searching all uplinks done');\n } catch (err: any) {\n this.logger.error({ err: err?.message }, ' error on uplinks search @{err}');\n throw err;\n }\n\n return removeDuplicates(results);\n }\n\n /**\n * Consume the upstream and pipe it to a transformable stream.\n */\n private consumeSearchStream(\n uplinkName: string,\n uplink: IProxy,\n options: ProxySearchParams,\n searchPassThrough: PassThrough\n ): Promise<any> {\n return uplink.search({ ...options }).then((bodyStream) => {\n bodyStream.pipe(searchPassThrough, { end: false });\n bodyStream.on('error', (err: any): void => {\n this.logger.error(\n { uplinkName, err: err },\n 'search error for uplink @{uplinkName}: @{err?.message}'\n );\n searchPassThrough.end();\n });\n return new Promise((resolve) => bodyStream.on('end', resolve));\n });\n }\n}\n\nexport { Search };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"search.js","names":["_debug","_interopRequireDefault","require","_lodash","_nodeStream","_proxy","_searchUtils","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_regenerator","t","r","n","toStringTag","i","c","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","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","name","Array","from","test","isArray","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","_classCallCheck","_defineProperties","key","_createClass","_toPrimitive","toPrimitive","String","Number","_asyncIterator","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","reject","s","next","_return","debug","buildDebug","Search","exports","config","logger","child","module","uplinks","setupUpLinks","getProxyList","uplinksList","_search","_callee","options","_this","results","upLinkList","streamPassThrough","searchUplinksStreams","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","_t","_t2","_context","PassThrough","objectMode","map","uplinkName","uplink","error","consumeSearchStream","allSettled","end","_","pkgItem","_pkgItem$package","concat","verdaccioPkgCached","verdaccioPrivate","err","message","removeDuplicates","search","_x","searchPassThrough","_this2","bodyStream","pipe","on"],"sources":["../src/search.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\nimport { PassThrough } from 'node:stream';\n\nimport type { searchUtils } from '@verdaccio/core';\nimport type { IProxy, ProxyInstanceList, ProxySearchParams } from '@verdaccio/proxy';\nimport { setupUpLinks } from '@verdaccio/proxy';\nimport type { Config, Logger } from '@verdaccio/types';\n\nimport { removeDuplicates } from './search-utils';\n\nconst debug = buildDebug('verdaccio:search');\n\nclass Search {\n public readonly uplinks: ProxyInstanceList;\n public readonly logger: Logger;\n constructor(config: Config, logger: Logger) {\n this.logger = logger.child({ module: 'proxy' });\n this.uplinks = setupUpLinks(config, this.logger);\n }\n\n private getProxyList() {\n const uplinksList = Object.keys(this.uplinks);\n\n return uplinksList;\n }\n\n /**\n * Handle search on packages and proxies.\n * Iterate all proxies configured and search in all endpoints in v2 and pipe all responses\n * to a stream, once the proxies request has finished search in local storage for all packages\n * (privated and cached).\n */\n public async search(options: ProxySearchParams): Promise<searchUtils.SearchPackageItem[]> {\n const results: searchUtils.SearchPackageItem[] = [];\n const upLinkList = this.getProxyList();\n // const transformResults = new TransFormResults({ objectMode: true });\n const streamPassThrough = new PassThrough({ objectMode: true });\n debug('uplinks found %s', upLinkList.length);\n const searchUplinksStreams = upLinkList.map((uplinkName: string) => {\n const uplink = this.uplinks[uplinkName];\n if (!uplink) {\n // this line should never happens\n this.logger.error({ uplinkName }, 'uplink @uplinkName not found');\n }\n return this.consumeSearchStream(uplinkName, uplink, options, streamPassThrough);\n });\n\n try {\n debug('searching on %s uplinks...', searchUplinksStreams?.length);\n // only process those streams end successfully, if all request fails\n // just include local storage results (if local fails then return 500)\n await Promise.allSettled([...searchUplinksStreams]);\n streamPassThrough.end();\n\n for await (const chunk of streamPassThrough) {\n if (_.isArray(chunk)) {\n (chunk as searchUtils.SearchItem[])\n .filter((pkgItem) => {\n debug(`streaming remote pkg name ${pkgItem?.package?.name}`);\n return true;\n })\n .forEach((pkgItem) => {\n // @ts-ignore\n return results.push({\n ...pkgItem,\n verdaccioPkgCached: false,\n verdaccioPrivate: false,\n });\n });\n }\n }\n debug('searching all uplinks done');\n } catch (err: any) {\n this.logger.error({ err: err?.message }, ' error on uplinks search @{err}');\n throw err;\n }\n\n return removeDuplicates(results);\n }\n\n /**\n * Consume the upstream and pipe it to a transformable stream.\n */\n private consumeSearchStream(\n uplinkName: string,\n uplink: IProxy,\n options: ProxySearchParams,\n searchPassThrough: PassThrough\n ): Promise<any> {\n return uplink.search({ ...options }).then((bodyStream) => {\n bodyStream.pipe(searchPassThrough, { end: false });\n bodyStream.on('error', (err: any): void => {\n this.logger.error(\n { uplinkName, err: err },\n 'search error for uplink @{uplinkName}: @{err?.message}'\n );\n searchPassThrough.end();\n });\n return new Promise((resolve) => bodyStream.on('end', resolve));\n });\n }\n}\n\nexport { Search };\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/search",
|
|
3
|
-
"version": "8.0.0-next-8.
|
|
3
|
+
"version": "8.0.0-next-8.32",
|
|
4
4
|
"description": "Verdaccio Search Proxy",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
"node": ">=18"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@verdaccio/config": "8.0.0-next-8.
|
|
37
|
-
"@verdaccio/core": "8.0.0-next-8.
|
|
38
|
-
"@verdaccio/logger": "8.0.0-next-8.
|
|
39
|
-
"@verdaccio/proxy": "8.0.0-next-8.
|
|
36
|
+
"@verdaccio/config": "8.0.0-next-8.32",
|
|
37
|
+
"@verdaccio/core": "8.0.0-next-8.32",
|
|
38
|
+
"@verdaccio/logger": "8.0.0-next-8.32",
|
|
39
|
+
"@verdaccio/proxy": "8.0.0-next-8.32",
|
|
40
40
|
"debug": "4.4.3",
|
|
41
41
|
"lodash": "4.17.23"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@verdaccio/types": "13.0.0-next-8.
|
|
44
|
+
"@verdaccio/types": "13.0.0-next-8.11",
|
|
45
45
|
"nock": "13.5.6",
|
|
46
46
|
"vitest": "3.2.4"
|
|
47
47
|
},
|