UNPKG

@dashkite/tempo

Version:

Mono/polyrepo project management

283 lines (282 loc) 39.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default" //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS90ZW1wby9zcmMvbWV0YXJlcG8uY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsR0FBQSxFQUFBLFFBQUEsRUFBQSxJQUFBLEVBQUE7O0FBQUEsT0FBTyxFQUFQLE1BQUE7O0FBQ0EsT0FBTyxJQUFQLE1BQUE7O0FBQ0EsT0FBTyxNQUFQLE1BQUE7O0FBQ0EsT0FBQTtFQUFTLE9BQVQ7Q0FBQSxNQUFBOztBQUNBLE9BQU8sR0FBUCxNQUFBOztBQUVBLE9BQUE7RUFBUyxJQUFUO0VBQWUsS0FBZjtFQUFzQixTQUF0QjtFQUNFLE1BREY7RUFDVSxPQURWO0VBQ21CLE1BRG5CO0VBQzJCLEdBRDNCO0NBQUEsTUFBQTs7QUFFQSxPQUFPLFFBQVAsTUFBQTs7QUFFQSxRQUFBLEdBQVcsUUFBQSxDQUFFLE1BQUYsRUFBVSxJQUFWLENBQUE7U0FBb0IsSUFBSTtBQUF4QixFQVZYOzs7QUFhQSxJQUFBLEdBQU8sUUFBQSxDQUFFLEtBQUYsQ0FBQTtTQUFhLENBQUUsR0FBQSxLQUFGLENBQVksQ0FBQyxJQUFiLENBQUE7QUFBYjs7QUFFUCxHQUFBLEdBRUU7RUFBQSxJQUFBLEVBQU0sUUFBQSxDQUFFLE1BQUYsQ0FBQTtXQUNKLFFBQUEsQ0FBUyxDQUFULEVBQVksT0FBQSxDQUFRO01BQUEsSUFBQSxFQUFNLE9BQU47TUFBZSxFQUFBLEVBQUk7SUFBbkIsQ0FBUixFQUNWLElBQUksVUFBSixDQUFrQixDQUFBLFFBQUEsQ0FBQSxDQUFBO2FBQ2hCLE1BQ0UsQ0FBQyxVQURILENBQ2MsS0FEZCxDQUVFLENBQUMsTUFGSCxDQUVVLElBQUksQ0FBQyxTQUFMLENBQWUsTUFBZixDQUZWLENBR0UsQ0FBQyxNQUhILENBQUEsQ0FJRSxDQUFDO0lBTGEsQ0FBQSxHQUFsQixDQURVLENBQVo7RUFESSxDQUFOO0VBU0EsSUFBQSxFQUFNLFFBQUEsQ0FBQyxDQUFFLE1BQUYsRUFBVSxPQUFW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Q0FBQSxNQUFNLEtBQUssQ0FBQyxJQUFOLENBQVcsQ0FBRSxLQUFGLEVBQVMsT0FBVCxFQUFrQixPQUFsQixDQUFYLENBQU47V0FDUixLQUFLLENBQUMsR0FBTixDQUFVLEtBQVYsRUFBaUIsSUFBakI7RUFGRyxDQTdHTDtFQWlIQSxLQUFBLEVBQU8sTUFBQSxRQUFBLENBQUUsSUFBRixFQUFRLENBQUUsS0FBRixFQUFTLE9BQVQsRUFBa0IsT0FBbEIsQ0FBUixDQUFBO0lBQ0wsS0FBQSxHQUFRLENBQUEsTUFBTSxLQUFLLENBQUMsSUFBTixDQUFXLENBQUUsS0FBRixFQUFTLE9BQVQsRUFBa0IsT0FBbEIsQ0FBWCxDQUFOO1dBQ1IsS0FBSyxDQUFDLEtBQU4sQ0FBWSxLQUFaLEVBQW1CLElBQW5CO0VBRks7QUFqSFA7O0FBcUhGLE9BQUEsUUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGUyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiXG5pbXBvcnQgUGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCBDcnlwdG8gZnJvbSBcIm5vZGU6Y3J5cHRvXCJcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tIFwiQGRhc2hraXRlL2Jha2VcIlxuaW1wb3J0IGxvZyBmcm9tIFwiQGRhc2hraXRlL2thaWtvXCJcblxuaW1wb3J0IHsgUmVwbywgUmVwb3MsIEdpdElnbm9yZSwgXG4gIFNjcmlwdCwgU2NyaXB0cywgTG9nZ2VyLCBGU1ggfSBmcm9tIFwiLi9oZWxwZXJzXCJcbmltcG9ydCBQcm9ncmVzcyBmcm9tIFwiLi9oZWxwZXJzL3Byb2dyZXNzXCJcblxudHJ1bmNhdGUgPSAoIGxlbmd0aCwgdGV4dCApIC0+IHRleHRbIDAuLi5sZW5ndGggXVxuXG4jIG5vbi1kZXN0cnVjdGl2ZSBzb3J0XG5zb3J0ID0gKCBhcnJheSApIC0+IFsgYXJyYXkuLi4gXS5zb3J0KClcblxuS2V5ID1cblxuICBoYXNoOiAoIHZlY3RvciApIC0+XG4gICAgdHJ1bmNhdGUgOCwgY29udmVydCBmcm9tOiBcImJ5dGVzXCIsIHRvOiBcImJhc2UzNlwiLFxuICAgICAgbmV3IFVpbnQ4QXJyYXkgZG8gLT5cbiAgICAgICAgQ3J5cHRvXG4gICAgICAgICAgLmNyZWF0ZUhhc2ggXCJtZDVcIlxuICAgICAgICAgIC51cGRhdGUgSlNPTi5zdHJpbmdpZnkgdmVjdG9yXG4gICAgICAgICAgLmRpZ2VzdCgpXG4gICAgICAgICAgLmJ1ZmZlclxuXG4gIG1ha2U6ICh7IHNjcmlwdCwgY29tbWFuZCwgYXJncywgdGFncywgaW5jbHVkZSwgZXhjbHVkZSB9KSAtPlxuICAgIHRhZ3MgPz0gW11cbiAgICBpbmNsdWRlID89IFtdXG4gICAgZXhjbHVkZSA/PSBbXVxuICAgIHZlY3RvciA9IFtdXG4gICAgaWYgc2NyaXB0P1xuICAgICAgdmVjdG9yLnB1c2ggXCJzY3JpcHRcIlxuICAgICAgdmVjdG9yLnB1c2ggc2NyaXB0XG4gICAgZWxzZVxuICAgICAgdmVjdG9yLnB1c2ggXCJjb21tYW5kXCJcbiAgICAgIHZlY3Rvci5wdXNoIGNvbW1hbmRcblxuICAgIHZlY3Rvci5wdXNoIGFyZ3NcbiAgICB2ZWN0b3IucHVzaCBzb3J0IHRhZ3NcbiAgICB2ZWN0b3IucHVzaCBzb3J0IGluY2x1ZGVcbiAgICB2ZWN0b3IucHVzaCBzb3J0IGV4Y2x1ZGVcbiAgICBLZXkuaGFzaCB2ZWN0b3JcblxuTWV0YXJlcG8gPVxuXG4gIFBhdGhzOlxuXG4gICAgcm9vdDogXCIudGVtcG9cIlxuXG4gICAgcmVwb3M6IFBhdGguam9pbiBcIi50ZW1wb1wiLCBcInJlcG9zXCJcblxuICBpbml0aWFsaXplOiAtPlxuICAgIGF3YWl0IEZTLm1rZGlyIE1ldGFyZXBvLlBhdGhzLnJlcG9zLCByZWN1cnNpdmU6IHRydWVcbiAgICBhd2FpdCBkbyBMb2dnZXIuaW5pdGlhbGl6ZVxuICAgIGF3YWl0IGRvIFJlcG9zLmluaXRpYWxpemVcbiAgICBhd2FpdCBkbyBTY3JpcHRzLmluaXRpYWxpemVcbiAgICBhd2FpdCBHaXRJZ25vcmUuYWRkIE1ldGFyZXBvLlBhdGhzLnJlcG9zXG4gICAgYXdhaXQgR2l0SWdub3JlLmFkZCBMb2dnZXIucGF0aFxuXG4gIHJlc29sdmU6ICggbmFtZSApIC0+XG4gICAgUGF0aC5qb2luIE1ldGFyZXBvLlBhdGhzLnJlcG9zLCBuYW1lXG5cbiAgZ2l0OiAoeyBvcmdhbml6YXRpb24sIG5hbWUgfSkgLT5cbiAgICBcImdpdEBnaXRodWIuY29tOiN7IG9yZ2FuaXphdGlvbiB9LyN7IG5hbWUgfS5naXRcIlxuXG4gIGFkZDogKCByZXBvICkgLT5cbiAgICB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9ID0gUmVwby5wYXJzZSByZXBvXG4gICAgdHJ5XG4gICAgICBhd2FpdCBSZXBvcy5hZGQgeyBvcmdhbml6YXRpb24sIG5hbWUgfVxuICAgICAgYXdhaXQgTWV0YXJlcG8uc3luYygpXG4gICAgY2F0Y2ggZXJyb3JcbiAgICAgIGxvZy5lcnJvciBlcnJvclxuICAgICAgdHJ5XG4gICAgICAgIGF3YWl0IE1ldGFyZXBvLnJlbW92ZSByZXBvXG5cbiAgcmVtb3ZlOiAoIHJlcG8gKSAtPlxuICAgIHRyeVxuICAgICAgeyBvcmdhbml6YXRpb24sIG5hbWUgfSA9IFJlcG8ucGFyc2UgcmVwb1xuICAgICAgUmVwb3MucmVtb3ZlIHsgb3JnYW5pemF0aW9uLCBuYW1lIH1cbiAgICAgIGF3YWl0IEZTLnJtICggTWV0YXJlcG8ucmVzb2x2ZSBuYW1lICksIHJlY3Vyc2l2ZTogdHJ1ZVxuICAgICAgYXdhaXQgRlMudW5saW5rIG5hbWVcbiAgICBjYXRjaCBlcnJvclxuICAgICAgbG9nLmVycm9yIGVycm9yXG4gIFxuICBjbG9uZTogKCBtZXRhcmVwbywgeyBicmFuY2ggfSkgLT5cbiAgICB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9ID0gUmVwby5wYXJzZSBtZXRhcmVwb1xuICAgIGdpdCA9IE1ldGFyZXBvLmdpdCB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9XG4gICAgYXdhaXQgU2NyaXB0LnJ1biBcImdpdCBjbG9uZSAjeyBnaXQgfVwiXG4gICAgY3dkID0gcHJvY2Vzcy5jd2QoKVxuICAgIHByb2Nlc3MuY2hkaXIgbmFtZVxuICAgIGlmIGJyYW5jaD9cbiAgICAgIGF3YWl0IFNjcmlwdC5ydW4gXCJnaXQgc3dpdGNoICN7IGJyYW5jaCB9XCJcbiAgICBhd2FpdCBNZXRhcmVwby5zeW5jKClcbiAgICBwcm9jZXNzLmNoZGlyIGN3ZFxuXG4gIHN5bmM6IC0+XG4gICAgYXdhaXQgU2NyaXB0LnJ1biBcImdpdCBwdWxsXCJcbiAgICByZXBvcyA9IGF3YWl0IFJlcG9zLmxvYWQoKVxuICAgIHByb2dyZXNzID0gUHJvZ3Jlc3MubWFrZSBcbiAgICAgIHRpdGxlOiBcIkNsb25pbmcgUmVwb3NcIlxuICAgICAgY291bnQ6IHJlcG9zLmxlbmd0aFxuICAgIGRvIHByb2dyZXNzLnN0YXJ0XG4gICAgZm9yIHsgb3JnYW5pemF0aW9uLCBuYW1lIH0gaW4gcmVwb3NcbiAgICAgIHVubGVzcyBhd2FpdCBGU1guaXNEaXJlY3RvcnkgTWV0YXJlcG8ucmVzb2x2ZSBuYW1lXG4gICAgICAgIGdpdCA9IE1ldGFyZXBvLmdpdCB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9XG4gICAgICAgIHBhdGggPSBNZXRhcmVwby5yZXNvbHZlIG5hbWVcbiAgICAgICAgdHJ5XG4gICAgICAgICAgYXdhaXQgU2NyaXB0LnJ1biBcImdpdCBjbG9uZSAjeyBnaXQgfSAjeyBwYXRoIH1cIlxuICAgICAgICAgIGF3YWl0IFNjcmlwdC5ydW4gXCJsbiAtc2YgI3sgcGF0aCB9XCJcbiAgICAgICAgY2F0Y2ggZXJyb3JcbiAgICAgICAgICBsb2cuZXJyb3IgZXJyb3JcbiAgICAgIGRvIHByb2dyZXNzLmluY3JlbWVudFxuICAgIGRvIHByb2dyZXNzLnN0b3BcbiAgICBkbyBNZXRhcmVwby5wcnVuZVxuXG4gIHBydW5lOiAtPlxuICAgIHBhdGhzID0gYXdhaXQgRlMucmVhZGRpciBNZXRhcmVwby5QYXRocy5yb290XG4gICAgcHJvZ3Jlc3MgPSBQcm9ncmVzcy5tYWtlXG4gICAgICB0aXRsZTogXCJQcnVuaW5nIFJlcG9zXCJcbiAgICAgIGNvdW50OiBwYXRocy5sZW5ndGhcbiAgICBkbyBwcm9ncmVzcy5zdGFydFxuICAgIGZvciBwYXRoIGluIHBhdGhzXG4gICAgICBpZiBhd2FpdCBGU1guaXNEaXJlY3RvcnkgcGF0aFxuICAgICAgICBuYW1lID0gUGF0aC5iYXNlbmFtZSBwYXRoXG4gICAgICAgIGlmICEoIHJlcG8gPSBhd2FpdCBSZXBvcy5nZXQgbmFtZSApP1xuICAgICAgICAgIGlmICEoIGF3YWl0IFJlcG8uY2hhbmdlZCBuYW1lIClcbiAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICBhd2FpdCBGUy5ybSBwYXRoLCByZWN1cnNpdmU6IHRydWVcbiAgICAgICAgICAgICAgYXdhaXQgRlMucm0gbmFtZVxuICAgICAgICAgICAgY2F0Y2ggZXJyb3JcbiAgICAgICAgICAgICAgbG9nLmVycm9yIGVycm9yXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbG9nLndhcm4gXCJVbmFibGUgdG8gcHJ1bmUgI3sgbmFtZSB9XG4gICAgICAgICAgICAgIGJlY2F1c2UgaXQgaGFzIGNoYW5nZXNcIlxuICAgICAgZG8gcHJvZ3Jlc3MuaW5jcmVtZW50XG4gICAgZG8gcHJvZ3Jlc3Muc3RvcFxuXG4gIGltcG9ydDogKCBwYXRoICkgLT5cbiAgICByZXBvcyA9IGF3YWl0IFplcGh5ci5yZWFkIHBhdGhcbiAgICBmb3IgcmVwbyBpbiByZXBvc1xuICAgICAgYXdhaXQgTWV0YXJlcG8uYWRkIHJlcG9cblxuICBleGVjOiAoIGNvbW1hbmQsIGFyZ3MsIHsgaW5jbHVkZSwgZXhjbHVkZSwgdGFncywgb3B0aW9ucy4uLn0pIC0+XG4gICAgcmVwb3MgPSBhd2FpdCBSZXBvcy5maW5kIHsgaW5jbHVkZSwgZXhjbHVkZSwgdGFncyB9XG4gICAga2V5ID0gS2V5Lm1ha2UgeyBjb21tYW5kLCBhcmdzLCBpbmNsdWRlLCBleGNsdWRlLCB0YWdzIH1cbiAgICBsZW5ndGg6IHJlcG9zLmxlbmd0aFxuICAgIHJlYWN0b3I6IGF3YWl0IFJlcG9zLnJ1biB7IHJlcG9zLCBjb21tYW5kLCBhcmdzLCBrZXksIG9wdGlvbnMuLi4gfVxuXG4gIHJ1bjogKCBzY3JpcHQsIGFyZ3MsIHsgaW5jbHVkZSwgZXhjbHVkZSwgdGFncywgb3B0aW9ucy4uLn0pIC0+XG4gICAgcmVwb3MgPSBhd2FpdCBSZXBvcy5maW5kIHsgc2NyaXB0LCBpbmNsdWRlLCBleGNsdWRlLCB0YWdzIH1cbiAgICBrZXkgPSBLZXkubWFrZSB7IHNjcmlwdCwgYXJncywgaW5jbHVkZSwgZXhjbHVkZSwgdGFncyB9XG4gICAgbGVuZ3RoOiByZXBvcy5sZW5ndGhcbiAgICByZWFjdG9yOiBhd2FpdCBSZXBvcy5ydW4geyByZXBvcywgc2NyaXB0LCBhcmdzLCBrZXksIG9wdGlvbnMuLi4gfVxuXG4gIHRhZzogKCB0YWdzLCB7IHJlcG9zLCBpbmNsdWRlLCBleGNsdWRlIH0pIC0+XG4gICAgcmVwb3MgPSBhd2FpdCBSZXBvcy5maW5kIHsgcmVwb3MsIGluY2x1ZGUsIGV4Y2x1ZGUgfVxuICAgIFJlcG9zLnRhZyByZXBvcywgdGFnc1xuICAgICAgXG4gIHVudGFnOiAoIHRhZ3MsIHsgcmVwb3MsIGluY2x1ZGUsIGV4Y2x1ZGUgfSkgLT5cbiAgICByZXBvcyA9IGF3YWl0IFJlcG9zLmZpbmQgeyByZXBvcywgaW5jbHVkZSwgZXhjbHVkZSB9XG4gICAgUmVwb3MudW50YWcgcmVwb3MsIHRhZ3NcbiAgICAgIFxuZXhwb3J0IGRlZmF1bHQgTWV0YXJlcG8iXX0= //# sourceURL=/@dashkite/tempo/src/metarepo.coffee , { enumerable: true, get: function() { return _default; } }); const _promises = /*#__PURE__*/ _interop_require_default(require("node:fs/promises")); const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path")); const _nodecrypto = /*#__PURE__*/ _interop_require_default(require("node:crypto")); const _bake = require("@dashkite/bake"); const _kaiko = /*#__PURE__*/ _interop_require_default(require("@dashkite/kaiko")); const _helpers = require("./helpers"); const _progress = /*#__PURE__*/ _interop_require_default(require("./helpers/progress")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Key, Metarepo, sort, truncate; truncate = function(length, text) { return text.slice(0, length); }; // non-destructive sort sort = function(array) { return [ ...array ].sort(); }; Key = { hash: function(vector) { return truncate(8, (0, _bake.convert)({ from: "bytes", to: "base36" }, new Uint8Array(function() { return _nodecrypto.default.createHash("md5").update(JSON.stringify(vector)).digest().buffer; }()))); }, make: function({ script, command, args, tags, include, exclude }) { var vector; if (tags == null) { tags = []; } if (include == null) { include = []; } if (exclude == null) { exclude = []; } vector = []; if (script != null) { vector.push("script"); vector.push(script); } else { vector.push("command"); vector.push(command); } vector.push(args); vector.push(sort(tags)); vector.push(sort(include)); vector.push(sort(exclude)); return Key.hash(vector); } }; Metarepo = { Paths: { root: ".tempo", repos: _nodepath.default.join(".tempo", "repos") }, initialize: async function() { await _promises.default.mkdir(Metarepo.Paths.repos, { recursive: true }); await _helpers.Logger.initialize(); await _helpers.Repos.initialize(); await _helpers.Scripts.initialize(); await _helpers.GitIgnore.add(Metarepo.Paths.repos); return await _helpers.GitIgnore.add(_helpers.Logger.path); }, resolve: function(name) { return _nodepath.default.join(Metarepo.Paths.repos, name); }, git: function({ organization, name }) { return `git@github.com:${organization}/${name}.git`; }, add: async function(repo) { var error, name, organization; ({ organization, name } = _helpers.Repo.parse(repo)); try { await _helpers.Repos.add({ organization, name }); return await Metarepo.sync(); } catch (error1) { error = error1; _kaiko.default.error(error); try { return await Metarepo.remove(repo); } catch (error1) {} } }, remove: async function(repo) { var error, name, organization; try { ({ organization, name } = _helpers.Repo.parse(repo)); _helpers.Repos.remove({ organization, name }); await _promises.default.rm(Metarepo.resolve(name), { recursive: true }); return await _promises.default.unlink(name); } catch (error1) { error = error1; return _kaiko.default.error(error); } }, clone: async function(metarepo, { branch }) { var cwd, git, name, organization; ({ organization, name } = _helpers.Repo.parse(metarepo)); git = Metarepo.git({ organization, name }); await _helpers.Script.run(`git clone ${git}`); cwd = process.cwd(); process.chdir(name); if (branch != null) { await _helpers.Script.run(`git switch ${branch}`); } await Metarepo.sync(); return process.chdir(cwd); }, sync: async function() { var error, git, i, len, name, organization, path, progress, repos; await _helpers.Script.run("git pull"); repos = await _helpers.Repos.load(); progress = _progress.default.make({ title: "Cloning Repos", count: repos.length }); progress.start(); for(i = 0, len = repos.length; i < len; i++){ ({ organization, name } = repos[i]); if (!await _helpers.FSX.isDirectory(Metarepo.resolve(name))) { git = Metarepo.git({ organization, name }); path = Metarepo.resolve(name); try { await _helpers.Script.run(`git clone ${git} ${path}`); await _helpers.Script.run(`ln -sf ${path}`); } catch (error1) { error = error1; _kaiko.default.error(error); } } progress.increment(); } progress.stop(); return Metarepo.prune(); }, prune: async function() { var error, i, len, name, path, paths, progress, repo; paths = await _promises.default.readdir(Metarepo.Paths.root); progress = _progress.default.make({ title: "Pruning Repos", count: paths.length }); progress.start(); for(i = 0, len = paths.length; i < len; i++){ path = paths[i]; if (await _helpers.FSX.isDirectory(path)) { name = _nodepath.default.basename(path); if ((repo = await _helpers.Repos.get(name)) == null) { if (!await _helpers.Repo.changed(name)) { try { await _promises.default.rm(path, { recursive: true }); await _promises.default.rm(name); } catch (error1) { error = error1; _kaiko.default.error(error); } } else { _kaiko.default.warn(`Unable to prune ${name} because it has changes`); } } } progress.increment(); } return progress.stop(); }, import: async function(path) { var i, len, repo, repos, results; repos = await Zephyr.read(path); results = []; for(i = 0, len = repos.length; i < len; i++){ repo = repos[i]; results.push(await Metarepo.add(repo)); } return results; }, exec: async function(command, args, { include, exclude, tags, ...options }) { var key, repos; repos = await _helpers.Repos.find({ include, exclude, tags }); key = Key.make({ command, args, include, exclude, tags }); return { length: repos.length, reactor: await _helpers.Repos.run({ repos, command, args, key, ...options }) }; }, run: async function(script, args, { include, exclude, tags, ...options }) { var key, repos; repos = await _helpers.Repos.find({ script, include, exclude, tags }); key = Key.make({ script, args, include, exclude, tags }); return { length: repos.length, reactor: await _helpers.Repos.run({ repos, script, args, key, ...options }) }; }, tag: async function(tags, { repos, include, exclude }) { repos = await _helpers.Repos.find({ repos, include, exclude }); return _helpers.Repos.tag(repos, tags); }, untag: async function(tags, { repos, include, exclude }) { repos = await _helpers.Repos.find({ repos, include, exclude }); return _helpers.Repos.untag(repos, tags); } }; const _default = Metarepo; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL3RlbXBvL3NyYy9tZXRhcmVwby5jb2ZmZWUiXSwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGUyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiXG5pbXBvcnQgUGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCBDcnlwdG8gZnJvbSBcIm5vZGU6Y3J5cHRvXCJcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tIFwiQGRhc2hraXRlL2Jha2VcIlxuaW1wb3J0IGxvZyBmcm9tIFwiQGRhc2hraXRlL2thaWtvXCJcblxuaW1wb3J0IHsgUmVwbywgUmVwb3MsIEdpdElnbm9yZSwgXG4gIFNjcmlwdCwgU2NyaXB0cywgTG9nZ2VyLCBGU1ggfSBmcm9tIFwiLi9oZWxwZXJzXCJcbmltcG9ydCBQcm9ncmVzcyBmcm9tIFwiLi9oZWxwZXJzL3Byb2dyZXNzXCJcblxudHJ1bmNhdGUgPSAoIGxlbmd0aCwgdGV4dCApIC0+IHRleHRbIDAuLi5sZW5ndGggXVxuXG4jIG5vbi1kZXN0cnVjdGl2ZSBzb3J0XG5zb3J0ID0gKCBhcnJheSApIC0+IFsgYXJyYXkuLi4gXS5zb3J0KClcblxuS2V5ID1cblxuICBoYXNoOiAoIHZlY3RvciApIC0+XG4gICAgdHJ1bmNhdGUgOCwgY29udmVydCBmcm9tOiBcImJ5dGVzXCIsIHRvOiBcImJhc2UzNlwiLFxuICAgICAgbmV3IFVpbnQ4QXJyYXkgZG8gLT5cbiAgICAgICAgQ3J5cHRvXG4gICAgICAgICAgLmNyZWF0ZUhhc2ggXCJtZDVcIlxuICAgICAgICAgIC51cGRhdGUgSlNPTi5zdHJpbmdpZnkgdmVjdG9yXG4gICAgICAgICAgLmRpZ2VzdCgpXG4gICAgICAgICAgLmJ1ZmZlclxuXG4gIG1ha2U6ICh7IHNjcmlwdCwgY29tbWFuZCwgYXJncywgdGFncywgaW5jbHVkZSwgZXhjbHVkZSB9KSAtPlxuICAgIHRhZ3MgPz0gW11cbiAgICBpbmNsdWRlID89IFtdXG4gICAgZXhjbHVkZSA/PSBbXVxuICAgIHZlY3RvciA9IFtdXG4gICAgaWYgc2NyaXB0P1xuICAgICAgdmVjdG9yLnB1c2ggXCJzY3JpcHRcIlxuICAgICAgdmVjdG9yLnB1c2ggc2NyaXB0XG4gICAgZWxzZVxuICAgICAgdmVjdG9yLnB1c2ggXCJjb21tYW5kXCJcbiAgICAgIHZlY3Rvci5wdXNoIGNvbW1hbmRcblxuICAgIHZlY3Rvci5wdXNoIGFyZ3NcbiAgICB2ZWN0b3IucHVzaCBzb3J0IHRhZ3NcbiAgICB2ZWN0b3IucHVzaCBzb3J0IGluY2x1ZGVcbiAgICB2ZWN0b3IucHVzaCBzb3J0IGV4Y2x1ZGVcbiAgICBLZXkuaGFzaCB2ZWN0b3JcblxuTWV0YXJlcG8gPVxuXG4gIFBhdGhzOlxuXG4gICAgcm9vdDogXCIudGVtcG9cIlxuXG4gICAgcmVwb3M6IFBhdGguam9pbiBcIi50ZW1wb1wiLCBcInJlcG9zXCJcblxuICBpbml0aWFsaXplOiAtPlxuICAgIGF3YWl0IEZTLm1rZGlyIE1ldGFyZXBvLlBhdGhzLnJlcG9zLCByZWN1cnNpdmU6IHRydWVcbiAgICBhd2FpdCBkbyBMb2dnZXIuaW5pdGlhbGl6ZVxuICAgIGF3YWl0IGRvIFJlcG9zLmluaXRpYWxpemVcbiAgICBhd2FpdCBkbyBTY3JpcHRzLmluaXRpYWxpemVcbiAgICBhd2FpdCBHaXRJZ25vcmUuYWRkIE1ldGFyZXBvLlBhdGhzLnJlcG9zXG4gICAgYXdhaXQgR2l0SWdub3JlLmFkZCBMb2dnZXIucGF0aFxuXG4gIHJlc29sdmU6ICggbmFtZSApIC0+XG4gICAgUGF0aC5qb2luIE1ldGFyZXBvLlBhdGhzLnJlcG9zLCBuYW1lXG5cbiAgZ2l0OiAoeyBvcmdhbml6YXRpb24sIG5hbWUgfSkgLT5cbiAgICBcImdpdEBnaXRodWIuY29tOiN7IG9yZ2FuaXphdGlvbiB9LyN7IG5hbWUgfS5naXRcIlxuXG4gIGFkZDogKCByZXBvICkgLT5cbiAgICB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9ID0gUmVwby5wYXJzZSByZXBvXG4gICAgdHJ5XG4gICAgICBhd2FpdCBSZXBvcy5hZGQgeyBvcmdhbml6YXRpb24sIG5hbWUgfVxuICAgICAgYXdhaXQgTWV0YXJlcG8uc3luYygpXG4gICAgY2F0Y2ggZXJyb3JcbiAgICAgIGxvZy5lcnJvciBlcnJvclxuICAgICAgdHJ5XG4gICAgICAgIGF3YWl0IE1ldGFyZXBvLnJlbW92ZSByZXBvXG5cbiAgcmVtb3ZlOiAoIHJlcG8gKSAtPlxuICAgIHRyeVxuICAgICAgeyBvcmdhbml6YXRpb24sIG5hbWUgfSA9IFJlcG8ucGFyc2UgcmVwb1xuICAgICAgUmVwb3MucmVtb3ZlIHsgb3JnYW5pemF0aW9uLCBuYW1lIH1cbiAgICAgIGF3YWl0IEZTLnJtICggTWV0YXJlcG8ucmVzb2x2ZSBuYW1lICksIHJlY3Vyc2l2ZTogdHJ1ZVxuICAgICAgYXdhaXQgRlMudW5saW5rIG5hbWVcbiAgICBjYXRjaCBlcnJvclxuICAgICAgbG9nLmVycm9yIGVycm9yXG4gIFxuICBjbG9uZTogKCBtZXRhcmVwbywgeyBicmFuY2ggfSkgLT5cbiAgICB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9ID0gUmVwby5wYXJzZSBtZXRhcmVwb1xuICAgIGdpdCA9IE1ldGFyZXBvLmdpdCB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9XG4gICAgYXdhaXQgU2NyaXB0LnJ1biBcImdpdCBjbG9uZSAjeyBnaXQgfVwiXG4gICAgY3dkID0gcHJvY2Vzcy5jd2QoKVxuICAgIHByb2Nlc3MuY2hkaXIgbmFtZVxuICAgIGlmIGJyYW5jaD9cbiAgICAgIGF3YWl0IFNjcmlwdC5ydW4gXCJnaXQgc3dpdGNoICN7IGJyYW5jaCB9XCJcbiAgICBhd2FpdCBNZXRhcmVwby5zeW5jKClcbiAgICBwcm9jZXNzLmNoZGlyIGN3ZFxuXG4gIHN5bmM6IC0+XG4gICAgYXdhaXQgU2NyaXB0LnJ1biBcImdpdCBwdWxsXCJcbiAgICByZXBvcyA9IGF3YWl0IFJlcG9zLmxvYWQoKVxuICAgIHByb2dyZXNzID0gUHJvZ3Jlc3MubWFrZSBcbiAgICAgIHRpdGxlOiBcIkNsb25pbmcgUmVwb3NcIlxuICAgICAgY291bnQ6IHJlcG9zLmxlbmd0aFxuICAgIGRvIHByb2dyZXNzLnN0YXJ0XG4gICAgZm9yIHsgb3JnYW5pemF0aW9uLCBuYW1lIH0gaW4gcmVwb3NcbiAgICAgIHVubGVzcyBhd2FpdCBGU1guaXNEaXJlY3RvcnkgTWV0YXJlcG8ucmVzb2x2ZSBuYW1lXG4gICAgICAgIGdpdCA9IE1ldGFyZXBvLmdpdCB7IG9yZ2FuaXphdGlvbiwgbmFtZSB9XG4gICAgICAgIHBhdGggPSBNZXRhcmVwby5yZXNvbHZlIG5hbWVcbiAgICAgICAgdHJ5XG4gICAgICAgICAgYXdhaXQgU2NyaXB0LnJ1biBcImdpdCBjbG9uZSAjeyBnaXQgfSAjeyBwYXRoIH1cIlxuICAgICAgICAgIGF3YWl0IFNjcmlwdC5ydW4gXCJsbiAtc2YgI3sgcGF0aCB9XCJcbiAgICAgICAgY2F0Y2ggZXJyb3JcbiAgICAgICAgICBsb2cuZXJyb3IgZXJyb3JcbiAgICAgIGRvIHByb2dyZXNzLmluY3JlbWVudFxuICAgIGRvIHByb2dyZXNzLnN0b3BcbiAgICBkbyBNZXRhcmVwby5wcnVuZVxuXG4gIHBydW5lOiAtPlxuICAgIHBhdGhzID0gYXdhaXQgRlMucmVhZGRpciBNZXRhcmVwby5QYXRocy5yb290XG4gICAgcHJvZ3Jlc3MgPSBQcm9ncmVzcy5tYWtlXG4gICAgICB0aXRsZTogXCJQcnVuaW5nIFJlcG9zXCJcbiAgICAgIGNvdW50OiBwYXRocy5sZW5ndGhcbiAgICBkbyBwcm9ncmVzcy5zdGFydFxuICAgIGZvciBwYXRoIGluIHBhdGhzXG4gICAgICBpZiBhd2FpdCBGU1guaXNEaXJlY3RvcnkgcGF0aFxuICAgICAgICBuYW1lID0gUGF0aC5iYXNlbmFtZSBwYXRoXG4gICAgICAgIGlmICEoIHJlcG8gPSBhd2FpdCBSZXBvcy5nZXQgbmFtZSApP1xuICAgICAgICAgIGlmICEoIGF3YWl0IFJlcG8uY2hhbmdlZCBuYW1lIClcbiAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICBhd2FpdCBGUy5ybSBwYXRoLCByZWN1cnNpdmU6IHRydWVcbiAgICAgICAgICAgICAgYXdhaXQgRlMucm0gbmFtZVxuICAgICAgICAgICAgY2F0Y2ggZXJyb3JcbiAgICAgICAgICAgICAgbG9nLmVycm9yIGVycm9yXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbG9nLndhcm4gXCJVbmFibGUgdG8gcHJ1bmUgI3sgbmFtZSB9XG4gICAgICAgICAgICAgIGJlY2F1c2UgaXQgaGFzIGNoYW5nZXNcIlxuICAgICAgZG8gcHJvZ3Jlc3MuaW5jcmVtZW50XG4gICAgZG8gcHJvZ3Jlc3Muc3RvcFxuXG4gIGltcG9ydDogKCBwYXRoICkgLT5cbiAgICByZXBvcyA9IGF3YWl0IFplcGh5ci5yZWFkIHBhdGhcbiAgICBmb3IgcmVwbyBpbiByZXBvc1xuICAgICAgYXdhaXQgTWV0YXJlcG8uYWRkIHJlcG9cblxuICBleGVjOiAoIGNvbW1hbmQsIGFyZ3MsIHsgaW5jbHVkZSwgZXhjbHVkZSwgdGFncywgb3B0aW9ucy4uLn0pIC0+XG4gICAgcmVwb3MgPSBhd2FpdCBSZXBvcy5maW5kIHsgaW5jbHVkZSwgZXhjbHVkZSwgdGFncyB9XG4gICAga2V5ID0gS2V5Lm1ha2UgeyBjb21tYW5kLCBhcmdzLCBpbmNsdWRlLCBleGNsdWRlLCB0YWdzIH1cbiAgICBsZW5ndGg6IHJlcG9zLmxlbmd0aFxuICAgIHJlYWN0b3I6IGF3YWl0IFJlcG9zLnJ1biB7IHJlcG9zLCBjb21tYW5kLCBhcmdzLCBrZXksIG9wdGlvbnMuLi4gfVxuXG4gIHJ1bjogKCBzY3JpcHQsIGFyZ3MsIHsgaW5jbHVkZSwgZXhjbHVkZSwgdGFncywgb3B0aW9ucy4uLn0pIC0+XG4gICAgcmVwb3MgPSBhd2FpdCBSZXBvcy5maW5kIHsgc2NyaXB0LCBpbmNsdWRlLCBleGNsdWRlLCB0YWdzIH1cbiAgICBrZXkgPSBLZXkubWFrZSB7IHNjcmlwdCwgYXJncywgaW5jbHVkZSwgZXhjbHVkZSwgdGFncyB9XG4gICAgbGVuZ3RoOiByZXBvcy5sZW5ndGhcbiAgICByZWFjdG9yOiBhd2FpdCBSZXBvcy5ydW4geyByZXBvcywgc2NyaXB0LCBhcmdzLCBrZXksIG9wdGlvbnMuLi4gfVxuXG4gIHRhZzogKCB0YWdzLCB7IHJlcG9zLCBpbmNsdWRlLCBleGNsdWRlIH0pIC0+XG4gICAgcmVwb3MgPSBhd2FpdCBSZXBvcy5maW5kIHsgcmVwb3MsIGluY2x1ZGUsIGV4Y2x1ZGUgfVxuICAgIFJlcG9zLnRhZyByZXBvcywgdGFnc1xuICAgICAgXG4gIHVudGFnOiAoIHRhZ3MsIHsgcmVwb3MsIGluY2x1ZGUsIGV4Y2x1ZGUgfSkgLT5cbiAgICByZXBvcyA9IGF3YWl0IFJlcG9zLmZpbmQgeyByZXBvcywgaW5jbHVkZSwgZXhjbHVkZSB9XG4gICAgUmVwb3MudW50YWcgcmVwb3MsIHRhZ3NcbiAgICAgIFxuZXhwb3J0IGRlZmF1bHQgTWV0YXJlcG8iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O2lFQUFBO2lFQUNBO21FQUNBO3NCQUNBOzhEQUNBO3lCQUVBO2lFQUVBOzs7Ozs7QUFSQSxJQUFBLEdBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBO0FBVUEsUUFBQSxHQUFXLFFBQUEsQ0FBRSxNQUFGLEVBQVUsSUFBVixDQUFBO1dBQW9CLElBQUksQ0FBQSxLQUFBLENBQUEsR0FBQTtBQUF4QixFQVZYOztBQWFBLElBQUEsR0FBTyxRQUFBLENBQUUsS0FBRixDQUFBO1dBQWEsQ0FBRTtXQUFBLEtBQUY7S0FBWSxDQUFDLElBQWIsQ0FBQTtBQUFiO0FBRVAsR0FBQSxHQUVFO0lBQUEsSUFBQSxFQUFNLFFBQUEsQ0FBRSxNQUFGLENBQUE7ZUFDSixRQUFBLENBQVMsQ0FBVCxNQUFZLGFBQUEsRUFBUTtZQUFBLElBQUEsRUFBTSxPQUFOO1lBQWUsRUFBQSxFQUFJO1FBQW5CLENBQVIsRUFDVixJQUFJLFVBQUosQ0FBa0IsUUFBQSxDQUFBLENBQUE7bUJBQ2hCLG1CQUNFLENBQUMsVUFESCxDQUNjLEtBRGQsQ0FFRSxDQUFDLE1BRkgsQ0FFVSxJQUFJLENBQUMsU0FBTCxDQUFl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