UNPKG

verdaccio

Version:

A lightweight private npm proxy registry

101 lines (75 loc) 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleNotify = handleNotify; exports.sendNotification = sendNotification; exports.notify = notify; var _handlebars = _interopRequireDefault(require("handlebars")); var _lodash = _interopRequireDefault(require("lodash")); var _notifyRequest = require("./notify-request"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function handleNotify(metadata, notifyEntry, remoteUser, publishedPackage) { let regex; if (metadata.name && notifyEntry.packagePattern) { regex = new RegExp(notifyEntry.packagePattern, notifyEntry.packagePatternFlags || ''); if (!regex.test(metadata.name)) { return; } } const template = _handlebars.default.compile(notifyEntry.content); // don't override 'publisher' if package.json already has that /* eslint no-unused-vars: 0 */ /* eslint @typescript-eslint/no-unused-vars: 0 */ // @ts-ignore if (_lodash.default.isNil(metadata.publisher)) { // @ts-ignore metadata = _objectSpread(_objectSpread({}, metadata), {}, { publishedPackage, publisher: { name: remoteUser.name } }); } const content = template(metadata); const options = { body: content, url: '' }; // provides fallback support, it's accept an Object {} and Array of {} if (notifyEntry.headers && _lodash.default.isArray(notifyEntry.headers)) { const header = {}; notifyEntry.headers.map(function (item) { if (Object.is(item, item)) { for (const key in item) { /* eslint no-prototype-builtins: 0 */ if (item.hasOwnProperty(key)) { header[key] = item[key]; } } } }); options.headers = header; } else if (Object.is(notifyEntry.headers, notifyEntry.headers)) { options.headers = notifyEntry.headers; } options.method = notifyEntry.method; if (notifyEntry.endpoint) { options.url = notifyEntry.endpoint; } return (0, _notifyRequest.notifyRequest)(options, content); } function sendNotification(metadata, notify, remoteUser, publishedPackage) { return handleNotify(metadata, notify, remoteUser, publishedPackage); } function notify(metadata, config, remoteUser, publishedPackage) { if (config.notify) { if (config.notify.content) { return sendNotification(metadata, config.notify, remoteUser, publishedPackage); } // multiple notifications endpoints PR #108 return Promise.all(_lodash.default.map(config.notify, key => sendNotification(metadata, key, remoteUser, publishedPackage))); } return Promise.resolve(); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbm90aWZ5L2luZGV4LnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmeSIsIm1ldGFkYXRhIiwibm90aWZ5RW50cnkiLCJyZW1vdGVVc2VyIiwicHVibGlzaGVkUGFja2FnZSIsInJlZ2V4IiwibmFtZSIsInBhY2thZ2VQYXR0ZXJuIiwiUmVnRXhwIiwicGFja2FnZVBhdHRlcm5GbGFncyIsInRlc3QiLCJ0ZW1wbGF0ZSIsIkhhbmRsZWJhcnMiLCJjb21waWxlIiwiY29udGVudCIsIl8iLCJpc05pbCIsInB1Ymxpc2hlciIsIm9wdGlvbnMiLCJib2R5IiwidXJsIiwiaGVhZGVycyIsImlzQXJyYXkiLCJoZWFkZXIiLCJtYXAiLCJpdGVtIiwiT2JqZWN0IiwiaXMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIm1ldGhvZCIsImVuZHBvaW50Iiwic2VuZE5vdGlmaWNhdGlvbiIsIm5vdGlmeSIsImNvbmZpZyIsIlByb21pc2UiLCJhbGwiLCJyZXNvbHZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFJQTs7Ozs7Ozs7OztBQUlPLFNBQVNBLFlBQVQsQ0FDTEMsUUFESyxFQUVMQyxXQUZLLEVBR0xDLFVBSEssRUFJTEMsZ0JBSkssRUFLZ0I7QUFDckIsTUFBSUMsS0FBSjs7QUFDQSxNQUFJSixRQUFRLENBQUNLLElBQVQsSUFBaUJKLFdBQVcsQ0FBQ0ssY0FBakMsRUFBaUQ7QUFDL0NGLElBQUFBLEtBQUssR0FBRyxJQUFJRyxNQUFKLENBQVdOLFdBQVcsQ0FBQ0ssY0FBdkIsRUFBdUNMLFdBQVcsQ0FBQ08sbUJBQVosSUFBbUMsRUFBMUUsQ0FBUjs7QUFDQSxRQUFJLENBQUNKLEtBQUssQ0FBQ0ssSUFBTixDQUFXVCxRQUFRLENBQUNLLElBQXBCLENBQUwsRUFBZ0M7QUFDOUI7QUFDRDtBQUNGOztBQUVELFFBQU1LLFFBQVEsR0FBR0Msb0JBQVdDLE9BQVgsQ0FBbUJYLFdBQVcsQ0FBQ1ksT0FBL0IsQ0FBakIs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LE9BQVIsRUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhbmRsZWJhcnMgZnJvbSAnaGFuZGxlYmFycyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBPcHRpb25zV2l0aFVybCB9IGZyb20gJ3JlcXVlc3QnO1xuaW1wb3J0IHsgQ29uZmlnLCBQYWNrYWdlLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBub3RpZnlSZXF1ZXN0IH0gZnJvbSAnLi9ub3RpZnktcmVxdWVzdCc7XG5cbnR5cGUgVGVtcGxhdGVNZXRhZGF0YSA9IFBhY2thZ2UgJiB7IHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTm90aWZ5KFxuICBtZXRhZGF0YTogUGFja2FnZSxcbiAgbm90aWZ5RW50cnksXG4gIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsXG4gIHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZ1xuKTogUHJvbWlzZTxhbnk+IHwgdm9pZCB7XG4gIGxldCByZWdleDtcbiAgaWYgKG1ldGFkYXRhLm5hbWUgJiYgbm90aWZ5RW50cnkucGFja2FnZVBhdHRlcm4pIHtcbiAgICByZWdleCA9IG5ldyBSZWdFeHAobm90aWZ5RW50cnkucGFja2FnZVBhdHRlcm4sIG5vdGlmeUVudHJ5LnBhY2thZ2VQYXR0ZXJuRmxhZ3MgfHwgJycpO1xuICAgIGlmICghcmVnZXgudGVzdChtZXRhZGF0YS5uYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlID0gSGFuZGxlYmFycy5jb21waWxlKG5vdGlmeUVudHJ5LmNvbnRlbnQpO1xuICAvLyBkb24ndCBvdmVycmlkZSAncHVibGlzaGVyJyBpZiBwYWNrYWdlLmpzb24gYWxyZWFkeSBoYXMgdGhhdFxuICAvKiBlc2xpbnQgbm8tdW51c2VkLXZhcnM6IDAgKi9cbiAgLyogZXNsaW50IEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyczogMCAqL1xuICAvLyBAdHMtaWdub3JlXG4gIGlmIChfLmlzTmlsKG1ldGFkYXRhLnB1Ymxpc2hlcikpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbWV0YWRhdGEgPSB7IC4uLm1ldGFkYXRhLCBwdWJsaXNoZWRQYWNrYWdlLCBwdWJsaXNoZXI6IHsgbmFtZTogcmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZyB9IH07XG4gIH1cblxuICBjb25zdCBjb250ZW50OiBzdHJpbmcgPSB0ZW1wbGF0ZShtZXRhZGF0YSk7XG5cbiAgY29uc3Qgb3B0aW9uczogT3B0aW9uc1dpdGhVcmwgPSB7XG4gICAgYm9keTogY29udGVudCxcbiAgICB1cmw6ICcnXG4gIH07XG5cbiAgLy8gcHJvdmlkZXMgZmFsbGJhY2sgc3VwcG9ydCwgaXQncyBhY2NlcHQgYW4gT2JqZWN0IHt9IGFuZCBBcnJheSBvZiB7fVxuICBpZiAobm90aWZ5RW50cnkuaGVhZGVycyAmJiBfLmlzQXJyYXkobm90aWZ5RW50cnkuaGVhZGVycykpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB7fTtcbiAgICBub3RpZnlFbnRyeS5oZWFkZXJzLm1hcChmdW5jdGlvbiAoaXRlbSk6IHZvaWQge1xuICAgICAgaWYgKE9iamVjdC5pcyhpdGVtLCBpdGVtKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpdGVtKSB7XG4gICAgICAgICAgLyogZXNsaW50IG5vLXByb3RvdHlwZS1idWlsdGluczogMCAqL1xuICAgICAgICAgIGlmIChpdGVtLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGhlYWRlcltrZXldID0gaXRlbVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIG9wdGlvbnMuaGVhZGVycyA9IGhlYWRlcjtcbiAgfSBlbHNlIGlmIChPYmplY3QuaXMobm90aWZ5RW50cnkuaGVhZGVycywgbm90aWZ5RW50cnkuaGVhZGVycykpIHtcbiAgICBvcHRpb25zLmhlYWRlcnMgPSBub3RpZnlFbnRyeS5oZWFkZXJzO1xuICB9XG5cbiAgb3B0aW9ucy5tZXRob2QgPSBub3RpZnlFbnRyeS5tZXRob2Q7XG5cbiAgaWYgKG5vdGlmeUVudHJ5LmVuZHBvaW50KSB7XG4gICAgb3B0aW9ucy51cmwgPSBub3RpZnlFbnRyeS5lbmRwb2ludDtcbiAgfVxuXG4gIHJldHVybiBub3RpZnlSZXF1ZXN0KG9wdGlvbnMsIGNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VuZE5vdGlmaWNhdGlvbihcbiAgbWV0YWRhdGE6IFBhY2thZ2UsXG4gIG5vdGlmeTogYW55LFxuICByZW1vdGVVc2VyOiBSZW1vdGVVc2VyLFxuICBwdWJsaXNoZWRQYWNrYWdlOiBzdHJpbmdcbik6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBoYW5kbGVOb3RpZnkobWV0YWRhdGEsIG5vdGlmeSwgcmVtb3RlVXNlciwgcHVibGlzaGVkUGFja2FnZSkgYXMgUHJvbWlzZTxhbnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5KFxuICBtZXRhZGF0YTogUGFja2FnZSxcbiAgY29uZmlnOiBDb25maWcsXG4gIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsXG4gIHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZ1xuKTogUHJvbWlzZTxhbnk+IHwgdm9pZCB7XG4gIGlmIChjb25maWcubm90aWZ5KSB7XG4gICAgaWYgKGNvbmZpZy5ub3RpZnkuY29udGVudCkge1xuICAgICAgcmV0dXJuIHNlbmROb3RpZmljYXRpb24oXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICAoY29uZmlnLm5vdGlmeSBhcyB1bmtub3duKSBhcyBhbnksXG4gICAgICAgIHJlbW90ZVVzZXIsXG4gICAgICAgIHB1Ymxpc2hlZFBhY2thZ2VcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIG11bHRpcGxlIG5vdGlmaWNhdGlvbnMgZW5kcG9pbnRzIFBSICMxMDhcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBfLm1hcChjb25maWcubm90aWZ5LCAoa2V5KSA9PiBzZW5kTm90aWZpY2F0aW9uKG1ldGFkYXRhLCBrZXksIHJlbW90ZVVzZXIsIHB1Ymxpc2hlZFBhY2thZ2UpKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59XG4iXX0=