verdaccio
Version:
A lightweight private npm proxy registry
101 lines (75 loc) • 11.2 kB
JavaScript
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=
;