@bring-it/npm
Version:
Publish npm packages when needed
1 lines • 8.75 kB
JavaScript
import*as e from"node:buffer";import*as r from"node:events";import*as n from"node:fs";import*as t from"node:path";import*as i from"node:stream";import*as a from"node:stream/promises";import*as o from"node:string_decoder";import*as s from"node:timers/promises";import*as c from"node:url";import*as u from"node:util";import*as f from"node:v8";export const __webpack_esm_id__=277;export const __webpack_esm_ids__=[277];export const __webpack_esm_modules__={1786(r,n,t){var i,a;r.exports=(i={Buffer:()=>e.Buffer},a={},t.d(a,i),a)},2849(e,n,t){var i,a;e.exports=(i={EventEmitter:()=>r.EventEmitter,addAbortListener:()=>r.addAbortListener,on:()=>r.on,once:()=>r.once,setMaxListeners:()=>r.setMaxListeners},a={},t.d(a,i),a)},9627(e,r,t){var i,a;e.exports=(i={appendFileSync:()=>n.appendFileSync,createReadStream:()=>n.createReadStream,createWriteStream:()=>n.createWriteStream,readFileSync:()=>n.readFileSync,statSync:()=>n.statSync,writeFileSync:()=>n.writeFileSync},a={},t.d(a,i),a)},5663(e,r,n){var i,a;e.exports=(i={default:()=>t.default,dirname:()=>t.dirname,join:()=>t.join,resolve:()=>t.resolve},a={},n.d(a,i),a)},9068(e,r,n){var t,a;e.exports=(t={Duplex:()=>i.Duplex,PassThrough:()=>i.PassThrough,Readable:()=>i.Readable,Transform:()=>i.Transform,Writable:()=>i.Writable,getDefaultHighWaterMark:()=>i.getDefaultHighWaterMark},a={},n.d(a,t),a)},9715(e,r,n){var t,i;e.exports=(t={finished:()=>a.finished},i={},n.d(i,t),i)},6018(e,r,n){var t,i;e.exports=(t={StringDecoder:()=>o.StringDecoder},i={},n.d(i,t),i)},7309(e,r,n){var t,i;e.exports=(t={scheduler:()=>s.scheduler,setImmediate:()=>s.setImmediate,setTimeout:()=>s.setTimeout},i={},n.d(i,t),i)},9061(e,r,n){var t,i;e.exports=(t={fileURLToPath:()=>c.fileURLToPath},i={},n.d(i,t),i)},4472(e,r,n){var t,i;e.exports=(t={aborted:()=>u.aborted,callbackify:()=>u.callbackify,debuglog:()=>u.debuglog,inspect:()=>u.inspect,promisify:()=>u.promisify,stripVTControlCharacters:()=>u.stripVTControlCharacters},i={},n.d(i,t),i)},2626(e,r,n){var t,i;e.exports=(t={serialize:()=>f.serialize},i={},n.d(i,t),i)},9318(e,r,n){n.a(e,async(e,t)=>{try{n.d(r,{action:()=>u});var i=n(5368),a=n(396),o=n(4507),s=n(6307),c=e([i,a,o]);async function u({preview:e=!1,force:r=!1}={}){if(!await(0,i.z)({force:r}))return process.exitCode=1,!1;const n=await(0,o.S)({force:r});if(0===n.length)return!1;e&&a.v.info("Won't publish in preview mode");const t=await(0,s.QR)();a.v.info("Using",t);for(const{dir:r,name:i}of n){const n=e?"[Preview]":"[Publish]";a.v.task(n,i),await(0,s.OY)(t,["publish",!!e&&"--dry-run"].filter(Boolean),{cwd:r}).then(()=>{a.v.okay(n,i)}).catch(()=>{a.v.fail(n,i),process.exitCode=1})}return!1}[i,a,o]=c.then?(await c)():c,t()}catch(f){t(f)}})},5368(e,r,n){n.a(e,async(e,t)=>{try{n.d(r,{z:()=>s});var i=n(8760),a=n(396),o=e([i,a]);async function s({force:e}){a.v.task("Checking the working directory...");try{if(!await(0,i.ow)())return!1;if(!await(0,i.qv)())return!1;if(!await(0,i.vy)())return!1;if(!e){if(!await(0,i.q3)())return!1;if(!await(0,i.Wy)())return!1}}catch(e){return a.v.fail("Checking failed"),a.v.fail(e.message),!1}return!0}[i,a]=o.then?(await o)():o,t()}catch(c){t(c)}})},9578(e,r,n){n.a(e,async(e,t)=>{try{n.d(r,{p:()=>f});var i=n(8399),a=n(4140),o=n(4504),s=n(396),c=e([s]),u=c.then?(await c)():c;function f(e){if(e.private)return s.v.info("[package is private]",e.name),!1;if(!e.name||!o(e.name).validForNewPackages)return s.v.warn("[pkg.name isn't valid]",e.pkg),!1;if(!e.version||!a.valid(e.version))return s.v.warn("[pkg.version isn't valid]",e.pkg),!1;if(!e.publishConfig?.registry)return s.v.info("[Registry undefined]",e.name),!1;if(!i(e.publishConfig.registry))return s.v.warn("[pkg.publishConfig.registry isn't valid]",e.name),!1;if(e.name.startsWith("@")&&"public"!==e.publishConfig.access)return s.v.info("[pkg.publishConfig.access isn't public]",e.name),!1;if(e.engines?.node){if(!a.validRange(e.engines.node))return s.v.warn("[pkg.engines.node isn't valid]",e.pkg),!1;if(!a.satisfies(process.versions.node,e.engines.node))return s.v.warn("[pkg.engines.node isn't match]",e.pkg),!1}return!0}s=u[0],t()}catch(p){t(p)}})},8760(e,r,n){n.a(e,async(e,t)=>{try{n.d(r,{Jy:()=>C,Wy:()=>m,ow:()=>p,q3:()=>y,qv:()=>d,vy:()=>l,xN:()=>w});var i=n(5663),a=n(396),o=n(6307),s=e([a]),c=s.then?(await s)():s;function u(...e){return(0,o.Wo)("git",e)}async function f(e,r,n){return await e?(a.v.okay(r),!0):(a.v.fail(n),!1)}function p(){return f(u("--version").then(Boolean),"Git is ready","Git is not installed")}function d(){return f(u("rev-parse","--is-inside-work-tree").then(e=>"true"===e),"Current directory inside a git repo","Current directory not inside a git repo")}function l(){return f(u("rev-parse","--show-toplevel").then(e=>(0,i.resolve)(e)===(0,i.resolve)(process.cwd())),"Current directory is the git root","Current directory is not the git root")}a=c[0];const h=["M .npmrc","MM .npmrc","U .npmrc","R .npmrc","A .npmrc","?? .npmrc"];function m(){return f(u("status","--porcelain").then(e=>e.split("\n").map(e=>e.trim()).filter(e=>e&&!h.includes(e))).then(e=>0===e.length||(console.info(e.join("\n")),!1)),"Current directory is a clean repo","Current directory is not a clean repo")}async function v(){const e=await u("rev-parse","--abbrev-ref","HEAD");return"HEAD"===e?(await u("name-rev","--name-only","HEAD")).replace(/^remotes\/origin\//,""):e}const g=["main","master","release"];async function y(){return f(v().then(e=>g.includes(e)),`Current branch match \`${g.join("/")}\``,`Current branch not match \`${g.join("/")}\``)}function w(e){return u("show",`HEAD~1:${e}`)}function k(){return u("diff","HEAD~1","HEAD","--name-only","--ignore-blank-lines","--ignore-cr-at-eol","--ignore-space-at-eol","--diff-filter=d","package.json","*/package.json")}function b(){return u("ls-files","package.json","*/package.json")}async function C({force:e}){const r=u("cat-file","-t","HEAD~1").then(e?b:k,b),n=await r.then(e=>e?e.split("\n"):[]);for(const r of n)a.v.okay(e?"[Forcing scan]":"[Latest Modified]",r);return n}t()}catch(x){t(x)}})},4507(e,r,n){n.a(e,async(e,t)=>{try{n.d(r,{S:()=>g});var i=n(5663),a=n(9578),o=n(8760),s=n(396),c=n(5595),u=n(6307),f=e([a,o,s]);function p(e){return(0,u.TQ)(e).then(({name:r,version:n,private:t=!1,engines:a,publishConfig:o})=>({pkg:e,dir:(0,i.dirname)(e),name:r,version:n,private:t,publishConfig:o,engines:a})).catch(()=>!1)}function d(e,r){const n=new AbortController,t=setTimeout(()=>n.abort("timeout"),5e3);return fetch(e,{...r,signal:n.signal}).then(e=>(clearTimeout(t),e)).catch(e=>{throw clearTimeout(t),e})}function l(e,r,n=""){return d(new URL(e,r).href,{headers:n&&"https://registry.npmjs.org/"!==r?{Authorization:`Bearer ${n}`}:void 0}).then(async n=>{if(!n.ok){if(401===n.status){const n=await(0,c.P)(r);if(n)return l(e,r,n)}return[]}return n.json().then(e=>Object.keys(e.versions))}).catch(()=>(s.v.warn("[Fail to list version]",e),[]))}async function h(e){const r=[];for(const n of e){const e=await p(n);e&&(0,a.p)(e)&&(r.push(e),s.v.okay("[Publish Allowed]",e.name))}return r}async function m(e){const r=[];for(const n of e){const e=await(0,o.xN)(n.pkg).then(e=>JSON.parse(e)).catch(()=>!1);e?e?.version&&e.version===n.version||(r.push(n),s.v.okay("[Version changed]",n.pkg)):(r.push(n),s.v.okay("[First commit]",n.pkg))}return r}async function v(e){const r=[];for(const n of e){const e=await l(n.name,n.publishConfig.registry);e&&e.includes(n.version)?s.v.info("[Published, skip]",n.name):(r.push(n),s.v.okay("[Not publish yet]",n.name))}return r}async function g({force:e}){s.v.task("Scanning all package.json...");try{const r=await(0,o.Jy)({force:e}),n=await h(r),t=e?n:await m(n),i=await v(t);return s.v.info(i.length>0?i.length:"No",1===i.length?"package":"packages","need to publish"),i}catch(e){return s.v.fail("Scanning failed"),s.v.fail(e.message),[]}}[a,o,s]=f.then?(await f)():f,t()}catch(y){t(y)}})},5595(e,r,n){n.d(r,{P:()=>c});var t=n(8298),i=n(6674),a=n(5663),o=n(1739);function s(e){return(0,t.readFile)((0,a.join)(e,".npmrc"),"utf8").then(o.parse)}function c(e="https://registry.npmjs.org/"){return Promise.allSettled([s((0,i.homedir)()),s(process.cwd())]).then(([e,r])=>({...e.value,...r.value})).then(r=>{const{host:n,pathname:t}=new URL(e);return r[`//${n+t}:_authToken`]}).catch(()=>{})}},6307(e,r,n){n.d(r,{OY:()=>s,QR:()=>f,TQ:()=>u,Wo:()=>c});var t=n(8298),i=n(5663),a=n(7734);function o(e,r,n){return(0,a.Ho)(e,r,{cwd:process.cwd(),...n})}function s(e,r,n){return o(e,r,{stdio:"inherit",...n})}function c(e,r,n){return o(e,r,n).then(({stdout:e,stderr:r})=>{if(r)throw new Error(r);return e?.trim()})}function u(e){return(0,t.readFile)(e,"utf8").then(e=>JSON.parse(e))}async function f(){return u((0,i.resolve)(process.cwd(),"package.json")).then(({packageManager:e="npm"})=>e.split("@")[0]).catch(()=>"npm")}}};