@anolilab/multi-semantic-release 3.0.0-alpha.2 → 3.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## @anolilab/multi-semantic-release [3.0.0-alpha.3](https://github.com/anolilab/semantic-release/compare/@anolilab/multi-semantic-release@3.0.0-alpha.2...@anolilab/multi-semantic-release@3.0.0-alpha.3) (2025-10-22)
2
+
3
+ ### Bug Fixes
4
+
5
+ * dryRun flag support in multiSemanticRelease ([3262190](https://github.com/anolilab/semantic-release/commit/3262190273db749884e03a5821177ecd25bacef6))
6
+
1
7
  ## @anolilab/multi-semantic-release [3.0.0-alpha.2](https://github.com/anolilab/semantic-release/compare/@anolilab/multi-semantic-release@3.0.0-alpha.1...@anolilab/multi-semantic-release@3.0.0-alpha.2) (2025-10-21)
2
8
 
3
9
  ### Features
package/dist/bin/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- var b=Object.defineProperty;var r=(e,t)=>b(e,"name",{value:t,configurable:!0});import{createRequire as f}from"node:module";import j from"yargs";import{hideBin as k}from"yargs/helpers";import{B as x,d as a}from"../packem_shared/multi-semantic-release-CD0fW8rP.js";const n=f(import.meta.url),c=r(e=>{if(process.versions?.node){const[t,o]=process.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return process.getBuiltinModule(e)}return n(e)},"__cjs_getBuiltinModule"),m=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{existsSync:g,lstatSync:y}=c("node:fs"),{Writable:h}=c("node:stream"),{checker:v,add:l}=n("blork"),{WritableStreamBuffer:_}=n("stream-buffers"),{exit:s}=m,S=v("absolute");l("directory",e=>S(e)&&g(e)&&y(e).isDirectory(),"directory that exists in the filesystem");l("stream",e=>e instanceof h||e instanceof _,"instance of stream.Writable or WritableStreamBuffer");var O=Object.defineProperty,B=r((e,t)=>O(e,"name",{value:t,configurable:!0}),"n");const p={array:!0,coerce:B(e=>e.length===1&&e[0].trim()==="false"?[]:e.reduce((t,o)=>t.concat(o.split(",").map(i=>i.trim())),[]),"coerce"),type:"string"};await(async()=>{const e=j(k(process.argv)).usage("$0 [args]").scriptName("multi-semantic-release").option("d",{alias:"dry-run",describe:"Skip publishing",group:"Options",type:"boolean"}).option("h",{alias:"help",group:"Options"}).option("debug",{describe:"Output debugging information.",type:"boolean"}).option("silent",{describe:"Do not print configuration information.",type:"boolean"}).option("sequential-init",{describe:"Avoid hypothetical concurrent initialization collisions.",type:"boolean"}).option("sequential-prepare",{describe:"Avoid hypothetical concurrent preparation collisions. Do not use if your project have cyclic dependencies.",type:"boolean"}).option("first-parent",{describe:"Apply commit filtering to current branch only.",type:"boolean"}).option("deps.bump",{describe:"Define deps version updating rule. Allowed: override, satisfy, inherit.",type:"string"}).option("deps.release",{describe:"Define release type for dependent package if any of its deps changes. Supported values: patch, minor, major, inherit.",type:"string"}).option("deps.prefix",{describe:"Optional prefix to be attached to the next dep version if '--deps.bump' set to 'override'. Supported values: '^' | '~' | '' (empty string as default).",type:"string"}).option("b",{alias:"branches",describe:"Git branches to release from",...p,group:"Options"}).option("ci",{describe:"Toggle CI verifications",group:"Options",type:"boolean"}).option("ignore-packages",{...p,describe:"Packages list to be ignored on bumping process"}).option("ignore-private",{describe:"Exclude private packages. Enabled by default, pass 'no-ignore-private' to disable.",type:"boolean"}).option("tag-format",{describe:'Format to use for creating tag names. Should include "name" and "version" vars. Default: "${name}@${version}" generates "package-name@1.0.0"',type:"string"}).strict(!1).exitProcess(!1);try{const{_:t,help:o,version:i,...d}=e.parse(process.argv.slice(2));if(o||i)return 0;x(null,{},{},d).then(()=>{s(0)},u=>{a.error("[multi-semantic-release]:",u),s(1)})}catch(t){a.error("[multi-semantic-release]:",t),s(1)}})();
2
+ var b=Object.defineProperty;var r=(e,t)=>b(e,"name",{value:t,configurable:!0});import{createRequire as f}from"node:module";import j from"yargs";import{hideBin as k}from"yargs/helpers";import{q as x,d as a}from"../packem_shared/multi-semantic-release-D35RbRfY.js";const n=f(import.meta.url),c=r(e=>{if(process.versions?.node){const[t,o]=process.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return process.getBuiltinModule(e)}return n(e)},"__cjs_getBuiltinModule"),m=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{existsSync:g,lstatSync:y}=c("node:fs"),{Writable:h}=c("node:stream"),{checker:v,add:l}=n("blork"),{WritableStreamBuffer:_}=n("stream-buffers"),{exit:s}=m,S=v("absolute");l("directory",e=>S(e)&&g(e)&&y(e).isDirectory(),"directory that exists in the filesystem");l("stream",e=>e instanceof h||e instanceof _,"instance of stream.Writable or WritableStreamBuffer");var O=Object.defineProperty,q=r((e,t)=>O(e,"name",{value:t,configurable:!0}),"n");const p={array:!0,coerce:q(e=>e.length===1&&e[0].trim()==="false"?[]:e.reduce((t,o)=>t.concat(o.split(",").map(i=>i.trim())),[]),"coerce"),type:"string"};await(async()=>{const e=j(k(process.argv)).usage("$0 [args]").scriptName("multi-semantic-release").option("d",{alias:"dry-run",describe:"Skip publishing",group:"Options",type:"boolean"}).option("h",{alias:"help",group:"Options"}).option("debug",{describe:"Output debugging information.",type:"boolean"}).option("silent",{describe:"Do not print configuration information.",type:"boolean"}).option("sequential-init",{describe:"Avoid hypothetical concurrent initialization collisions.",type:"boolean"}).option("sequential-prepare",{describe:"Avoid hypothetical concurrent preparation collisions. Do not use if your project have cyclic dependencies.",type:"boolean"}).option("first-parent",{describe:"Apply commit filtering to current branch only.",type:"boolean"}).option("deps.bump",{describe:"Define deps version updating rule. Allowed: override, satisfy, inherit.",type:"string"}).option("deps.release",{describe:"Define release type for dependent package if any of its deps changes. Supported values: patch, minor, major, inherit.",type:"string"}).option("deps.prefix",{describe:"Optional prefix to be attached to the next dep version if '--deps.bump' set to 'override'. Supported values: '^' | '~' | '' (empty string as default).",type:"string"}).option("b",{alias:"branches",describe:"Git branches to release from",...p,group:"Options"}).option("ci",{describe:"Toggle CI verifications",group:"Options",type:"boolean"}).option("ignore-packages",{...p,describe:"Packages list to be ignored on bumping process"}).option("ignore-private",{describe:"Exclude private packages. Enabled by default, pass 'no-ignore-private' to disable.",type:"boolean"}).option("tag-format",{describe:'Format to use for creating tag names. Should include "name" and "version" vars. Default: "${name}@${version}" generates "package-name@1.0.0"',type:"string"}).strict(!1).exitProcess(!1);try{const{_:t,help:o,version:i,...d}=e.parse(process.argv.slice(2));if(o||i)return 0;x(null,{},{},d).then(()=>{s(0)},u=>{a.error("[multi-semantic-release]:",u),s(1)})}catch(t){a.error("[multi-semantic-release]:",t),s(1)}})();
@@ -1 +1 @@
1
- import{createRequire as e}from"node:module";import"@semrel-extra/topo";import"lodash-es";import"semantic-release";import"semantic-release/package.json"with{type:"json"};import{B as _}from"./packem_shared/multi-semantic-release-CD0fW8rP.js";const o=e(import.meta.url);const i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process;o("blork");export{_ as default};
1
+ import{createRequire as e}from"node:module";import"@semrel-extra/topo";import"lodash-es";import"semantic-release";import"semantic-release/package.json"with{type:"json"};import{q as _}from"./packem_shared/multi-semantic-release-D35RbRfY.js";const o=e(import.meta.url);const i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process;o("blork");export{_ as default};
@@ -0,0 +1,4 @@
1
+ var oe=Object.defineProperty;var m=(e,t)=>oe(e,"name",{value:t,configurable:!0});import{createRequire as ce}from"node:module";import{topo as me}from"@semrel-extra/topo";import{transform as fe,isEqual as ve,isObject as J,pickBy as G,castArray as L,sortBy as he,template as be}from"lodash-es";import ye from"semantic-release";import $e from"semantic-release/package.json"with{type:"json"};import{getTagHead as we}from"semantic-release/lib/git.js";import{execa as Re}from"execa";import Oe from"detect-indent";import{detectNewline as De}from"detect-newline";import Ee from"semantic-release/lib/get-config.js";const x=ce(import.meta.url),q=m(e=>{if(process.versions?.node){const[t,r]=process.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return process.getBuiltinModule(e)}return x(e)},"__cjs_getBuiltinModule"),Ct=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{normalize:le,join:de,isAbsolute:pe,relative:ue,dirname:ge}=q("node:path"),{existsSync:z,lstatSync:W,readFileSync:_e,writeFileSync:je}=q("node:fs"),Q=x("git-log-parser"),C=x("debug"),Z=x("signale"),{check:b,ValueError:N}=x("blork"),P=x("semver"),{gt:Pe,prerelease:xe,rcompare:ke}=P,{cosmiconfig:ee}=x("cosmiconfig"),{createRequire:Se}=q("node:module"),Te=x("resolve-from"),{WritableStreamBuffer:Ce}=x("stream-buffers"),{Writable:Ne}=q("node:stream"),He="3.0.0-alpha.2",Le={version:He};var Ve=Object.defineProperty,qe=m((e,t)=>Ve(e,"name",{value:t,configurable:!0}),"i$3");const{Signale:Me}=Z,A=["error","warn","info","debug","trace"],M=qe((e,t)=>A.indexOf(e)<=A.indexOf(t),"assertLevel"),U={complete:"info",failure:"error",log:"info",success:"info"},h={config:{_level:"info",_signale:{},_stderr:process.stderr,_stdout:process.stdout,set level(e){e&&(M(e,"debug")&&C.enable("msr:"),M(e,"trace")&&C.enable("semantic-release:"),this._level=e)},get level(){return this._level},set stdio([e,t]){this._stdout=t,this._stderr=e,this._signale=new Me({config:{displayLabel:!1,displayTimestamp:!0},stream:t,types:{complete:{badge:"🎉",color:"green",label:"",stream:[t]},error:{color:"red",label:"",stream:[e]},log:{badge:"•",color:"magenta",label:"",stream:[t]},success:{color:"green",label:"",stream:[t]}}})},get stdio(){return[this._stderr,this._stdout]}},prefix:"msr:",withScope(e){return{...this,debug:C(e||this.prefix),prefix:e}},...[...A,...Object.keys(U)].reduce((e,t)=>(e[t]=function(...r){M(U[t]||t,this.config.level)&&(this.config._signale[t]||console[t]||(()=>{}))(this.prefix,...r)},e),{}),debug:C("msr:")};var Be=Object.defineProperty,Fe=m((e,t)=>Be(e,"name",{value:t,configurable:!0}),"o$4");const E=Fe((e,t=process.cwd())=>(b(e,"path: path"),b(t,"cwd: absolute"),le(pe(e)?e:de(t,e)).replace(/[/\\]+$/u,"")),"cleanPath");var ze=Object.defineProperty,S=m((e,t)=>ze(e,"name",{value:t,configurable:!0}),"o$3");const We=S(e=>e.readable?new Promise((t,r)=>{if(!e.readable){t([]);return}let a=[];const s=S(()=>{a=[],e.removeListener("data",i),e.removeListener("end",c),e.removeListener("error",p),e.removeListener("close",o)},"cleanup"),i=S(u=>{a.push(u)},"onData"),c=S(()=>{t(a),s()},"onEnd"),p=S(u=>{r(u),s()},"onError"),o=S(()=>{t(a),s()},"onClose");e.on("data",i),e.on("end",c),e.on("error",p),e.on("close",o)}):Promise.resolve([]),"default");var Ae=Object.defineProperty,Ie=m((e,t)=>Ae(e,"name",{value:t,configurable:!0}),"f");const{debug:K}=h.withScope("msr:commitsFilter"),B=Ie(async(e,t,r,a,s)=>{if(b(e,"cwd: directory"),!z(e)||!W(e).isDirectory())throw new N("cwd: Must be an absolute path to an existing directory",e);if(b(t,"dir: path"),t=E(t,e),!z(t)||!W(t).isDirectory())throw new N("dir: Must be a path to an existing directory",t);if(e=E(e),t=E(t,e),b(t,"dir: directory"),b(r,"lastRelease: alphanumeric{40}?"),b(a,"nextRelease: alphanumeric{40}?"),t.indexOf(e)!==0)throw new N("dir: Must be inside cwd",t);if(t===e)throw new N("dir: Must not be equal to cwd",t);const i=await Re("git",["rev-parse","--show-toplevel"],{cwd:e});Object.assign(Q.fields,{committerDate:{key:"ci",type:Date},gitTags:"d",hash:"H",message:"B"});const c=ue(i.stdout,t),p=s?["--first-parent",s]:[],o=(r?`${r}..`:"")+(a||"HEAD"),u=[...p,o,"--",c],g=Q.parse({_:u},{cwd:e,env:process.env}),n=await We(g);return n.forEach(l=>{l.message=l.message.trim(),l.gitTags=l.gitTags.trim()}),K("git log filter query: %o",u),K("filtered commits: %O",n),n},"getCommitsFiltered");var Je=Object.defineProperty,I=m((e,t)=>Je(e,"name",{value:t,configurable:!0}),"r$3");const Ge=I(e=>{if(!z(e))throw new ReferenceError(`package.json file not found: "${e}"`);let t;try{t=W(e)}catch{throw new ReferenceError(`package.json cannot be read: "${e}"`)}if(!t.isFile())throw new ReferenceError(`package.json is not a file: "${e}"`);try{return _e(e,"utf8")}catch{throw new ReferenceError(`package.json cannot be read: "${e}"`)}},"readManifest"),te=I(e=>{const t=Ge(e);let r;try{r=JSON.parse(t)}catch{throw new SyntaxError(`package.json could not be parsed: "${e}"`)}if(typeof r!="object"||r===null)throw new SyntaxError(`package.json was not an object: "${e}"`);if(typeof r.name!="string"||r.name.length===0)throw new SyntaxError(`Package name must be non-empty string: "${e}"`);const a=I(s=>{if(r.hasOwnProperty(s)&&typeof r[s]!="object")throw new SyntaxError(`Package ${s} must be object: "${e}"`)},"checkDeps");return a("dependencies"),a("devDependencies"),a("peerDependencies"),a("optionalDependencies"),Object.defineProperty(r,"__contents__",{enumerable:!1,value:t}),r},"default");var Qe=Object.defineProperty,re=m((e,t)=>Qe(e,"name",{value:t,configurable:!0}),"r$2");const Ue=re((e,t,r)=>e&&t&&r?e(t,r)?t:r:t||r,"_selectVersionBy"),Ke=Ue.bind(null,Pe),Xe=re((e,t)=>e.filter(r=>t||!xe(r)).sort(ke)[0],"getLatestVersion");var Ye=Object.defineProperty,Ze=m((e,t)=>Ye(e,"name",{value:t,configurable:!0}),"e$1");const et=Ze(e=>({indent:Oe(e).indent,trailingWhitespace:De(e)||""}),"recognizeFormat");var tt=Object.defineProperty,$=m((e,t)=>tt(e,"name",{value:t,configurable:!0}),"o$2");const{debug:F}=h.withScope("msr:updateDeps"),rt=$((e,t,r)=>{const a=e?P.inc(e,"prerelease",r):null,s=P.inc(t,"prerelease",r);return a?Ke(s,a):s},"_nextPreHighestVersion"),st=$((e,t,r,a)=>{if(!P.prerelease(t)){const i=P.parse(t);if(!i)return;const{major:c,minor:p,patch:o}=i;return`${P.inc(`${c}.${p}.${o}`,r||"patch")}-${a}.1`}const s=Xe(e,!0);return rt(s,t,a)},"_nextPreVersionCases"),nt=$((e,t,r,a,s)=>{const i=["patch","minor","major"],{localDeps:c,manifest:p={}}=e,o=e._lastRelease?.version,{dependencies:u={},devDependencies:g={},optionalDependencies:n={},peerDependencies:l={}}=p,f=[u,g,l,n],k=$((y,d,v)=>{const w=y[d];if(!v||!w)return!1;const O=dt(w,v,t,s);return w!==O?(y[d]=O,!0):!1},"bumpDependency");return c.filter(y=>!a.includes(y)).reduce((y,d)=>{const v=ne(d,t,r,[...a,e],s),w=v?d._preRelease?lt(d):ot(d):d._lastRelease?.version;return f.reduce((O,T)=>k(T,d.name,w)||O,!o)&&i.indexOf(v)>i.indexOf(y)?v:y},void 0)},"getDependentRelease"),at=$((e,t)=>{if(e.startsWith("workspace:")){const r=/^workspace:(([\^~*])?.*)$/u.exec(e);if(!r)return e;const[,a,s]=r;return s===a?s==="*"?t:s+t:a}return e},"substituteWorkspaceVersion"),se=$((e,t)=>fe(e,(r,a,s)=>{ve(a,t[s])||(r[s]=J(a)&&J(t[s])?se(a,t[s]):`${t[s]} → ${a}`)}),"difference"),it=$((e,t)=>{const r=`[${e.name}]`,a=te(t),s=["dependencies","devDependencies","peerDependencies","optionalDependencies"].reduce((i,c)=>{const p=se(e[c],a[c]);return Object.keys(p).length>0&&(i[c]=p),i},{});return F(r,"package.json path=",t),Object.keys(s).length>0?(F(r,"changes=",s),!0):(F(r,"no deps changes"),!1)},"auditManifestChanges"),ot=$(e=>{const t=e._lastRelease?.version;return t&&typeof e._nextType=="string"?P.inc(t,e._nextType):t||"1.0.0"},"getNextVersion"),ct=$(e=>{const t=P.parse(e);return t&&t.prerelease[0]||null},"getPreReleaseTag"),lt=$(e=>{const t=e._lastRelease?.version,r=ct(t||"");return r!==null&&r!==e._preRelease||!t?`1.0.0-${e._preRelease}.1`:st([],t||"",e._nextType||"patch",e._preRelease||"")},"getNextPreVersion"),ne=$((e,t="override",r="patch",a=[],s="")=>{const i=nt(e,t,r,a,s);if(e._nextType)return e._nextType;if(i)return e._nextType=r==="inherit"?i:r,e._nextType},"resolveReleaseType"),dt=$((e,t,r="override",a="")=>{if(e=at(e,t),r==="ignore"||e===t||(r==="satisfy"||r==="inherit")&&P.satisfies(t,e))return e;if(r==="inherit"){const s=t.split(".");return e.split(".").map((i,c)=>s[c]?i.replace(/\d+/u,s[c]):i).join(".")}return a+t},"resolveNextVersion"),pt=$(e=>{const{manifest:t,path:r}=e,{indent:a,trailingWhitespace:s}=et(t.__contents__);t.version=e._nextRelease.version||t.version,e.localDeps.forEach(i=>{const c=i._nextRelease||i._lastRelease;if(!c||!c.version)throw new Error(`Cannot release ${e.name} because dependency ${i.name} has not been released yet`)}),it(t,r)&&je(r,JSON.stringify(t,null,a)+s)},"updateManifestDeps");var ut=Object.defineProperty,D=m((e,t)=>ut(e,"name",{value:t,configurable:!0}),"t$1");const{debug:R}=h.withScope("msr:inlinePlugin"),gt=D((e,t,r)=>{const{cwd:a}=t;return D(s=>{const{dir:i,name:c,plugins:p}=s,o=`[${c}]`,u={analyzeCommits:D(async(g,n)=>{s._preRelease=n.branch.prerelease||null,s._branch=n.branch.name;const l=r.firstParent?n.branch.name:void 0;return n.commits=await B(a,i,n.lastRelease?n.lastRelease.gitHead:void 0,n.nextRelease?n.nextRelease.gitHead:void 0,l),s._lastRelease=n.lastRelease,s._nextType=await p.analyzeCommits(n),s._analyzed=!0,s._nextType=ne(s,r.deps.bump,r.deps.release,[],r.deps.prefix),R(o,"commits analyzed"),R(o,`release type: ${s._nextType}`),s._nextType},"analyzeCommits"),generateNotes:D(async(g,n)=>{s._nextRelease=n.nextRelease;const l=[];n.lastRelease&&n.lastRelease.gitTag&&(!n.lastRelease.gitHead||n.lastRelease.gitHead===n.lastRelease.gitTag)&&(n.lastRelease.gitHead=we(n.lastRelease.gitTag,{cwd:n.cwd,env:n.env}));const f=r.firstParent?n.branch.name:void 0;n.commits=await B(a,i,n.lastRelease?n.lastRelease.gitHead:void 0,n.nextRelease?n.nextRelease.gitHead:void 0,f);const k=await p.generateNotes(n);k&&l.push(k.replace(/^(#+) (\[?\d+\.\d+\.\d+\]?)/u,`$1 ${c} $2`));const y=s.localDeps.filter(d=>d._nextRelease);if(y.length>0){l.push("### Dependencies");const d=y.map(v=>`* **${v.name}:** upgraded to ${v._nextRelease.version}`);l.push(d.join(`
2
+ `))}return R(o,"notes generated"),l.join(`
3
+
4
+ `)},"generateNotes"),prepare:D(async(g,n)=>{if(r.dryRun){R(o,"skipping prepare in dry-run mode");return}pt(s),s._depsUpdated=!0;const l=r.firstParent?n.branch.name:void 0;n.commits=await B(a,i,n.lastRelease?n.lastRelease.gitHead:void 0,n.nextRelease?n.nextRelease.gitHead:void 0,l);const f=await p.prepare(n);return s._prepared=!0,R(o,"prepared"),f},"prepare"),publish:D(async(g,n)=>{if(r.dryRun)return R(o,"skipping publish in dry-run mode"),[];const l=await p.publish(n);return s._published=!0,R(o,"published"),l.length>0?l[0]:{}},"publish"),verifyConditions:D(async(g,n)=>{Object.assign(n.options,n.options._pkgOptions),Object.assign(s.fakeLogger,n.logger);const l=await p.verifyConditions(n);return s._ready=!0,R(o,"verified conditions"),l},"verifyConditions")};return Object.keys(u).forEach(g=>Reflect.defineProperty(u[g],"pluginName",{enumerable:!0,value:"Inline plugin",writable:!1})),R(o,"inlinePlugin created"),u},"createInlinePlugin")},"createInlinePluginCreator");var mt=Object.defineProperty,ft=m((e,t)=>mt(e,"name",{value:t,configurable:!0}),"n$1");const _="release",vt=["package.json",`.${_}rc`,`.${_}rc.json`,`.${_}rc.yaml`,`.${_}rc.yml`,`.${_}rc.js`,`.${_}rc.cjs`,`.${_}rc.mjs`,`${_}.config.js`,`${_}.config.cjs`,`${_}.config.mjs`],ae=ft(async e=>(await ee(_,{mergeSearchPlaces:!1,searchPlaces:vt}).search(e))?.config??{},"default");var ht=Object.defineProperty,ie=m((e,t)=>ht(e,"name",{value:t,configurable:!0}),"r");const X=ie(e=>e==null,"isNil"),H=ie((e={},t={})=>({...e,...G(t,r=>!X(r)),deps:{...e.deps,...G(t.deps,r=>!X(r))},ignorePackages:[...new Set([...L(e.ignorePackages||[]),...L(t.ignorePackages||[])])]}),"mergeConfig");var bt=Object.defineProperty,yt=m((e,t)=>bt(e,"name",{value:t,configurable:!0}),"o");const j="multi-release",$t=["package.json",`.${j}rc`,`.${j}rc.json`,`.${j}rc.yaml`,`.${j}rc.yml`,`.${j}rc.js`,`.${j}rc.cjs`,`.${j}rc.mjs`,`${j}.config.js`,`${j}.config.cjs`,`${j}.config.mjs`],wt=yt(async(e,t)=>{const{config:r}=await ee(j,{searchPlaces:$t}).search(e)||{},{extends:a,...s}={...r};let i=s;if(a){const c=Se(import.meta.url),p=L(a).reduce((o,u)=>{const g=c(Te(e,u));return H(o,g)},{});i=H(i,p)}return i=H({branches:void 0,ci:void 0,debug:!1,deps:{bump:"override",prefix:"",release:"patch"},dryRun:void 0,firstParent:!1,ignorePackages:[],ignorePrivate:!0,sequentialInit:!1,sequentialPrepare:!0,silent:!1,tagFormat:"${name}@${version}"},i),H(i,t)},"default");var _t=Object.defineProperty,jt=m((e,t)=>_t(e,"name",{value:t,configurable:!0}),"n");const{Signale:Rt}=Z,Pt=jt(async({cwd:e,env:t,stderr:r,stdout:a},s)=>{try{const i=new Rt({stream:new Ce});return await Ee({cwd:e,env:t,logger:i,stderr:r,stdout:a},s)}catch(i){throw h.failure("Error in semantic-release getConfig(): %0",i),i}},"getConfigSemantic");var xt=Object.defineProperty,kt=m((e,t)=>xt(e,"name",{value:t,configurable:!0}),"i");class Y extends Ne{static{m(this,"m")}static{kt(this,"RescopedStream")}_stream;_scope;constructor(t,r){super(),b(r,"scope: string"),b(t,"stream: stream"),this._stream=t,this._scope=r}write(t){b(t,"msg: string"),this._stream.write(t.replace("[semantic-release]",`[${this._scope}]`))}}var Ot=Object.defineProperty,V=m((e,t)=>Ot(e,"name",{value:t,configurable:!0}),"v");const Dt=V(async(e,{cwd:t,env:r,globalOptions:a,inputOptions:s,stderr:i,stdout:c})=>{e=E(e,t);const p=ge(e),o=te(e),{name:u}=o,g=Object.keys({...o.dependencies,...o.devDependencies,...o.peerDependencies,...o.optionalDependencies}),n=await ae(p),l={...a,...n,...s},f={error(){},log(){}},{options:k,plugins:y}=await Pt({cwd:p,env:r,stderr:i,stdout:c},l);return{deps:g,dir:p,fakeLogger:f,manifest:o,name:u,options:k,path:e,plugins:y}},"getPackage"),St=V(async(e,t,r,a)=>{const{dir:s,name:i,options:c}=e,{env:p,stderr:o,stdout:u}=r,g=t(e),n={...c,...g},l={name:i,version:"${version}"},f="${name}@${version}";return n.tagFormat=be(a.tagFormat||f)(l),n.debug=a.debug,n.dryRun=a.dryRun===void 0?n.dryRun:a.dryRun,n.ci=a.ci===void 0?n.ci:a.ci,n.branches=a.branches?L(a.branches):n.branches,n._pkgOptions=c,e.result=await ye(n,{cwd:s,env:p,stderr:new Y(o,i),stdout:new Y(u,i)}),e},"releasePackage"),Wt=V(async(e,t={},{cwd:r=process.cwd(),env:a=process.env,stderr:s=process.stderr,stdout:i=process.stdout}={},c={})=>{e&&b(e,"paths: string[]"),b(r,"cwd: directory"),b(a,"env: objectlike"),b(i,"stdout: stream"),b(s,"stderr: stream"),r=E(r);const p=await wt(r,c),o={deps:{},...p};h.config.stdio=[s,i],h.config.level=o.logLevel,o.silent&&(h.config.level="silent"),o.debug&&(h.config.level="debug"),h.info(`multi-semantic-release version: ${Le.version}`),h.info(`semantic-release version: ${$e.version}`),o.debug&&h.info(`flags: ${JSON.stringify(o,null,2)}`);const u=await ae(r),g={cwd:r,env:a,globalOptions:u,inputOptions:t,stderr:s,stdout:i},{packages:n,queue:l}=await me({cwd:r,filter:V(({manifest:d,manifestAbsPath:v,manifestRelPath:w})=>(!o.ignorePrivate||!d.private)&&(e?e.includes(v)||e.includes(w):!0),"filter"),workspacesExtra:Array.isArray(o.ignorePackages)?o.ignorePackages.map(d=>`!${d}`):[]});e=e||Object.values(n).map(d=>d.manifestPath),h.complete(`Started multirelease! Loading ${e.length} packages...`);const f=await Promise.all(e.map(d=>Dt(d,g)));f.forEach(d=>{d.localDeps=[...new Set(d.deps.map(v=>f.find(w=>v===w.name)).filter(Boolean))],h.success(`Loaded package ${d.name}`)}),h.complete(`Queued ${l.length} packages! Starting release...`);const k=gt(f,g,o),y=await l.reduce(async(d,v)=>{const w=await d,O=f.find(({name:T})=>T===v);if(O){const{result:T}=await St(O,k,g,o);if(T)return w+1}return w},Promise.resolve(0));return h.complete(`Released ${y} of ${l.length} packages, semantically!`),he(f,({name:d})=>l.indexOf(d))},"multiSemanticRelease");export{h as d,Wt as q};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anolilab/multi-semantic-release",
3
- "version": "3.0.0-alpha.2",
3
+ "version": "3.0.0-alpha.3",
4
4
  "description": "A multi semantic release tool for a monorepo.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,4 +0,0 @@
1
- var ie=Object.defineProperty;var f=(e,t)=>ie(e,"name",{value:t,configurable:!0});import{createRequire as ce}from"node:module";import{topo as me}from"@semrel-extra/topo";import{transform as fe,isEqual as ve,isObject as I,pickBy as J,castArray as H,sortBy as be,template as he}from"lodash-es";import ye from"semantic-release";import $e from"semantic-release/package.json"with{type:"json"};import{getTagHead as we}from"semantic-release/lib/git.js";import{execa as Re}from"execa";import Oe from"detect-indent";import{detectNewline as De}from"detect-newline";import Ee from"semantic-release/lib/get-config.js";const R=ce(import.meta.url),V=f(e=>{if(process.versions?.node){const[t,r]=process.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return process.getBuiltinModule(e)}return R(e)},"__cjs_getBuiltinModule"),Ct=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{normalize:le,join:de,isAbsolute:pe,relative:ue,dirname:ge}=V("node:path"),{existsSync:F,lstatSync:z,readFileSync:_e,writeFileSync:je}=V("node:fs"),G=R("git-log-parser"),E=R("debug"),Y=R("signale"),{check:h,ValueError:C}=R("blork"),j=R("semver"),{gt:Pe,prerelease:xe,rcompare:ke}=j,{cosmiconfig:Z}=R("cosmiconfig"),{createRequire:Te}=V("node:module"),Se=R("resolve-from"),{WritableStreamBuffer:Ce}=R("stream-buffers"),{Writable:Ne}=V("node:stream"),He="3.0.0-alpha.1",Le={version:He};var Ve=Object.defineProperty,Me=f((e,t)=>Ve(e,"name",{value:t,configurable:!0}),"i$4");const{Signale:qe}=Y,W=["error","warn","info","debug","trace"],M=Me((e,t)=>W.indexOf(e)<=W.indexOf(t),"assertLevel"),Q={complete:"info",failure:"error",log:"info",success:"info"},b={config:{_level:"info",_signale:{},_stderr:process.stderr,_stdout:process.stdout,set level(e){e&&(M(e,"debug")&&E.enable("msr:"),M(e,"trace")&&E.enable("semantic-release:"),this._level=e)},get level(){return this._level},set stdio([e,t]){this._stdout=t,this._stderr=e,this._signale=new qe({config:{displayLabel:!1,displayTimestamp:!0},stream:t,types:{complete:{badge:"🎉",color:"green",label:"",stream:[t]},error:{color:"red",label:"",stream:[e]},log:{badge:"•",color:"magenta",label:"",stream:[t]},success:{color:"green",label:"",stream:[t]}}})},get stdio(){return[this._stderr,this._stdout]}},prefix:"msr:",withScope(e){return{...this,debug:E(e||this.prefix),prefix:e}},...[...W,...Object.keys(Q)].reduce((e,t)=>(e[t]=function(...r){M(Q[t]||t,this.config.level)&&(this.config._signale[t]||console[t]||(()=>{}))(this.prefix,...r)},e),{}),debug:E("msr:")};var Be=Object.defineProperty,Fe=f((e,t)=>Be(e,"name",{value:t,configurable:!0}),"o$4");const S=Fe((e,t=process.cwd())=>(h(e,"path: path"),h(t,"cwd: absolute"),le(pe(e)?e:de(t,e)).replace(/[/\\]+$/u,"")),"cleanPath");var ze=Object.defineProperty,T=f((e,t)=>ze(e,"name",{value:t,configurable:!0}),"o$3");const We=T(e=>e.readable?new Promise((t,r)=>{if(!e.readable){t([]);return}let n=[];const s=T(()=>{n=[],e.removeListener("data",o),e.removeListener("end",c),e.removeListener("error",i),e.removeListener("close",d)},"cleanup"),o=T(u=>{n.push(u)},"onData"),c=T(()=>{t(n),s()},"onEnd"),i=T(u=>{r(u),s()},"onError"),d=T(()=>{t(n),s()},"onClose");e.on("data",o),e.on("end",c),e.on("error",i),e.on("close",d)}):Promise.resolve([]),"default");var Ae=Object.defineProperty,Ie=f((e,t)=>Ae(e,"name",{value:t,configurable:!0}),"f");const{debug:U}=b.withScope("msr:commitsFilter"),q=Ie(async(e,t,r,n,s)=>{if(h(e,"cwd: directory"),!F(e)||!z(e).isDirectory())throw new C("cwd: Must be an absolute path to an existing directory",e);if(h(t,"dir: path"),t=S(t,e),!F(t)||!z(t).isDirectory())throw new C("dir: Must be a path to an existing directory",t);if(e=S(e),t=S(t,e),h(t,"dir: directory"),h(r,"lastRelease: alphanumeric{40}?"),h(n,"nextRelease: alphanumeric{40}?"),t.indexOf(e)!==0)throw new C("dir: Must be inside cwd",t);if(t===e)throw new C("dir: Must not be equal to cwd",t);const o=await Re("git",["rev-parse","--show-toplevel"],{cwd:e});Object.assign(G.fields,{committerDate:{key:"ci",type:Date},gitTags:"d",hash:"H",message:"B"});const c=ue(o.stdout,t),i=s?["--first-parent",s]:[],d=(r?`${r}..`:"")+(n||"HEAD"),u=[...i,d,"--",c],m=G.parse({_:u},{cwd:e,env:process.env}),a=await We(m);return a.forEach(l=>{l.message=l.message.trim(),l.gitTags=l.gitTags.trim()}),U("git log filter query: %o",u),U("filtered commits: %O",a),a},"getCommitsFiltered");var Je=Object.defineProperty,A=f((e,t)=>Je(e,"name",{value:t,configurable:!0}),"r$2");const Ge=A(e=>{if(!F(e))throw new ReferenceError(`package.json file not found: "${e}"`);let t;try{t=z(e)}catch{throw new ReferenceError(`package.json cannot be read: "${e}"`)}if(!t.isFile())throw new ReferenceError(`package.json is not a file: "${e}"`);try{return _e(e,"utf8")}catch{throw new ReferenceError(`package.json cannot be read: "${e}"`)}},"readManifest"),ee=A(e=>{const t=Ge(e);let r;try{r=JSON.parse(t)}catch{throw new SyntaxError(`package.json could not be parsed: "${e}"`)}if(typeof r!="object"||r===null)throw new SyntaxError(`package.json was not an object: "${e}"`);if(typeof r.name!="string"||r.name.length===0)throw new SyntaxError(`Package name must be non-empty string: "${e}"`);const n=A(s=>{if(r.hasOwnProperty(s)&&typeof r[s]!="object")throw new SyntaxError(`Package ${s} must be object: "${e}"`)},"checkDeps");return n("dependencies"),n("devDependencies"),n("peerDependencies"),n("optionalDependencies"),Object.defineProperty(r,"__contents__",{enumerable:!1,value:t}),r},"default");var Qe=Object.defineProperty,te=f((e,t)=>Qe(e,"name",{value:t,configurable:!0}),"r$1");const Ue=te((e,t,r)=>e&&t&&r?e(t,r)?t:r:t||r,"_selectVersionBy"),Ke=Ue.bind(null,Pe),Xe=te((e,t)=>e.filter(r=>t||!xe(r)).sort(ke)[0],"getLatestVersion");var Ye=Object.defineProperty,Ze=f((e,t)=>Ye(e,"name",{value:t,configurable:!0}),"e$1");const et=Ze(e=>({indent:Oe(e).indent,trailingWhitespace:De(e)||""}),"recognizeFormat");var tt=Object.defineProperty,y=f((e,t)=>tt(e,"name",{value:t,configurable:!0}),"o$2");const{debug:B}=b.withScope("msr:updateDeps"),rt=y((e,t,r)=>{const n=e?j.inc(e,"prerelease",r):null,s=j.inc(t,"prerelease",r);return n?Ke(s,n):s},"_nextPreHighestVersion"),st=y((e,t,r,n)=>{if(!j.prerelease(t)){const o=j.parse(t);if(!o)return;const{major:c,minor:i,patch:d}=o;return`${j.inc(`${c}.${i}.${d}`,r||"patch")}-${n}.1`}const s=Xe(e,!0);return rt(s,t,n)},"_nextPreVersionCases"),at=y((e,t,r,n,s)=>{const o=["patch","minor","major"],{localDeps:c,manifest:i={}}=e,d=e._lastRelease?.version,{dependencies:u={},devDependencies:m={},optionalDependencies:a={},peerDependencies:l={}}=i,$=[u,m,l,a],P=y((p,g,v)=>{const x=p[g];if(!v||!x)return!1;const k=dt(x,v,t,s);return x!==k?(p[g]=k,!0):!1},"bumpDependency");return c.filter(p=>!n.includes(p)).reduce((p,g)=>{const v=se(g,t,r,[...n,e],s),x=v?g._preRelease?lt(g):it(g):g._lastRelease?.version;return $.reduce((k,oe)=>P(oe,g.name,x)||k,!d)&&o.indexOf(v)>o.indexOf(p)?v:p},void 0)},"getDependentRelease"),nt=y((e,t)=>{if(e.startsWith("workspace:")){const r=/^workspace:(([\^~*])?.*)$/u.exec(e);if(!r)return e;const[,n,s]=r;return s===n?s==="*"?t:s+t:n}return e},"substituteWorkspaceVersion"),re=y((e,t)=>fe(e,(r,n,s)=>{ve(n,t[s])||(r[s]=I(n)&&I(t[s])?re(n,t[s]):`${t[s]} → ${n}`)}),"difference"),ot=y((e,t)=>{const r=`[${e.name}]`,n=ee(t),s=["dependencies","devDependencies","peerDependencies","optionalDependencies"].reduce((o,c)=>{const i=re(e[c],n[c]);return Object.keys(i).length>0&&(o[c]=i),o},{});return B(r,"package.json path=",t),Object.keys(s).length>0?(B(r,"changes=",s),!0):(B(r,"no deps changes"),!1)},"auditManifestChanges"),it=y(e=>{const t=e._lastRelease?.version;return t&&typeof e._nextType=="string"?j.inc(t,e._nextType):t||"1.0.0"},"getNextVersion"),ct=y(e=>{const t=j.parse(e);return t&&t.prerelease[0]||null},"getPreReleaseTag"),lt=y(e=>{const t=e._lastRelease?.version,r=ct(t||"");return r!==null&&r!==e._preRelease||!t?`1.0.0-${e._preRelease}.1`:st([],t||"",e._nextType||"patch",e._preRelease||"")},"getNextPreVersion"),se=y((e,t="override",r="patch",n=[],s="")=>{const o=at(e,t,r,n,s);if(e._nextType)return e._nextType;if(o)return e._nextType=r==="inherit"?o:r,e._nextType},"resolveReleaseType"),dt=y((e,t,r="override",n="")=>{if(e=nt(e,t),r==="ignore"||e===t||(r==="satisfy"||r==="inherit")&&j.satisfies(t,e))return e;if(r==="inherit"){const s=t.split(".");return e.split(".").map((o,c)=>s[c]?o.replace(/\d+/u,s[c]):o).join(".")}return n+t},"resolveNextVersion"),pt=y(e=>{const{manifest:t,path:r}=e,{indent:n,trailingWhitespace:s}=et(t.__contents__);t.version=e._nextRelease.version||t.version,e.localDeps.forEach(o=>{const c=o._nextRelease||o._lastRelease;if(!c||!c.version)throw new Error(`Cannot release ${e.name} because dependency ${o.name} has not been released yet`)}),ot(t,r)&&je(r,JSON.stringify(t,null,n)+s)},"updateManifestDeps");var ut=Object.defineProperty,O=f((e,t)=>ut(e,"name",{value:t,configurable:!0}),"i$1");const{debug:D}=b.withScope("msr:inlinePlugin"),gt=O((e,t,r)=>{const{cwd:n}=t;return O(s=>{const{dir:o,name:c,plugins:i}=s,d=`[${c}]`,u={analyzeCommits:O(async(m,a)=>{s._preRelease=a.branch.prerelease||null,s._branch=a.branch.name;const l=r.firstParent?a.branch.name:void 0;return a.commits=await q(n,o,a.lastRelease?a.lastRelease.gitHead:void 0,a.nextRelease?a.nextRelease.gitHead:void 0,l),s._lastRelease=a.lastRelease,s._nextType=await i.analyzeCommits(a),s._analyzed=!0,s._nextType=se(s,r.deps.bump,r.deps.release,[],r.deps.prefix),D(d,"commits analyzed"),D(d,`release type: ${s._nextType}`),s._nextType},"analyzeCommits"),generateNotes:O(async(m,a)=>{s._nextRelease=a.nextRelease;const l=[];a.lastRelease&&a.lastRelease.gitTag&&(!a.lastRelease.gitHead||a.lastRelease.gitHead===a.lastRelease.gitTag)&&(a.lastRelease.gitHead=we(a.lastRelease.gitTag,{cwd:a.cwd,env:a.env}));const $=r.firstParent?a.branch.name:void 0;a.commits=await q(n,o,a.lastRelease?a.lastRelease.gitHead:void 0,a.nextRelease?a.nextRelease.gitHead:void 0,$);const P=await i.generateNotes(a);P&&l.push(P.replace(/^(#+) (\[?\d+\.\d+\.\d+\]?)/u,`$1 ${c} $2`));const p=s.localDeps.filter(g=>g._nextRelease);if(p.length>0){l.push("### Dependencies");const g=p.map(v=>`* **${v.name}:** upgraded to ${v._nextRelease.version}`);l.push(g.join(`
2
- `))}return D(d,"notes generated"),l.join(`
3
-
4
- `)},"generateNotes"),prepare:O(async(m,a)=>{pt(s),s._depsUpdated=!0;const l=r.firstParent?a.branch.name:void 0;a.commits=await q(n,o,a.lastRelease?a.lastRelease.gitHead:void 0,a.nextRelease?a.nextRelease.gitHead:void 0,l);const $=await i.prepare(a);return s._prepared=!0,D(d,"prepared"),$},"prepare"),publish:O(async(m,a)=>{const l=await i.publish(a);return s._published=!0,D(d,"published"),l.length>0?l[0]:{}},"publish"),verifyConditions:O(async(m,a)=>{Object.assign(a.options,a.options._pkgOptions),Object.assign(s.fakeLogger,a.logger);const l=await i.verifyConditions(a);return s._ready=!0,D(d,"verified conditions"),l},"verifyConditions")};return Object.keys(u).forEach(m=>Reflect.defineProperty(u[m],"pluginName",{enumerable:!0,value:"Inline plugin",writable:!1})),D(d,"inlinePlugin created"),u},"createInlinePlugin")},"createInlinePluginCreator");var mt=Object.defineProperty,ft=f((e,t)=>mt(e,"name",{value:t,configurable:!0}),"n$1");const w="release",vt=["package.json",`.${w}rc`,`.${w}rc.json`,`.${w}rc.yaml`,`.${w}rc.yml`,`.${w}rc.js`,`.${w}rc.cjs`,`.${w}rc.mjs`,`${w}.config.js`,`${w}.config.cjs`,`${w}.config.mjs`],ae=ft(async e=>(await Z(w,{mergeSearchPlaces:!1,searchPlaces:vt}).search(e))?.config??{},"default");var bt=Object.defineProperty,ne=f((e,t)=>bt(e,"name",{value:t,configurable:!0}),"r");const K=ne(e=>e==null,"isNil"),N=ne((e={},t={})=>({...e,...J(t,r=>!K(r)),deps:{...e.deps,...J(t.deps,r=>!K(r))},ignorePackages:[...new Set([...H(e.ignorePackages||[]),...H(t.ignorePackages||[])])]}),"mergeConfig");var ht=Object.defineProperty,yt=f((e,t)=>ht(e,"name",{value:t,configurable:!0}),"o");const _="multi-release",$t=["package.json",`.${_}rc`,`.${_}rc.json`,`.${_}rc.yaml`,`.${_}rc.yml`,`.${_}rc.js`,`.${_}rc.cjs`,`.${_}rc.mjs`,`${_}.config.js`,`${_}.config.cjs`,`${_}.config.mjs`],wt=yt(async(e,t)=>{const{config:r}=await Z(_,{searchPlaces:$t}).search(e)||{},{extends:n,...s}={...r};let o=s;if(n){const c=Te(import.meta.url),i=H(n).reduce((d,u)=>{const m=c(Se(e,u));return N(d,m)},{});o=N(o,i)}return o=N({branches:void 0,ci:void 0,debug:!1,deps:{bump:"override",prefix:"",release:"patch"},dryRun:void 0,firstParent:!1,ignorePackages:[],ignorePrivate:!0,sequentialInit:!1,sequentialPrepare:!0,silent:!1,tagFormat:"${name}@${version}"},o),N(o,t)},"default");var _t=Object.defineProperty,jt=f((e,t)=>_t(e,"name",{value:t,configurable:!0}),"n");const{Signale:Rt}=Y,Pt=jt(async({cwd:e,env:t,stderr:r,stdout:n},s)=>{try{const o=new Rt({stream:new Ce});return await Ee({cwd:e,env:t,logger:o,stderr:r,stdout:n},s)}catch(o){throw b.failure("Error in semantic-release getConfig(): %0",o),o}},"getConfigSemantic");var xt=Object.defineProperty,kt=f((e,t)=>xt(e,"name",{value:t,configurable:!0}),"i");class X extends Ne{static{f(this,"m")}static{kt(this,"RescopedStream")}_stream;_scope;constructor(t,r){super(),h(r,"scope: string"),h(t,"stream: stream"),this._stream=t,this._scope=r}write(t){h(t,"msg: string"),this._stream.write(t.replace("[semantic-release]",`[${this._scope}]`))}}var Ot=Object.defineProperty,L=f((e,t)=>Ot(e,"name",{value:t,configurable:!0}),"v");const Dt=L(async(e,{cwd:t,env:r,globalOptions:n,inputOptions:s,stderr:o,stdout:c})=>{e=S(e,t);const i=ge(e),d=ee(e),{name:u}=d,m=Object.keys({...d.dependencies,...d.devDependencies,...d.peerDependencies,...d.optionalDependencies}),a=await ae(i),l={...n,...a,...s},$={error(){},log(){}},{options:P,plugins:p}=await Pt({cwd:i,env:r,stderr:o,stdout:c},l);return{deps:m,dir:i,fakeLogger:$,manifest:d,name:u,options:P,path:e,plugins:p}},"getPackage"),Tt=L(async(e,t,r,n)=>{const{dir:s,name:o,options:c}=e,{env:i,stderr:d,stdout:u}=r,m=t(e),a={...c,...m},l={name:o,version:"${version}"},$="${name}@${version}";return a.tagFormat=he(n.tagFormat||$)(l),a.debug=n.debug,a.dryRun=n.dryRun===void 0?a.dryRun:n.dryRun,a.ci=n.ci===void 0?a.ci:n.ci,a.branches=n.branches?H(n.branches):a.branches,a._pkgOptions=c,e.result=await ye(a,{cwd:s,env:i,stderr:new X(d,o),stdout:new X(u,o)}),e},"releasePackage"),Wt=L(async(e,t={},{cwd:r=process.cwd(),env:n=process.env,stderr:s=process.stderr,stdout:o=process.stdout}={},c={})=>{e&&h(e,"paths: string[]"),h(r,"cwd: directory"),h(n,"env: objectlike"),h(o,"stdout: stream"),h(s,"stderr: stream"),r=S(r);const i={deps:{},...await wt(r,c)};b.config.stdio=[s,o],b.config.level=i.logLevel,i.silent&&(b.config.level="silent"),i.debug&&(b.config.level="debug"),b.info(`multi-semantic-release version: ${Le.version}`),b.info(`semantic-release version: ${$e.version}`),i.debug&&b.info(`flags: ${JSON.stringify(i,null,2)}`);const d=await ae(r),u={cwd:r,env:n,globalOptions:d,inputOptions:t,stderr:s,stdout:o},{packages:m,queue:a}=await me({cwd:r,filter:L(({manifest:p,manifestAbsPath:g,manifestRelPath:v})=>(!i.ignorePrivate||!p.private)&&(e?e.includes(g)||e.includes(v):!0),"filter"),workspacesExtra:Array.isArray(i.ignorePackages)?i.ignorePackages.map(p=>`!${p}`):[]});e=e||Object.values(m).map(p=>p.manifestPath),b.complete(`Started multirelease! Loading ${e.length} packages...`);const l=await Promise.all(e.map(p=>Dt(p,u)));l.forEach(p=>{p.localDeps=[...new Set(p.deps.map(g=>l.find(v=>g===v.name)).filter(Boolean))],b.success(`Loaded package ${p.name}`)}),b.complete(`Queued ${a.length} packages! Starting release...`);const $=gt(l,u,i),P=await a.reduce(async(p,g)=>{const v=await p,x=l.find(({name:k})=>k===g);if(x){const{result:k}=await Tt(x,$,u,i);if(k)return v+1}return v},Promise.resolve(0));return b.complete(`Released ${P} of ${a.length} packages, semantically!`),be(l,({name:p})=>a.indexOf(p))},"multiSemanticRelease");export{Wt as B,b as d};