%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict' const fetch = require('npm-registry-fetch') const validate = require('aproba') const eu = encodeURIComponent const cmd = module.exports = {} cmd.add = (name, endpoint, secret, opts = {}) => { validate('SSSO', [name, endpoint, secret, opts]) let type = 'package' if (name.match(/^@[^/]+$/)) { type = 'scope' } if (name[0] === '~') { type = 'owner' name = name.slice(1) } return fetch.json('/-/npm/v1/hooks/hook', { ...opts, method: 'POST', body: { type, name, endpoint, secret }, }) } cmd.rm = (id, opts = {}) => { validate('SO', [id, opts]) return fetch.json(`/-/npm/v1/hooks/hook/${eu(id)}`, { ...opts, method: 'DELETE', }).catch(err => { if (err.code === 'E404') { return null } else { throw err } }) } cmd.update = (id, endpoint, secret, opts = {}) => { validate('SSSO', [id, endpoint, secret, opts]) return fetch.json(`/-/npm/v1/hooks/hook/${eu(id)}`, { ...opts, method: 'PUT', body: { endpoint, secret }, }) } cmd.find = (id, opts = {}) => { validate('SO', [id, opts]) return fetch.json(`/-/npm/v1/hooks/hook/${eu(id)}`, opts) } cmd.ls = (opts = {}) => { return cmd.ls.stream(opts).collect() } cmd.ls.stream = (opts = {}) => { const { package: pkg, limit, offset } = opts validate('S|Z', [pkg]) validate('N|Z', [limit]) validate('N|Z', [offset]) return fetch.json.stream('/-/npm/v1/hooks', 'objects.*', { ...opts, query: { package: pkg, limit, offset, }, }) }