UNPKG

6.92 kBJavaScriptView Raw
1"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("validate-npm-package-name"),r=require("make-error"),t=require("isomorphic-unfetch"),n=require("tiny-lru"),a=require("url-join");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(e),o=i(r),c=i(t),d=i(n),u=i(a);const p=["https://registry.npmjs.cf","https://registry.yarnpkg.com"];class g extends r.BaseError{constructor(e,r){super(`fetch: request to ${e} failed with status ${r.statusText}`),this.url=void 0,this.response=void 0,this.url=e,this.response=r}}const y=o.default("InvalidPackageNameError"),m=o.default("InvalidPackageVersionError");async function l(e,...r){}function f({name:e}){const{validForOldPackages:r,validForNewPackages:t}=s.default(e);if(!r&&!t)throw l(),new y(`invalid package name: '${e}'`)}const h=d.default(250,3e5);async function w({url:e,headers:r,cached:t=!0}){const n=`headers=${JSON.stringify(r)};url=${e}`,a=h.get(n);if(t&&a)return l(),a;const i=await c.default(e,{headers:r});if(!i.ok)throw l(),new g(e,i);const s=await i.json();return t&&h.set(n,s),l(),s}async function P({endpoint:e,headers:r,query:t,registry:n="https://registry.npmjs.org",mirrors:a=p,cached:i}){const s=[n,...a].map((r=>u.default(r,e,t?`?${t}`:"")));let o;for(const e of s)try{return await w({url:e,headers:r,cached:i})}catch(e){o=e}throw l(),o}async function k({name:e,registry:r,mirrors:t,cached:n}){return f({name:e}),P({endpoint:`/${e}`,headers:{Accept:"application/vnd.npm.install-v1+json"},registry:r,mirrors:t,cached:n})}async function v({endpoint:e,registryDownloadsAPI:r="https://api.npmjs.org",cached:t}){return P({endpoint:e,registry:r,mirrors:[],cached:t})}function b({rawDownloadPeriod:e="last-week"}){if("string"==typeof e)return e;if(e instanceof Date)return $(e);const{start:r,end:t}=e;return`${$(r)}:${$(t)}`}function $(e){return e.toISOString().split("T")[0]}function x({rawPackument:e,version:r="latest"}){var t;const{name:n,"dist-tags":a,versions:i}=e,s=i[null!=(t=a[r])?t:r];if(!s)throw l(),new m(`invalid package version: '${n}@${r}'`);return s}async function D({name:e,registry:r,mirrors:t,cached:n}){return f({name:e}),P({endpoint:`/${e}`,registry:r,mirrors:t,cached:n})}async function R({name:e,version:r,registry:t,mirrors:n,cached:a}){return x({rawPackument:await D({name:e,registry:t,mirrors:n,cached:a}),version:r})}function A({rawLicense:e}){if(e&&"string"==typeof e)return e}function j({rawRepository:e}){return function(e){return e&&"object"==typeof e&&"string"==typeof e.url&&["string","undefined"].includes(typeof e.type)&&["string","undefined"].includes(typeof e.directory)}(e)?I({rawRepository:e}):"string"==typeof e?I({rawRepository:{url:e}}):void 0}function I({rawRepository:e}){const{url:r,directory:t}=e,n=function({url:e}){const r=e.includes(":")?e:e.includes("/")?`github:${e}`:"";try{const{protocol:e,hostname:t,pathname:n}=new URL(r),a=n.replace(/\.git$/,"");return"github:"===e||"github.com"===t?u.default("https://github.com",a):"gist:"===e||"gist.github.com"===t?u.default("https://gist.github.com",a):"bitbucket:"===e||"bitbucket.org"===t?u.default("https://bitbucket.org",a):"gitlab:"===e||"gitlab.com"===t?u.default("https://gitlab.com",a):r}catch{return}}({url:r});if(n)return{type:"git",url:n,directory:t}}exports.FetchError=g,exports.InvalidPackageNameError=y,exports.InvalidPackageVersionError=m,exports.cloudflareRegistry="https://registry.npmjs.cf",exports.getAbbreviatedPackument=async function({name:e,registry:r,mirrors:t,cached:n}){return function({rawAbbreviatedPackument:e}){const{"dist-tags":r,name:t,modified:n}=e;return{...e,id:t,distTags:r,modifiedAt:n}}({rawAbbreviatedPackument:await k({name:e,registry:r,mirrors:t,cached:n})})},exports.getDailyPackageDownloads=async function({name:e,period:r,registryDownloadsAPI:t,cached:n}){return f({name:e}),v({endpoint:`/downloads/range/${b({rawDownloadPeriod:r})}/${e}`,registryDownloadsAPI:t,cached:n})},exports.getDailyRegistryDownloads=async function({period:e,registryDownloadsAPI:r,cached:t}={}){return v({endpoint:`/downloads/range/${b({rawDownloadPeriod:e})}`,registryDownloadsAPI:r,cached:t})},exports.getPackageDownloads=async function({name:e,period:r,registryDownloadsAPI:t,cached:n}){return f({name:e}),v({endpoint:`/downloads/point/${b({rawDownloadPeriod:r})}/${e}`,registryDownloadsAPI:t,cached:n})},exports.getPackageManifest=async function({name:e,version:r,registry:t,mirrors:n,cached:a}){const i=await D({name:e,registry:t,mirrors:n,cached:a}),s=x({rawPackument:i,version:r});return await async function({rawPackageManifest:e,rawPackument:r,registry:t,mirrors:n,cached:a}){const{_id:i,name:s,version:o,license:c,repository:d,_npmUser:u}=e,p=r.time[o],g=A({rawLicense:c}),y=j({rawRepository:d}),m=await async function({rawPackageManifest:e,registry:r,mirrors:t,cached:n}){const{name:a,types:i,typings:s}=e,o=function({name:e}){return e.startsWith("@types/")?e:`@types/${e.replace("@","").replace("/","__")}`}({name:a});if(a===o||i||s)return;let c=!1;try{const{deprecated:e}=await R({name:o,registry:r,mirrors:t,cached:n});c=void 0===e}catch{}return c?o:void 0}({rawPackageManifest:e,registry:t,mirrors:n,cached:a}),l=function({name:e}){if(!e.startsWith("@types/"))return;const[r,t]=e.replace("@types/","").split("__");return t?`@${r}/${t}`:r}({name:s});return{...e,id:i,createdAt:p,publisher:u,license:g,gitRepository:y,definitelyTypedName:m,untypedName:l}}({rawPackageManifest:s,rawPackument:i,registry:t,mirrors:n,cached:a})},exports.getPackument=async function({name:e,registry:r,mirrors:t,cached:n}){return function({rawPackument:e}){const{_id:r,"dist-tags":t,time:n,license:a,repository:i}=e,s=A({rawLicense:a}),o=j({rawRepository:i}),c=Object.fromEntries(Object.entries(n).filter((([e])=>!["created","modified"].includes(e))));return{...e,id:r,distTags:t,versionsToTimestamps:c,license:s,gitRepository:o}}({rawPackument:await D({name:e,registry:r,mirrors:t,cached:n})})},exports.getRawAbbreviatedPackument=k,exports.getRawPackageManifest=R,exports.getRawPackument=D,exports.getRegistryDownloads=async function({period:e,registryDownloadsAPI:r,cached:t}={}){return v({endpoint:`/downloads/point/${b({rawDownloadPeriod:e})}`,registryDownloadsAPI:r,cached:t})},exports.getRegistryMetadata=async function({registry:e,cached:r}={}){return P({registry:e,mirrors:[],endpoint:"/",cached:r})},exports.npmRegistry="https://registry.npmjs.org",exports.npmRegistryDownloadsAPI="https://api.npmjs.org",exports.npmRegistryMirrors=p,exports.searchPackages=async function({query:e,registry:r,mirrors:t,cached:n}){const a=function({rawSearchCriteria:e}){return Object.entries(e).filter((([,e])=>["string","number"].includes(typeof e))).map((([e,r])=>`${e}=${r}`)).join("&")}({rawSearchCriteria:e});return P({endpoint:"/-/v1/search",query:a,registry:r,mirrors:t,cached:n})},exports.yarnRegistry="https://registry.yarnpkg.com";
2//# sourceMappingURL=query-registry.cjs.production.min.js.map