@anolilab/multi-semantic-release 3.0.0 → 3.2.0
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 +30 -0
- package/dist/bin/cli.js +1 -1
- package/dist/multi-semantic-release.d.ts +0 -4
- package/dist/multi-semantic-release.js +1 -1
- package/dist/packem_shared/multi-semantic-release-CHFf1OXQ.js +4 -0
- package/package.json +33 -5
- package/dist/packem_shared/multi-semantic-release-SqbO8bN1.js +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
## @anolilab/multi-semantic-release [3.2.0](https://github.com/anolilab/semantic-release/compare/@anolilab/multi-semantic-release@3.1.0...@anolilab/multi-semantic-release@3.2.0) (2025-12-04)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* enhanced OIDC context handling, added better debug logs ([#239](https://github.com/anolilab/semantic-release/issues/239)) ([2ae7ea5](https://github.com/anolilab/semantic-release/commit/2ae7ea5282d20254b96bbf768c2b1af2e868b6ae))
|
|
6
|
+
|
|
7
|
+
### Miscellaneous Chores
|
|
8
|
+
|
|
9
|
+
* enhance package.json keywords across multiple packages ([842cd32](https://github.com/anolilab/semantic-release/commit/842cd32acf48c34d3226b1b2d63e7cdecdeff6b7))
|
|
10
|
+
* enhance repository URL normalization in multi-semantic-release ([33d8cb7](https://github.com/anolilab/semantic-release/commit/33d8cb7f9d3f50a4586861837629866fe4c9f9ac))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Dependencies
|
|
14
|
+
|
|
15
|
+
* **@anolilab/semantic-release-clean-package-json:** upgraded to 4.2.0
|
|
16
|
+
* **@anolilab/semantic-release-pnpm:** upgraded to 3.2.0
|
|
17
|
+
|
|
18
|
+
## @anolilab/multi-semantic-release [3.1.0](https://github.com/anolilab/semantic-release/compare/@anolilab/multi-semantic-release@3.0.0...@anolilab/multi-semantic-release@3.1.0) (2025-11-25)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* add repository URL normalization utility and tests ([38dbe63](https://github.com/anolilab/semantic-release/commit/38dbe6344fad5dc88ea7ee84af14c9afb42c8f50))
|
|
23
|
+
* Included checks to confirm that explicit repository URLs in configuration options are preserved without modification. ([98997fd](https://github.com/anolilab/semantic-release/commit/98997fdfec1c22bcfd49d71d9cba2456bbbf9d78))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Dependencies
|
|
27
|
+
|
|
28
|
+
* **@anolilab/semantic-release-clean-package-json:** upgraded to 4.1.0
|
|
29
|
+
* **@anolilab/semantic-release-pnpm:** upgraded to 3.1.0
|
|
30
|
+
|
|
1
31
|
## @anolilab/multi-semantic-release [3.0.0](https://github.com/anolilab/semantic-release/compare/@anolilab/multi-semantic-release@2.0.9...@anolilab/multi-semantic-release@3.0.0) (2025-11-20)
|
|
2
32
|
|
|
3
33
|
### ⚠ BREAKING CHANGES
|
package/dist/bin/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var l=Object.defineProperty;var n=(o,e)=>l(o,"name",{value:e,configurable:!0});import{createRequire as d}from"node:module";import g from"yargs";import{hideBin as b}from"yargs/helpers";import{
|
|
2
|
+
var l=Object.defineProperty;var n=(o,e)=>l(o,"name",{value:e,configurable:!0});import{createRequire as d}from"node:module";import g from"yargs";import{hideBin as b}from"yargs/helpers";import{z as f,u as s}from"../packem_shared/multi-semantic-release-CHFf1OXQ.js";const _=d(import.meta.url),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{exit:t}=u;var m=Object.defineProperty,y=n((o,e)=>m(o,"name",{value:e,configurable:!0}),"n");const a={array:!0,coerce:y(o=>{if(o.length===1&&o[0]?.trim()==="false")return[];const e=[];for(const i of o)e.push(...i.split(",").map(r=>r.trim()));return e},"coerce"),type:"array"};await(async()=>{const o=g(b(process.argv)).usage("$0 [args]").scriptName("multi-semantic-release").option("d",{alias:"dry-run",default:!1,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",...a,group:"Options"}).option("ci",{describe:"Toggle CI verifications",group:"Options",type:"boolean"}).option("ignore-packages",{...a,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 e=o.parse(process.argv.slice(2)),{help:i,version:r,...p}=e;(i||r)&&t(0),f(null,{},{},p).then(()=>{t(0)},c=>{s.error("[multi-semantic-release]:",c),t(1)})}catch(e){s.error("[multi-semantic-release]:",e),t(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{
|
|
1
|
+
import{createRequire as e}from"node:module";import"@semrel-extra/topo";import"debug";import"lodash-es";import"semantic-release";import"semantic-release/package.json"with{type:"json"};import{z as a}from"./packem_shared/multi-semantic-release-CHFf1OXQ.js";const t=e(import.meta.url),i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process;export{a as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var $e=Object.defineProperty;var b=(e,t)=>$e(e,"name",{value:t,configurable:!0});import{createRequire as je}from"node:module";import{topo as Te}from"@semrel-extra/topo";import W from"debug";import{transform as De,isEqual as Ee,isObject as X,pickBy as Z,castArray as H,sortBy as Ce,template as Se}from"lodash-es";import Me from"semantic-release";import Ne from"semantic-release/package.json"with{type:"json"};import{execa as ae}from"execa";import{getTagHead as Ae}from"semantic-release/lib/git.js";import ee from"git-log-parser";import oe from"signale";import{WritableStreamBuffer as ce}from"stream-buffers";import $,{gt as He,prerelease as Le,rcompare as qe}from"semver";import ze from"detect-indent";import{detectNewline as Be}from"detect-newline";import{isAccessibleSync as le,readJson as Ue}from"@visulima/fs";import{readYamlSync as We}from"@visulima/fs/yaml";import{resolve as pe}from"@visulima/path";import{cosmiconfig as de}from"cosmiconfig";import Je from"resolve-from";import Ge from"semantic-release/lib/get-config.js";const _e=je(import.meta.url),A=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,q=b(e=>{if(typeof A<"u"&&A.versions&&A.versions.node){const[t,r]=A.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return A.getBuiltinModule(e)}return _e(e)},"__cjs_getBuiltinModule"),{isAbsolute:K,normalize:ke,join:Oe,parse:Re,relative:xe,dirname:Pe}=q("node:path"),{existsSync:Y,lstatSync:Q,readFileSync:Ve,writeFileSync:Fe}=q("node:fs"),{Writable:ie}=q("node:stream"),{createRequire:Ie}=q("node:module");var Ke="3.1.0";const Ye={version:Ke};var Qe=Object.defineProperty,Xe=b((e,t)=>Qe(e,"name",{value:t,configurable:!0}),"t$4");const{Signale:Ze}=oe,I=["error","warn","info","debug","trace"],et=Xe((e,t)=>{const r=I.indexOf(e),n=I.indexOf(t);return r!==-1&&n!==-1&&r<=n},"assertLevel"),te={complete:"info",failure:"error",log:"info",success:"info"},j={config:{_level:"info",_signale:{},_stderr:process.stderr,_stdout:process.stdout,set level(e){e&&(this._level=e)},get level(){return this._level},set stdio([e,t]){this._stdout=t,this._stderr=e,this._signale=new Ze({config:{displayLabel:!1,displayTimestamp:!0},stream:t,types:{complete:{badge:"🎉",color:"green",label:"",stream:[t]},error:{badge:"✖",color:"red",label:"",stream:[e]},log:{badge:"•",color:"magenta",label:"",stream:[t]},success:{badge:"✔",color:"green",label:"",stream:[t]}}})},get stdio(){return[this._stderr,this._stdout]}},prefix:"msr:",withScope(e){return{...this,debug:W(e||this.prefix),prefix:e}},...[...I,...Object.keys(te)].reduce((e,t)=>(e[t]=function(...r){et(te[t]||t,this.config.level)&&(this.config._signale[t]||console[t]||(()=>{}))(this.prefix,...r)},e),{}),debug:W("msr:")};var tt=Object.defineProperty,rt=b((e,t)=>tt(e,"name",{value:t,configurable:!0}),"t$3");class Ar extends Error{static{b(this,"ValueError")}static{rt(this,"ValueError")}constructor(t){super(t),this.name="ValueError"}}var st=Object.defineProperty,T=b((e,t)=>st(e,"name",{value:t,configurable:!0}),"t$2");const nt=T(e=>K(e)&&Y(e)&&Q(e).isDirectory(),"isDirectory"),at=T(e=>e instanceof ie||e instanceof ce,"isStream"),ot=T(e=>K(e),"isAbsolute"),it=T(e=>typeof e=="string"&&e.length>0,"isPath"),ct=T(e=>e!==null&&typeof e=="object"&&!Array.isArray(e),"isObjectLike"),lt=T(e=>e===void 0?!0:typeof e=="string"&&/^[a-f0-9]{40}$/i.test(e),"isAlphanumeric40"),pt=T(e=>typeof e=="string"&&e.length>0,"isStringPlus"),dt=T(e=>typeof e=="string"&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(e),"isKebab"),ut=T(e=>typeof e=="string"&&e===e.toLowerCase(),"isLower"),gt=T(e=>Number.isInteger(e),"isInteger"),k=T((e,t)=>{const[r,n]=t.split(":").map(i=>i.trim()),a=n?.endsWith("?"),o=a&&n?n.slice(0,-1):n;if(!(a&&e==null)){if(o?.endsWith("[]")){const i=o.slice(0,-2);if(!Array.isArray(e))throw new TypeError(`${r}: Must be an array`);for(const d of e)k(d,`${r}[item]: ${i}`);return}switch(o){case"absolute":{if(!(typeof e=="string"&&ot(e)))throw new TypeError(`${r}: Must be an absolute path`);break}case"alphanumeric{40}":{if(!lt(e))throw new TypeError(`${r}: Must be alphanumeric string with size 40 or empty`);break}case"directory":{if(!(typeof e=="string"&&nt(e)))throw new TypeError(`${r}: Must be directory that exists in the filesystem`);break}case"integer":{if(!(typeof e=="number"&>(e)))throw new TypeError(`${r}: Must be an integer`);break}case"kebab":{if(!(typeof e=="string"&&dt(e)))throw new TypeError(`${r}: Must be a kebab-case string`);break}case"lower":{if(!(typeof e=="string"&&ut(e)))throw new TypeError(`${r}: Must be a lowercase string`);break}case"objectlike":{if(!ct(e))throw new TypeError(`${r}: Must be an object`);break}case"path":{if(!(typeof e=="string"&&it(e)))throw new TypeError(`${r}: Must be valid path`);break}case"stream":{if(!at(e))throw new TypeError(`${r}: Must be an instance of stream.Writable or WritableStreamBuffer`);break}case"string":{if(typeof e!="string")throw new TypeError(`${r}: Must be a string`);break}case"string+":{if(!pt(e))throw new TypeError(`${r}: Must be a non-empty string`);break}default:if(e==null)throw new TypeError(`${r}: Must not be null or undefined`)}}},"validate");var ft=Object.defineProperty,mt=b((e,t)=>ft(e,"name",{value:t,configurable:!0}),"r$4");const S=mt((e,t=process.cwd())=>{k(e,"path: path"),k(t,"cwd: absolute");const r=ke(K(e)?e:Oe(t,e)),{root:n}=Re(r);let a=r.length;for(;a>n.length&&(r[a-1]==="/"||r[a-1]==="\\");)a-=1;return a===r.length?r:r.slice(0,a)},"cleanPath");var yt=Object.defineProperty,M=b((e,t)=>yt(e,"name",{value:t,configurable:!0}),"n$1");const ht=M(e=>e.readable?new Promise((t,r)=>{if(!e.readable){t([]);return}let n=[];const a=M(()=>{n=[],e.removeListener("data",o),e.removeListener("end",i),e.removeListener("error",d),e.removeListener("close",c)},"cleanup"),o=M(u=>{n.push(u)},"onData"),i=M(()=>{t(n),a()},"onEnd"),d=M(u=>{r(u),a()},"onError"),c=M(()=>{t(n),a()},"onClose");e.on("data",o),e.on("end",i),e.on("error",d),e.on("close",c)}):Promise.resolve([]),"streamToArray");var bt=Object.defineProperty,vt=b((e,t)=>bt(e,"name",{value:t,configurable:!0}),"f");const{debug:re}=j.withScope("msr:commitsFilter"),B=vt(async(e,t,r,n,a)=>{if(k(e,"cwd: directory"),e=S(e),k(t,"dir: path"),t=S(t,e),!Y(t)||!Q(t).isDirectory())throw new TypeError("dir: Must be a path to an existing directory");if(k(r,"lastRelease: alphanumeric{40}?"),k(n,"nextRelease: alphanumeric{40}?"),t.indexOf(e)!==0)throw new TypeError("dir: Must be inside cwd");if(t===e)throw new TypeError("dir: Must not be equal to cwd");const o=await ae("git",["rev-parse","--show-toplevel"],{cwd:e}),i=S(o.stdout);Object.assign(ee.fields,{committerDate:{key:"ci",type:Date},gitTags:"d",hash:"H",message:"B"});const d=xe(i,t),c=a?["--first-parent",a]:[],u=(r?`${r}..`:"")+(n||"HEAD"),p=[...c,u,"--",d],g=ee.parse({_:p},{cwd:i,env:process.env}),f=await ht(g);return f.forEach(s=>{s.message=s.message.trim(),s.gitTags=s.gitTags.trim()}),re("git log filter query: %o",p),re("filtered commits: %O",f),f},"getCommitsFiltered");var wt=Object.defineProperty,J=b((e,t)=>wt(e,"name",{value:t,configurable:!0}),"a$2");const $t=J(e=>{if(!Y(e))throw new ReferenceError(`package.json file not found: "${e}"`);let t;try{t=Q(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 Ve(e,"utf8")}catch{throw new ReferenceError(`package.json cannot be read: "${e}"`)}},"readManifest"),ue=J(e=>{const t=$t(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}"`);const n=r;if(typeof n.name!="string"||n.name.length===0)throw new SyntaxError(`Package name must be non-empty string: "${e}"`);const a=J(o=>{if(Object.prototype.hasOwnProperty.call(n,o)&&typeof n[o]!="object")throw new SyntaxError(`Package ${o} must be object: "${e}"`)},"checkDeps");return a("dependencies"),a("devDependencies"),a("peerDependencies"),a("optionalDependencies"),Object.defineProperty(n,"__contents__",{enumerable:!1,value:t}),n},"getManifest");var jt=Object.defineProperty,ge=b((e,t)=>jt(e,"name",{value:t,configurable:!0}),"r$3");const _t=ge((e,t,r)=>e&&t&&r?e(t,r)?t:r:t||r,"selectVersionBy"),kt=_t.bind(null,He),Ot=ge((e,t)=>e.filter(r=>t||!Le(r)).toSorted(qe)[0],"getLatestVersion");var Rt=Object.defineProperty,xt=b((e,t)=>Rt(e,"name",{value:t,configurable:!0}),"e$2");const Pt=xt(e=>({indent:ze(e).indent,trailingWhitespace:Be(e)||""}),"recognizeFormat");var Tt=Object.defineProperty,R=b((e,t)=>Tt(e,"name",{value:t,configurable:!0}),"o$2");const{debug:U}=j.withScope("msr:updateDeps"),Dt=R((e,t,r)=>{const n=e?$.inc(e,"prerelease",r):void 0,a=$.inc(t,"prerelease",r)||void 0;return n?kt(a,n):a},"nextPreHighestVersion"),Et=R((e,t,r,n)=>{if(!$.prerelease(t)){if(!$.parse(t))return;const o=$.inc(t,r||"patch");return o?`${o}-${n}.1`:void 0}const a=Ot(e,!0);return Dt(a,t,n)},"nextPreVersionCases"),G=R((e,t,r,n,a)=>{const o=["patch","minor","major"],{localDeps:i,manifest:d={}}=e,c=e._lastRelease?.version,{dependencies:u={},devDependencies:p={},optionalDependencies:g={},peerDependencies:f={}}=d,s=[u,p,f,g],v=R((m,y,w)=>{const O=m[y];if(!w||!O)return!1;const V=Vt(O,w,t,a);return O!==V?(m[y]=V,!0):!1},"bumpDependency");let h;const l=i.filter(m=>!n.includes(m)).reduce((m,y)=>{const w=me(y,t,r,[...n,e],a);let O;if(w?O=(y._preRelease?At(y):Mt(y))||void 0:O=y._lastRelease?.version,!w&&y.localDeps&&y.localDeps.length>0){const N=G(y,t,r,[...n,e],a);if(N){const z=o.indexOf(N),we=h?o.indexOf(h):-1;z>we&&(h=N)}}if(!s.reduce((N,z)=>v(z,y.name,O)||N,!c)||!w)return m;if(!m)return w;const V=o.indexOf(w),ve=o.indexOf(m);return V>ve?w:m},void 0);return!l&&h?h:l},"getDependentRelease"),Ct=R((e,t)=>{if(e.startsWith("workspace:")){const r=/^workspace:(([\^~*])?.*)$/u.exec(e);if(!r)return e;const[,n,a]=r;return a===n?a==="*"?t:a+t:n}return e},"substituteWorkspaceVersion"),fe=R((e,t)=>De(e,(r,n,a)=>{Ee(n,t[a])||(r[a]=X(n)&&X(t[a])?JSON.stringify(fe(n,t[a])):`${t[a]} → ${n}`)})||{},"difference"),St=R((e,t)=>{const r=`[${e.name}]`,n=ue(t),a=["dependencies","devDependencies","peerDependencies","optionalDependencies"].reduce((o,i)=>{const d=fe(e[i],n[i]);return Object.keys(d).length>0&&(o[i]=d),o},{});return U(r,"package.json path=",t),Object.keys(a).length>0?(U(r,"changes=",a),!0):(U(r,"no deps changes"),!1)},"auditManifestChanges"),Mt=R(e=>{const t=e._lastRelease?.version;return t&&typeof e._nextType=="string"?$.inc(t,e._nextType):t||"1.0.0"},"getNextVersion"),Nt=R(e=>{const t=$.parse(e);if(!t)return null;const r=t.prerelease[0];return r==null?null:String(r)},"getPreReleaseTag"),At=R(e=>{const t=e._lastRelease?.version,r=Nt(t||"");return r!==null&&r!==e._preRelease||!t?`1.0.0-${e._preRelease}.1`:Et([],t||"",e._nextType||"patch",e._preRelease||"")},"getNextPreVersion"),me=R((e,t="override",r="patch",n=[],a="")=>{const o=G(e,t,r,n,a);if(e._nextType)return e._nextType;if(!o&&e.localDeps&&e.localDeps.length>0&&e.manifest){const i=e.manifest,{dependencies:d={},devDependencies:c={},optionalDependencies:u={},peerDependencies:p={}}=i,g={...d,...c,...u,...p};if(e.localDeps.some(f=>!f.name||g[f.name]===void 0?!1:f._nextType?!0:f.localDeps&&f.localDeps.length>0?G(f,t,r,[...n,e],a)!==void 0:!1)&&r!=="inherit")return e._nextType=r,e._nextType}if(o)return e._nextType=r==="inherit"?o:r,e._nextType},"resolveReleaseType"),Vt=R((e,t,r="override",n="")=>{if(e=Ct(e,t),r==="ignore"||e===t||(r==="satisfy"||r==="inherit")&&$.satisfies(t,e))return e;if(r==="inherit"){const a=t.split(".");return e.split(".").map((o,i)=>a[i]?o.replace(/\d+/u,a[i]):o).join(".")}return n+t},"resolveNextVersion"),Ft=R(e=>{const{manifest:t,path:r}=e,{indent:n,trailingWhitespace:a}=Pt(t.__contents__);t.version=e?._nextRelease?.version||t.version,e.localDeps.forEach(o=>{const i=o._nextRelease||o._lastRelease;if(!i||!i.version)throw new Error(`Cannot release ${e.name} because dependency ${o.name} has not been released yet`)}),St(t,r)&&Fe(r,JSON.stringify(t,null,n)+a)},"updateManifestDeps");var Ht=Object.defineProperty,D=b((e,t)=>Ht(e,"name",{value:t,configurable:!0}),"c$2");const{debug:C}=j.withScope("msr:catalogChanges"),Lt=D(e=>{const t=pe(e,"pnpm-workspace.yaml");if(!le(t))return null;try{return We(t).catalogs||null}catch(r){return C("Failed to parse pnpm-workspace.yaml:",r),null}},"parsePnpmCatalog"),qt=D(async e=>{const t=pe(e,"package.json");if(!le(t))return null;try{return(await Ue(t)).catalogs||null}catch(r){return C("Failed to parse package.json for yarn catalog:",r),null}},"parseYarnCatalog"),zt=D(async e=>Lt(e)||qt(e),"getCatalogDefinitions"),Bt=D(async(e,t)=>{const{execa:r}=await import("execa");try{try{const n=await r("git",["show",`${t}:pnpm-workspace.yaml`],{cwd:e,reject:!1});if(n.exitCode===0&&n.stdout){const{parse:a}=await import("yaml"),o=a(n.stdout);if(o?.catalogs)return o.catalogs}}catch{}try{const n=await r("git",["show",`${t}:package.json`],{cwd:e,reject:!1});if(n.exitCode===0&&n.stdout)return JSON.parse(n.stdout).catalogs||null}catch{}}catch(n){C(`Failed to get catalog definitions at commit ${t}:`,n)}return null},"getCatalogDefinitionsAtCommit"),Ut=D((e,t)=>{const r=D(o=>o.replace(/^[\^~]/,"").trim(),"extractVersion"),n=r(e),a=r(t);return!$.valid(n)||!$.valid(a)||$.eq(n,a)?null:$.major(n)!==$.major(a)?"major":$.minor(n)!==$.minor(a)?"minor":$.patch(n)!==$.patch(a)?"patch":null},"getReleaseTypeFromVersionChange"),Wt=D(async(e,t,r)=>{e=S(e);const n=await zt(e);if(!n)return C("No catalog definitions found"),{};if(!t)return C("No last release found, skipping catalog change detection"),{};const a=await Bt(e,t);if(!a)return C("No old catalog definitions found at last release"),{};const o={};for(const[i,d]of Object.entries(n)){const c=a[i];if(c)for(const[u,p]of Object.entries(d)){const g=c[u];if(g&&g!==p){const f=Ut(g,p);f&&(o[i]||(o[i]={}),o[i][u]={newVersion:p,oldVersion:g,releaseType:f},C(`Catalog change detected: ${i}:${u} ${g} -> ${p} (${f})`))}}}return o},"detectCatalogChanges"),It=D((e,t,r)=>{const n=`catalog:${t}`,a=[];for(const o of e){const{manifest:i}=o,d=[i.dependencies,i.devDependencies,i.peerDependencies,i.optionalDependencies].filter(Boolean);for(const c of d)for(const[u,p]of Object.entries(c))if(p===n){if(r&&u!==r)continue;a.push(o);break}}return a},"findPackagesUsingCatalog"),Jt=D((e,t)=>{const r=new Map;for(const[n,a]of Object.entries(t))for(const[o,i]of Object.entries(a)){const d=It(e,n,o);for(const c of d){const u=r.get(c.name),p=i.releaseType;if(p)if(u){const g={major:3,minor:2,patch:1},f=g[u];g[p]>f&&r.set(c.name,p)}else r.set(c.name,p)}}return r},"getAffectedPackagesFromCatalogChanges");var Gt=Object.defineProperty,E=b((e,t)=>Gt(e,"name",{value:t,configurable:!0}),"p$2");const{debug:_}=j.withScope("msr:inlinePlugin"),Kt=E((e,t,r)=>{const{cwd:n}=t;let a=null,o=!1;return E(i=>{const{dir:d,name:c,plugins:u}=i,p=`[${c}]`,g={analyzeCommits:E(async(f,s)=>{if(!s.branch)throw new Error("context.branch is required");s.options||(s.options={}),Object.assign(s.options,i.options),Object.assign(s.options,s.options._pkgOptions||{}),i._preRelease=s.branch.prerelease||null,i._branch=s.branch.name,s.branch.channel&&_(p,`Branch channel: ${s.branch.channel}`),s.cwd=d;const v=r.firstParent?s.branch.name:void 0;if(s.commits=await B(n,d,s.lastRelease?s.lastRelease.gitHead:void 0,s.nextRelease?s.nextRelease.gitHead:void 0,v),i._lastRelease=s.lastRelease,!o&&s.lastRelease?.gitHead)try{const m=await Wt(n,s.lastRelease.gitHead,s.nextRelease?.gitHead);Object.keys(m).length>0?(a=Jt(e,m),o=!0,_(p,`Detected catalog changes affecting ${a.size} packages`)):o=!0}catch(m){_(p,"Failed to detect catalog changes:",m),o=!0}let h;a&&a.has(i.name)&&(h=a.get(i.name),_(p,`Catalog change triggers ${h} release`));let l;if(u.analyzeCommits&&(l=await u.analyzeCommits(s)||void 0),!l&&h)l=h;else if(l&&h){const m={major:3,minor:2,patch:1},y=m[l]||0;(m[h]||0)>y&&(l=h)}return i._nextType=l,i._analyzed=!0,r.deps&&(i._nextType=me(i,r.deps.bump,r.deps.release,[],r.deps.prefix)),_(p,"commits analyzed"),_(p,`release type: ${i._nextType}`),i._nextType??null},"analyzeCommits"),generateNotes:E(async(f,s)=>{s.options||(s.options={}),Object.assign(s.options,i.options),Object.assign(s.options,s.options._pkgOptions||{}),s.cwd=d,i._nextRelease=s.nextRelease,s.nextRelease?.channel&&_(p,`Release channel: ${s.nextRelease.channel}`);const v=[];if(s.lastRelease&&s.lastRelease.gitTag&&(!s.lastRelease.gitHead||s.lastRelease.gitHead===s.lastRelease.gitTag)){const y=await ae("git",["rev-parse","--show-toplevel"],{cwd:s.cwd}),w=S(y.stdout);s.lastRelease.gitHead=await Ae(s.lastRelease.gitTag,{cwd:w,env:s.env})}if(!s.branch)throw new Error("context.branch is required");const h=r.firstParent?s.branch.name:void 0;s.commits=await B(n,d,s.lastRelease?s.lastRelease.gitHead:void 0,s.nextRelease?s.nextRelease.gitHead:void 0,h);let l;u.generateNotes&&(l=await u.generateNotes(s)),l&&v.push(l.replace(/^(#+) (\[?\d+\.\d+\.\d+\]?)/u,`$1 ${c} $2`));const m=i.localDeps.filter(y=>y._nextRelease);if(m.length>0){v.push("### Dependencies");const y=m.map(w=>{const O=w._nextRelease;return O?`* **${w.name}:** upgraded to ${O.version}`:""}).filter(Boolean);v.push(y.join(`
|
|
2
|
+
`))}return _(p,"notes generated"),v.join(`
|
|
3
|
+
|
|
4
|
+
`)},"generateNotes"),prepare:E(async(f,s)=>{if(s.options||(s.options={}),Object.assign(s.options,i.options),Object.assign(s.options,s.options._pkgOptions||{}),r.dryRun){_(p,"skipping prepare in dry-run mode");return}if(Ft(i),i._depsUpdated=!0,s.cwd=d,!s.branch)throw new Error("context.branch is required");const v=r.firstParent?s.branch.name:void 0;s.commits=await B(n,d,s.lastRelease?s.lastRelease.gitHead:void 0,s.nextRelease?s.nextRelease.gitHead:void 0,v),u.prepare&&await u.prepare(s),i._prepared=!0,_(p,"prepared")},"prepare"),publish:E(async(f,s)=>{if(s.options||(s.options={}),Object.assign(s.options,i.options),Object.assign(s.options,s.options._pkgOptions||{}),r.dryRun)return _(p,"skipping publish in dry-run mode"),[];s.cwd=d;let v=[];if(u.publish){const h=await u.publish?.(s);h!==void 0&&(v=Array.isArray(h)?h:[h])}return i._published=!0,_(p,"published"),v.length>0?v[0]:{}},"publish"),verifyConditions:E(async(f,s)=>{s.options||(s.options={}),Object.assign(s.options,i.options),Object.assign(s.options,s.options._pkgOptions||{}),s.cwd=d,u.verifyConditions&&await u.verifyConditions(s),i._ready=!0,_(p,"verified conditions")},"verifyConditions"),verifyRelease:E(async(f,s)=>{s.options||(s.options={}),Object.assign(s.options,i.options),Object.assign(s.options,s.options._pkgOptions||{}),s.cwd=d,await u?.verifyRelease?.(s),_(p,"release verified")},"verifyRelease")};return Object.keys(g).forEach(f=>Reflect.defineProperty(g[f],"pluginName",{enumerable:!0,value:"Inline plugin",writable:!1})),_(p,"inlinePlugin created"),g},"createInlinePlugin")},"createInlinePluginCreator");var Yt=Object.defineProperty,Qt=b((e,t)=>Yt(e,"name",{value:t,configurable:!0}),"o$1");const x="release",Xt=["package.json",`.${x}rc`,`.${x}rc.json`,`.${x}rc.yaml`,`.${x}rc.yml`,`.${x}rc.js`,`.${x}rc.cjs`,`.${x}rc.mjs`,`${x}.config.js`,`${x}.config.cjs`,`${x}.config.mjs`],ye=Qt(async e=>(await de(x,{mergeSearchPlaces:!1,searchPlaces:Xt}).search(e))?.config??{},"getConfig");var Zt=Object.defineProperty,he=b((e,t)=>Zt(e,"name",{value:t,configurable:!0}),"r$1");const se=he(e=>e==null,"isNil"),F=he((e={},t={})=>({...e,...Z(t,r=>!se(r)),deps:{...e.deps,...Z(t.deps,r=>!se(r))},ignorePackages:[...new Set([...H(e.ignorePackages||[]),...H(t.ignorePackages||[])])]}),"mergeConfig");var er=Object.defineProperty,tr=b((e,t)=>er(e,"name",{value:t,configurable:!0}),"o");const P="multi-release",rr=["package.json",`.${P}rc`,`.${P}rc.json`,`.${P}rc.yaml`,`.${P}rc.yml`,`.${P}rc.js`,`.${P}rc.cjs`,`.${P}rc.mjs`,`${P}.config.js`,`${P}.config.cjs`,`${P}.config.mjs`],sr=tr(async(e,t)=>{const{config:r}=await de(P,{searchPlaces:rr}).search(e)||{},{extends:n,...a}={...r};let o=a;if(n){const i=Ie(import.meta.url),d=H(n).reduce((c,u)=>{const p=i(Je(e,u));return F(c,p)},{});o=F(o,d)}return o=F({branches:void 0,ci:void 0,debug:!1,deps:{bump:"override",prefix:"",release:"patch"},dryRun:void 0,firstParent:!1,ignorePackages:[],ignorePrivate:!0,logLevel:"info",sequentialInit:!1,sequentialPrepare:!0,silent:!1,tagFormat:"${name}@${version}"},o),F(o,t)},"getConfigMultiSemrel");var nr=Object.defineProperty,ar=b((e,t)=>nr(e,"name",{value:t,configurable:!0}),"t");const{Signale:or}=oe,ir=ar(async({cwd:e,env:t,stderr:r,stdout:n},a)=>{try{const o=new ce,i=new or({stream:o});return await Ge({cwd:e,env:t,logger:i,stderr:r,stdout:n},a)}catch(o){throw j.failure("Error in semantic-release getConfig(): %0",o),o}},"getConfigSemantic");var cr=Object.defineProperty,lr=b((e,t)=>cr(e,"name",{value:t,configurable:!0}),"s");class ne extends ie{static{b(this,"p")}static{lr(this,"RescopedStream")}_stream;_scope;constructor(t,r){super(),k(r,"scope: string"),k(t,"stream: stream"),this._stream=t,this._scope=r}write(t){return k(t,"msg: string"),this._stream.write(t.replace("[semantic-release]",`[${this._scope}]`))}}var pr=Object.defineProperty,dr=b((e,t)=>pr(e,"name",{value:t,configurable:!0}),"e");const be=dr(e=>e&&(e.startsWith("git+")?e.slice(4):e.startsWith("git://")?e.replace(/^git:\/\//u,"https://"):e),"normalizeRepositoryUrl");var ur=Object.defineProperty,L=b((e,t)=>ur(e,"name",{value:t,configurable:!0}),"P");const gr=L(async(e,{cwd:t,env:r,globalOptions:n,inputOptions:a,stderr:o,stdout:i})=>{e=S(e,t);const d=Pe(e),c=ue(e),{name:u}=c,p=Object.keys({...c.dependencies,...c.devDependencies,...c.peerDependencies,...c.optionalDependencies}),g=await ye(d),f={...n,...g,...a};if(!f.repositoryUrl&&c.repository){let l;typeof c.repository=="string"?l=c.repository:typeof c.repository=="object"&&c.repository!==null&&"url"in c.repository&&(l=c.repository.url),l&&(f.repositoryUrl=be(l))}const s=Object.fromEntries(Object.entries(r).filter(([,l])=>l!==void 0).map(([l,m])=>[l,String(m)])),{options:v,plugins:h}=await ir({cwd:d,env:s,stderr:o,stdout:i},f);return{deps:p,dir:d,localDeps:[],manifest:c,name:u,options:v,path:e,plugins:h}},"getPackage"),fr=L(async(e,t,r,n)=>{const{dir:a,name:o,options:i}=e,{env:d,stderr:c,stdout:u}=r,p=t(e),g={...i,...p},f={name:o,version:"${version}"},s="${name}@${version}";return g.tagFormat=Se(n.tagFormat||s)(f),g.debug=n.debug,g.dryRun=n.dryRun===void 0?g.dryRun:n.dryRun,g.ci=n.ci===void 0?g.ci:n.ci,g.branches=n.branches?H(n.branches):g.branches,g._pkgOptions=i,g.repositoryUrl&&typeof g.repositoryUrl=="string"&&(g.repositoryUrl=be(g.repositoryUrl)),e.result=await Me(g,{cwd:a,env:d,stderr:new ne(c,o),stdout:new ne(u,o)}),e},"releasePackage"),Vr=L(async(e,t={},{cwd:r=process.cwd(),env:n=process.env,stderr:a=process.stderr,stdout:o=process.stdout}={},i={})=>{e&&k(e,"paths: string[]"),k(r,"cwd: directory"),k(n,"env: objectlike"),k(o,"stdout: stream"),k(a,"stderr: stream"),r=S(r);const d=await sr(r,i),c={deps:{},...d,...i};if(j.config.stdio=[a,o],j.config.level=c.logLevel,c.silent&&(j.config.level="silent"),c.debug){j.config.level="debug";let l="";n.DEBUG&&(l=`,${n.DEBUG}`),W.enable(`msr:*,semantic-release:*${l}`)}j.info(`multi-semantic-release version: ${Ye.version}`),j.info(`semantic-release version: ${Ne.version}`),c.debug&&j.info(`flags: ${JSON.stringify(c,null,2)}`);const u=await ye(r),p={cwd:r,env:n,globalOptions:u,inputOptions:t,stderr:a,stdout:o},{packages:g,queue:f}=await Te({cwd:r,filter:L((l=>{const m=l.manifest;return(!c.ignorePrivate||!m.private)&&(e?e.includes(l.manifestAbsPath)||e.includes(l.manifestRelPath):!0)}),"filter"),workspacesExtra:Array.isArray(c.ignorePackages)?c.ignorePackages.map(l=>`!${l}`):[]});e=e||Object.values(g).map(l=>l.manifestPath),j.complete(`Started multirelease! Loading ${e.length} packages...`);let s=await Promise.all(e.map(l=>gr(l,p)));s=s.filter(l=>l!==void 0),s.forEach(l=>{l.localDeps=[...new Set(l.deps.map(m=>s.find(y=>m===y.name)).filter(Boolean))],j.success(`Loaded package ${l.name}`)}),j.complete(`Queued ${f.length} packages! Starting release...`);const v=Kt(s,p,c),h=await f.reduce(async(l,m)=>{const y=await l,w=s.find(({name:O})=>O===m);if(w){const{result:O}=await fr(w,v,p,c);if(O)return y+1}return y},Promise.resolve(0));return j.complete(`Released ${h} of ${f.length} packages, semantically!`),Ce(s,({name:l})=>f.indexOf(l))},"multiSemanticRelease");export{j as u,Vr as z};
|
package/package.json
CHANGED
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anolilab/multi-semantic-release",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "A multi semantic release tool for a monorepo.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"anolilab",
|
|
7
|
+
"multi-semantic-release",
|
|
8
|
+
"semantic-release",
|
|
9
|
+
"monorepo",
|
|
10
|
+
"release",
|
|
11
|
+
"automation",
|
|
12
|
+
"ci",
|
|
13
|
+
"cd",
|
|
14
|
+
"continuous-integration",
|
|
15
|
+
"continuous-deployment",
|
|
16
|
+
"versioning",
|
|
17
|
+
"version-management",
|
|
18
|
+
"changelog",
|
|
19
|
+
"git",
|
|
20
|
+
"github",
|
|
21
|
+
"workspace",
|
|
22
|
+
"workspaces",
|
|
23
|
+
"lerna",
|
|
24
|
+
"nx",
|
|
25
|
+
"yarn-workspaces",
|
|
26
|
+
"pnpm-workspaces",
|
|
27
|
+
"npm-workspaces",
|
|
28
|
+
"multi-package",
|
|
29
|
+
"multi-package-release",
|
|
30
|
+
"topological-sort",
|
|
31
|
+
"dependency-graph"
|
|
32
|
+
],
|
|
5
33
|
"repository": {
|
|
6
34
|
"type": "git",
|
|
7
35
|
"url": "https://github.com/anolilab/semantic-release.git",
|
|
@@ -28,20 +56,20 @@
|
|
|
28
56
|
],
|
|
29
57
|
"dependencies": {
|
|
30
58
|
"@semrel-extra/topo": "^1.14.1",
|
|
31
|
-
"@visulima/fs": "^4.0
|
|
32
|
-
"@visulima/path": "^2.0.
|
|
59
|
+
"@visulima/fs": "^4.1.0",
|
|
60
|
+
"@visulima/path": "^2.0.5",
|
|
33
61
|
"cosmiconfig": "^9.0.0",
|
|
34
62
|
"debug": "^4.4.3",
|
|
35
63
|
"detect-indent": "^7.0.2",
|
|
36
64
|
"detect-newline": "^4.0.1",
|
|
37
|
-
"execa": "^9.6.
|
|
65
|
+
"execa": "^9.6.1",
|
|
38
66
|
"git-log-parser": "^1.2.1",
|
|
39
67
|
"lodash-es": "^4.17.21",
|
|
40
68
|
"resolve-from": "^5.0.0",
|
|
41
69
|
"semver": "^7.7.3",
|
|
42
70
|
"signale": "^1.4.0",
|
|
43
71
|
"stream-buffers": "^3.0.3",
|
|
44
|
-
"yaml": "^2.8.
|
|
72
|
+
"yaml": "^2.8.2",
|
|
45
73
|
"yargs": "18.0.0"
|
|
46
74
|
},
|
|
47
75
|
"peerDependencies": {
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var $e=Object.defineProperty;var y=(e,t)=>$e(e,"name",{value:t,configurable:!0});import{createRequire as je}from"node:module";import{topo as Te}from"@semrel-extra/topo";import{transform as De,isEqual as Ee,isObject as Z,pickBy as ee,castArray as L,sortBy as Ce,template as Se}from"lodash-es";import Me from"semantic-release";import Ne from"semantic-release/package.json"with{type:"json"};import{execa as oe}from"execa";import{getTagHead as Ae}from"semantic-release/lib/git.js";import te from"git-log-parser";import F from"debug";import ie from"signale";import{WritableStreamBuffer as le}from"stream-buffers";import $,{gt as He,prerelease as Le,rcompare as qe}from"semver";import Be from"detect-indent";import{detectNewline as ze}from"detect-newline";import{isAccessibleSync as pe,readJson as We}from"@visulima/fs";import{readYamlSync as Ie}from"@visulima/fs/yaml";import{resolve as de}from"@visulima/path";import{cosmiconfig as ue}from"cosmiconfig";import Ue from"resolve-from";import Ge from"semantic-release/lib/get-config.js";const _e=je(import.meta.url),A=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,B=y(e=>{if(typeof A<"u"&&A.versions&&A.versions.node){const[t,r]=A.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return A.getBuiltinModule(e)}return _e(e)},"__cjs_getBuiltinModule"),{isAbsolute:Y,normalize:ke,join:Oe,parse:Re,relative:xe,dirname:Pe}=B("node:path"),{existsSync:Q,lstatSync:X,readFileSync:Ve,writeFileSync:Fe}=B("node:fs"),{Writable:ce}=B("node:stream"),{createRequire:Je}=B("node:module");var Ke="3.0.0-alpha.4";const Ye={version:Ke};var Qe=Object.defineProperty,Xe=y((e,t)=>Qe(e,"name",{value:t,configurable:!0}),"g$3");const{Signale:Ze}=ie,U=["error","warn","info","debug","trace"],W=Xe((e,t)=>{const r=U.indexOf(e),a=U.indexOf(t);return r!==-1&&a!==-1&&r<=a},"assertLevel"),re={complete:"info",failure:"error",log:"info",success:"info"},j={config:{_level:"info",_signale:{},_stderr:process.stderr,_stdout:process.stdout,set level(e){e&&(W(e,"debug")&&F.enable("msr:"),W(e,"trace")&&F.enable("msr:,semantic-release:"),this._level=e)},get level(){return this._level},set stdio([e,t]){this._stdout=t,this._stderr=e,this._signale=new Ze({config:{displayLabel:!1,displayTimestamp:!0},stream:t,types:{complete:{badge:"🎉",color:"green",label:"",stream:[t]},error:{badge:"✖",color:"red",label:"",stream:[e]},log:{badge:"•",color:"magenta",label:"",stream:[t]},success:{badge:"✔",color:"green",label:"",stream:[t]}}})},get stdio(){return[this._stderr,this._stdout]}},prefix:"msr:",withScope(e){return{...this,debug:F(e||this.prefix),prefix:e}},...[...U,...Object.keys(re)].reduce((e,t)=>(e[t]=function(...r){W(re[t]||t,this.config.level)&&(this.config._signale[t]||console[t]||(()=>{}))(this.prefix,...r)},e),{}),debug:F("msr:")};var et=Object.defineProperty,tt=y((e,t)=>et(e,"name",{value:t,configurable:!0}),"t$3");class Sr extends Error{static{y(this,"ValueError")}static{tt(this,"ValueError")}constructor(t){super(t),this.name="ValueError"}}var rt=Object.defineProperty,T=y((e,t)=>rt(e,"name",{value:t,configurable:!0}),"t$2");const nt=T(e=>Y(e)&&Q(e)&&X(e).isDirectory(),"isDirectory"),at=T(e=>e instanceof ce||e instanceof le,"isStream"),st=T(e=>Y(e),"isAbsolute"),ot=T(e=>typeof e=="string"&&e.length>0,"isPath"),it=T(e=>e!==null&&typeof e=="object"&&!Array.isArray(e),"isObjectLike"),ct=T(e=>e===void 0?!0:typeof e=="string"&&/^[a-f0-9]{40}$/i.test(e),"isAlphanumeric40"),lt=T(e=>typeof e=="string"&&e.length>0,"isStringPlus"),pt=T(e=>typeof e=="string"&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(e),"isKebab"),dt=T(e=>typeof e=="string"&&e===e.toLowerCase(),"isLower"),ut=T(e=>Number.isInteger(e),"isInteger"),k=T((e,t)=>{const[r,a]=t.split(":").map(i=>i.trim()),s=a?.endsWith("?"),o=s&&a?a.slice(0,-1):a;if(!(s&&e==null)){if(o?.endsWith("[]")){const i=o.slice(0,-2);if(!Array.isArray(e))throw new TypeError(`${r}: Must be an array`);for(const p of e)k(p,`${r}[item]: ${i}`);return}switch(o){case"absolute":{if(!(typeof e=="string"&&st(e)))throw new TypeError(`${r}: Must be an absolute path`);break}case"alphanumeric{40}":{if(!ct(e))throw new TypeError(`${r}: Must be alphanumeric string with size 40 or empty`);break}case"directory":{if(!(typeof e=="string"&&nt(e)))throw new TypeError(`${r}: Must be directory that exists in the filesystem`);break}case"integer":{if(!(typeof e=="number"&&ut(e)))throw new TypeError(`${r}: Must be an integer`);break}case"kebab":{if(!(typeof e=="string"&&pt(e)))throw new TypeError(`${r}: Must be a kebab-case string`);break}case"lower":{if(!(typeof e=="string"&&dt(e)))throw new TypeError(`${r}: Must be a lowercase string`);break}case"objectlike":{if(!it(e))throw new TypeError(`${r}: Must be an object`);break}case"path":{if(!(typeof e=="string"&&ot(e)))throw new TypeError(`${r}: Must be valid path`);break}case"stream":{if(!at(e))throw new TypeError(`${r}: Must be an instance of stream.Writable or WritableStreamBuffer`);break}case"string":{if(typeof e!="string")throw new TypeError(`${r}: Must be a string`);break}case"string+":{if(!lt(e))throw new TypeError(`${r}: Must be a non-empty string`);break}default:if(e==null)throw new TypeError(`${r}: Must not be null or undefined`)}}},"validate");var gt=Object.defineProperty,ft=y((e,t)=>gt(e,"name",{value:t,configurable:!0}),"r$3");const S=ft((e,t=process.cwd())=>{k(e,"path: path"),k(t,"cwd: absolute");const r=ke(Y(e)?e:Oe(t,e)),{root:a}=Re(r);let s=r.length;for(;s>a.length&&(r[s-1]==="/"||r[s-1]==="\\");)s-=1;return s===r.length?r:r.slice(0,s)},"cleanPath");var mt=Object.defineProperty,M=y((e,t)=>mt(e,"name",{value:t,configurable:!0}),"n");const ht=M(e=>e.readable?new Promise((t,r)=>{if(!e.readable){t([]);return}let a=[];const s=M(()=>{a=[],e.removeListener("data",o),e.removeListener("end",i),e.removeListener("error",p),e.removeListener("close",l)},"cleanup"),o=M(d=>{a.push(d)},"onData"),i=M(()=>{t(a),s()},"onEnd"),p=M(d=>{r(d),s()},"onError"),l=M(()=>{t(a),s()},"onClose");e.on("data",o),e.on("end",i),e.on("error",p),e.on("close",l)}):Promise.resolve([]),"streamToArray");var bt=Object.defineProperty,yt=y((e,t)=>bt(e,"name",{value:t,configurable:!0}),"f");const{debug:ne}=j.withScope("msr:commitsFilter"),I=yt(async(e,t,r,a,s)=>{if(k(e,"cwd: directory"),e=S(e),k(t,"dir: path"),t=S(t,e),!Q(t)||!X(t).isDirectory())throw new TypeError("dir: Must be a path to an existing directory");if(k(r,"lastRelease: alphanumeric{40}?"),k(a,"nextRelease: alphanumeric{40}?"),t.indexOf(e)!==0)throw new TypeError("dir: Must be inside cwd");if(t===e)throw new TypeError("dir: Must not be equal to cwd");const o=await oe("git",["rev-parse","--show-toplevel"],{cwd:e}),i=S(o.stdout);Object.assign(te.fields,{committerDate:{key:"ci",type:Date},gitTags:"d",hash:"H",message:"B"});const p=xe(i,t),l=s?["--first-parent",s]:[],d=(r?`${r}..`:"")+(a||"HEAD"),c=[...l,d,"--",p],f=te.parse({_:c},{cwd:i,env:process.env}),g=await ht(f);return g.forEach(n=>{n.message=n.message.trim(),n.gitTags=n.gitTags.trim()}),ne("git log filter query: %o",c),ne("filtered commits: %O",g),g},"getCommitsFiltered");var vt=Object.defineProperty,G=y((e,t)=>vt(e,"name",{value:t,configurable:!0}),"a$2");const wt=G(e=>{if(!Q(e))throw new ReferenceError(`package.json file not found: "${e}"`);let t;try{t=X(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 Ve(e,"utf8")}catch{throw new ReferenceError(`package.json cannot be read: "${e}"`)}},"readManifest"),ge=G(e=>{const t=wt(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}"`);const a=r;if(typeof a.name!="string"||a.name.length===0)throw new SyntaxError(`Package name must be non-empty string: "${e}"`);const s=G(o=>{if(Object.prototype.hasOwnProperty.call(a,o)&&typeof a[o]!="object")throw new SyntaxError(`Package ${o} must be object: "${e}"`)},"checkDeps");return s("dependencies"),s("devDependencies"),s("peerDependencies"),s("optionalDependencies"),Object.defineProperty(a,"__contents__",{enumerable:!1,value:t}),a},"getManifest");var $t=Object.defineProperty,fe=y((e,t)=>$t(e,"name",{value:t,configurable:!0}),"r$2");const jt=fe((e,t,r)=>e&&t&&r?e(t,r)?t:r:t||r,"selectVersionBy"),_t=jt.bind(null,He),kt=fe((e,t)=>e.filter(r=>t||!Le(r)).toSorted(qe)[0],"getLatestVersion");var Ot=Object.defineProperty,Rt=y((e,t)=>Ot(e,"name",{value:t,configurable:!0}),"e$1");const xt=Rt(e=>({indent:Be(e).indent,trailingWhitespace:ze(e)||""}),"recognizeFormat");var Pt=Object.defineProperty,R=y((e,t)=>Pt(e,"name",{value:t,configurable:!0}),"o$2");const{debug:J}=j.withScope("msr:updateDeps"),Tt=R((e,t,r)=>{const a=e?$.inc(e,"prerelease",r):void 0,s=$.inc(t,"prerelease",r)||void 0;return a?_t(s,a):s},"nextPreHighestVersion"),Dt=R((e,t,r,a)=>{if(!$.prerelease(t)){if(!$.parse(t))return;const o=$.inc(t,r||"patch");return o?`${o}-${a}.1`:void 0}const s=kt(e,!0);return Tt(s,t,a)},"nextPreVersionCases"),K=R((e,t,r,a,s)=>{const o=["patch","minor","major"],{localDeps:i,manifest:p={}}=e,l=e._lastRelease?.version,{dependencies:d={},devDependencies:c={},optionalDependencies:f={},peerDependencies:g={}}=p,n=[d,c,g,f],v=R((m,h,w)=>{const O=m[h];if(!w||!O)return!1;const V=At(O,w,t,s);return O!==V?(m[h]=V,!0):!1},"bumpDependency");let b;const u=i.filter(m=>!a.includes(m)).reduce((m,h)=>{const w=he(h,t,r,[...a,e],s);let O;if(w?O=(h._preRelease?Nt(h):St(h))||void 0:O=h._lastRelease?.version,!w&&h.localDeps&&h.localDeps.length>0){const N=K(h,t,r,[...a,e],s);if(N){const z=o.indexOf(N),we=b?o.indexOf(b):-1;z>we&&(b=N)}}if(!n.reduce((N,z)=>v(z,h.name,O)||N,!l)||!w)return m;if(!m)return w;const V=o.indexOf(w),ve=o.indexOf(m);return V>ve?w:m},void 0);return!u&&b?b:u},"getDependentRelease"),Et=R((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"),me=R((e,t)=>De(e,(r,a,s)=>{Ee(a,t[s])||(r[s]=Z(a)&&Z(t[s])?JSON.stringify(me(a,t[s])):`${t[s]} → ${a}`)})||{},"difference"),Ct=R((e,t)=>{const r=`[${e.name}]`,a=ge(t),s=["dependencies","devDependencies","peerDependencies","optionalDependencies"].reduce((o,i)=>{const p=me(e[i],a[i]);return Object.keys(p).length>0&&(o[i]=p),o},{});return J(r,"package.json path=",t),Object.keys(s).length>0?(J(r,"changes=",s),!0):(J(r,"no deps changes"),!1)},"auditManifestChanges"),St=R(e=>{const t=e._lastRelease?.version;return t&&typeof e._nextType=="string"?$.inc(t,e._nextType):t||"1.0.0"},"getNextVersion"),Mt=R(e=>{const t=$.parse(e);if(!t)return null;const r=t.prerelease[0];return r==null?null:String(r)},"getPreReleaseTag"),Nt=R(e=>{const t=e._lastRelease?.version,r=Mt(t||"");return r!==null&&r!==e._preRelease||!t?`1.0.0-${e._preRelease}.1`:Dt([],t||"",e._nextType||"patch",e._preRelease||"")},"getNextPreVersion"),he=R((e,t="override",r="patch",a=[],s="")=>{const o=K(e,t,r,a,s);if(e._nextType)return e._nextType;if(!o&&e.localDeps&&e.localDeps.length>0&&e.manifest){const i=e.manifest,{dependencies:p={},devDependencies:l={},optionalDependencies:d={},peerDependencies:c={}}=i,f={...p,...l,...d,...c};if(e.localDeps.some(g=>!g.name||f[g.name]===void 0?!1:g._nextType?!0:g.localDeps&&g.localDeps.length>0?K(g,t,r,[...a,e],s)!==void 0:!1)&&r!=="inherit")return e._nextType=r,e._nextType}if(o)return e._nextType=r==="inherit"?o:r,e._nextType},"resolveReleaseType"),At=R((e,t,r="override",a="")=>{if(e=Et(e,t),r==="ignore"||e===t||(r==="satisfy"||r==="inherit")&&$.satisfies(t,e))return e;if(r==="inherit"){const s=t.split(".");return e.split(".").map((o,i)=>s[i]?o.replace(/\d+/u,s[i]):o).join(".")}return a+t},"resolveNextVersion"),Vt=R(e=>{const{manifest:t,path:r}=e,{indent:a,trailingWhitespace:s}=xt(t.__contents__);t.version=e?._nextRelease?.version||t.version,e.localDeps.forEach(o=>{const i=o._nextRelease||o._lastRelease;if(!i||!i.version)throw new Error(`Cannot release ${e.name} because dependency ${o.name} has not been released yet`)}),Ct(t,r)&&Fe(r,JSON.stringify(t,null,a)+s)},"updateManifestDeps");var Ft=Object.defineProperty,D=y((e,t)=>Ft(e,"name",{value:t,configurable:!0}),"c$2");const{debug:C}=j.withScope("msr:catalogChanges"),Ht=D(e=>{const t=de(e,"pnpm-workspace.yaml");if(!pe(t))return null;try{return Ie(t).catalogs||null}catch(r){return C("Failed to parse pnpm-workspace.yaml:",r),null}},"parsePnpmCatalog"),Lt=D(async e=>{const t=de(e,"package.json");if(!pe(t))return null;try{return(await We(t)).catalogs||null}catch(r){return C("Failed to parse package.json for yarn catalog:",r),null}},"parseYarnCatalog"),qt=D(async e=>Ht(e)||Lt(e),"getCatalogDefinitions"),Bt=D(async(e,t)=>{const{execa:r}=await import("execa");try{try{const a=await r("git",["show",`${t}:pnpm-workspace.yaml`],{cwd:e,reject:!1});if(a.exitCode===0&&a.stdout){const{parse:s}=await import("yaml"),o=s(a.stdout);if(o?.catalogs)return o.catalogs}}catch{}try{const a=await r("git",["show",`${t}:package.json`],{cwd:e,reject:!1});if(a.exitCode===0&&a.stdout)return JSON.parse(a.stdout).catalogs||null}catch{}}catch(a){C(`Failed to get catalog definitions at commit ${t}:`,a)}return null},"getCatalogDefinitionsAtCommit"),zt=D((e,t)=>{const r=D(o=>o.replace(/^[\^~]/,"").trim(),"extractVersion"),a=r(e),s=r(t);return!$.valid(a)||!$.valid(s)||$.eq(a,s)?null:$.major(a)!==$.major(s)?"major":$.minor(a)!==$.minor(s)?"minor":$.patch(a)!==$.patch(s)?"patch":null},"getReleaseTypeFromVersionChange"),Wt=D(async(e,t,r)=>{e=S(e);const a=await qt(e);if(!a)return C("No catalog definitions found"),{};if(!t)return C("No last release found, skipping catalog change detection"),{};const s=await Bt(e,t);if(!s)return C("No old catalog definitions found at last release"),{};const o={};for(const[i,p]of Object.entries(a)){const l=s[i];if(l)for(const[d,c]of Object.entries(p)){const f=l[d];if(f&&f!==c){const g=zt(f,c);g&&(o[i]||(o[i]={}),o[i][d]={newVersion:c,oldVersion:f,releaseType:g},C(`Catalog change detected: ${i}:${d} ${f} -> ${c} (${g})`))}}}return o},"detectCatalogChanges"),It=D((e,t,r)=>{const a=`catalog:${t}`,s=[];for(const o of e){const{manifest:i}=o,p=[i.dependencies,i.devDependencies,i.peerDependencies,i.optionalDependencies].filter(Boolean);for(const l of p)for(const[d,c]of Object.entries(l))if(c===a){if(r&&d!==r)continue;s.push(o);break}}return s},"findPackagesUsingCatalog"),Jt=D((e,t)=>{const r=new Map;for(const[a,s]of Object.entries(t))for(const[o,i]of Object.entries(s)){const p=It(e,a,o);for(const l of p){const d=r.get(l.name),c=i.releaseType;if(c)if(d){const f={major:3,minor:2,patch:1},g=f[d];f[c]>g&&r.set(l.name,c)}else r.set(l.name,c)}}return r},"getAffectedPackagesFromCatalogChanges");var Ut=Object.defineProperty,E=y((e,t)=>Ut(e,"name",{value:t,configurable:!0}),"p$2");const{debug:_}=j.withScope("msr:inlinePlugin"),Gt=E((e,t,r)=>{const{cwd:a}=t;let s=null,o=!1;return E(i=>{const{dir:p,name:l,plugins:d}=i,c=`[${l}]`,f={analyzeCommits:E(async(g,n)=>{if(!n.branch)throw new Error("context.branch is required");n.options||(n.options={}),Object.assign(n.options,i.options),Object.assign(n.options,n.options._pkgOptions||{}),i._preRelease=n.branch.prerelease||null,i._branch=n.branch.name,n.branch.channel&&_(c,`Branch channel: ${n.branch.channel}`),n.cwd=p;const v=r.firstParent?n.branch.name:void 0;if(n.commits=await I(a,p,n.lastRelease?n.lastRelease.gitHead:void 0,n.nextRelease?n.nextRelease.gitHead:void 0,v),i._lastRelease=n.lastRelease,!o&&n.lastRelease?.gitHead)try{const m=await Wt(a,n.lastRelease.gitHead,n.nextRelease?.gitHead);Object.keys(m).length>0?(s=Jt(e,m),o=!0,_(c,`Detected catalog changes affecting ${s.size} packages`)):o=!0}catch(m){_(c,"Failed to detect catalog changes:",m),o=!0}let b;s&&s.has(i.name)&&(b=s.get(i.name),_(c,`Catalog change triggers ${b} release`));let u;if(d.analyzeCommits&&(u=await d.analyzeCommits(n)||void 0),!u&&b)u=b;else if(u&&b){const m={major:3,minor:2,patch:1},h=m[u]||0;(m[b]||0)>h&&(u=b)}return i._nextType=u,i._analyzed=!0,r.deps&&(i._nextType=he(i,r.deps.bump,r.deps.release,[],r.deps.prefix)),_(c,"commits analyzed"),_(c,`release type: ${i._nextType}`),i._nextType??null},"analyzeCommits"),generateNotes:E(async(g,n)=>{n.options||(n.options={}),Object.assign(n.options,i.options),Object.assign(n.options,n.options._pkgOptions||{}),n.cwd=p,i._nextRelease=n.nextRelease,n.nextRelease?.channel&&_(c,`Release channel: ${n.nextRelease.channel}`);const v=[];if(n.lastRelease&&n.lastRelease.gitTag&&(!n.lastRelease.gitHead||n.lastRelease.gitHead===n.lastRelease.gitTag)){const h=await oe("git",["rev-parse","--show-toplevel"],{cwd:n.cwd}),w=S(h.stdout);n.lastRelease.gitHead=await Ae(n.lastRelease.gitTag,{cwd:w,env:n.env})}if(!n.branch)throw new Error("context.branch is required");const b=r.firstParent?n.branch.name:void 0;n.commits=await I(a,p,n.lastRelease?n.lastRelease.gitHead:void 0,n.nextRelease?n.nextRelease.gitHead:void 0,b);let u;d.generateNotes&&(u=await d.generateNotes(n)),u&&v.push(u.replace(/^(#+) (\[?\d+\.\d+\.\d+\]?)/u,`$1 ${l} $2`));const m=i.localDeps.filter(h=>h._nextRelease);if(m.length>0){v.push("### Dependencies");const h=m.map(w=>{const O=w._nextRelease;return O?`* **${w.name}:** upgraded to ${O.version}`:""}).filter(Boolean);v.push(h.join(`
|
|
2
|
-
`))}return _(c,"notes generated"),v.join(`
|
|
3
|
-
|
|
4
|
-
`)},"generateNotes"),prepare:E(async(g,n)=>{if(n.options||(n.options={}),Object.assign(n.options,i.options),Object.assign(n.options,n.options._pkgOptions||{}),r.dryRun){_(c,"skipping prepare in dry-run mode");return}if(Vt(i),i._depsUpdated=!0,n.cwd=p,!n.branch)throw new Error("context.branch is required");const v=r.firstParent?n.branch.name:void 0;n.commits=await I(a,p,n.lastRelease?n.lastRelease.gitHead:void 0,n.nextRelease?n.nextRelease.gitHead:void 0,v),d.prepare&&await d.prepare(n),i._prepared=!0,_(c,"prepared")},"prepare"),publish:E(async(g,n)=>{if(n.options||(n.options={}),Object.assign(n.options,i.options),Object.assign(n.options,n.options._pkgOptions||{}),r.dryRun)return _(c,"skipping publish in dry-run mode"),[];n.cwd=p;let v=[];if(d.publish){const b=await d.publish?.(n);b!==void 0&&(v=Array.isArray(b)?b:[b])}return i._published=!0,_(c,"published"),v.length>0?v[0]:{}},"publish"),verifyConditions:E(async(g,n)=>{n.options||(n.options={}),Object.assign(n.options,i.options),Object.assign(n.options,n.options._pkgOptions||{}),Object.assign(i.fakeLogger,n.logger||{}),n.cwd=p,d.verifyConditions&&await d.verifyConditions(n),i._ready=!0,_(c,"verified conditions")},"verifyConditions"),verifyRelease:E(async(g,n)=>{n.options||(n.options={}),Object.assign(n.options,i.options),Object.assign(n.options,n.options._pkgOptions||{}),n.cwd=p,await d?.verifyRelease?.(n),_(c,"release verified")},"verifyRelease")};return Object.keys(f).forEach(g=>Reflect.defineProperty(f[g],"pluginName",{enumerable:!0,value:"Inline plugin",writable:!1})),_(c,"inlinePlugin created"),f},"createInlinePlugin")},"createInlinePluginCreator");var Kt=Object.defineProperty,Yt=y((e,t)=>Kt(e,"name",{value:t,configurable:!0}),"o$1");const x="release",Qt=["package.json",`.${x}rc`,`.${x}rc.json`,`.${x}rc.yaml`,`.${x}rc.yml`,`.${x}rc.js`,`.${x}rc.cjs`,`.${x}rc.mjs`,`${x}.config.js`,`${x}.config.cjs`,`${x}.config.mjs`],be=Yt(async e=>(await ue(x,{mergeSearchPlaces:!1,searchPlaces:Qt}).search(e))?.config??{},"getConfig");var Xt=Object.defineProperty,ye=y((e,t)=>Xt(e,"name",{value:t,configurable:!0}),"r");const ae=ye(e=>e==null,"isNil"),H=ye((e={},t={})=>({...e,...ee(t,r=>!ae(r)),deps:{...e.deps,...ee(t.deps,r=>!ae(r))},ignorePackages:[...new Set([...L(e.ignorePackages||[]),...L(t.ignorePackages||[])])]}),"mergeConfig");var Zt=Object.defineProperty,er=y((e,t)=>Zt(e,"name",{value:t,configurable:!0}),"o");const P="multi-release",tr=["package.json",`.${P}rc`,`.${P}rc.json`,`.${P}rc.yaml`,`.${P}rc.yml`,`.${P}rc.js`,`.${P}rc.cjs`,`.${P}rc.mjs`,`${P}.config.js`,`${P}.config.cjs`,`${P}.config.mjs`],rr=er(async(e,t)=>{const{config:r}=await ue(P,{searchPlaces:tr}).search(e)||{},{extends:a,...s}={...r};let o=s;if(a){const i=Je(import.meta.url),p=L(a).reduce((l,d)=>{const c=i(Ue(e,d));return H(l,c)},{});o=H(o,p)}return o=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}"},o),H(o,t)},"getConfigMultiSemrel");var nr=Object.defineProperty,ar=y((e,t)=>nr(e,"name",{value:t,configurable:!0}),"t");const{Signale:sr}=ie,or=ar(async({cwd:e,env:t,stderr:r,stdout:a},s)=>{try{const o=new le,i=new sr({stream:o});return await Ge({cwd:e,env:t,logger:i,stderr:r,stdout:a},s)}catch(o){throw j.failure("Error in semantic-release getConfig(): %0",o),o}},"getConfigSemantic");var ir=Object.defineProperty,cr=y((e,t)=>ir(e,"name",{value:t,configurable:!0}),"s");class se extends ce{static{y(this,"p")}static{cr(this,"RescopedStream")}_stream;_scope;constructor(t,r){super(),k(r,"scope: string"),k(t,"stream: stream"),this._stream=t,this._scope=r}write(t){return k(t,"msg: string"),this._stream.write(t.replace("[semantic-release]",`[${this._scope}]`))}}var lr=Object.defineProperty,q=y((e,t)=>lr(e,"name",{value:t,configurable:!0}),"v");const pr=q(async(e,{cwd:t,env:r,globalOptions:a,inputOptions:s,stderr:o,stdout:i})=>{e=S(e,t);const p=Pe(e),l=ge(e),{name:d}=l,c=Object.keys({...l.dependencies,...l.devDependencies,...l.peerDependencies,...l.optionalDependencies}),f=await be(p),g={...a,...f,...s},n={error(){},log(){}},v=Object.fromEntries(Object.entries(r).filter(([,m])=>m!==void 0).map(([m,h])=>[m,String(h)])),{options:b,plugins:u}=await or({cwd:p,env:v,stderr:o,stdout:i},g);return{deps:c,dir:p,fakeLogger:n,localDeps:[],manifest:l,name:d,options:b,path:e,plugins:u}},"getPackage"),dr=q(async(e,t,r,a)=>{const{dir:s,name:o,options:i}=e,{env:p,stderr:l,stdout:d}=r,c=t(e),f={...i,...c},g={name:o,version:"${version}"},n="${name}@${version}";return f.tagFormat=Se(a.tagFormat||n)(g),f.debug=a.debug,f.dryRun=a.dryRun===void 0?f.dryRun:a.dryRun,f.ci=a.ci===void 0?f.ci:a.ci,f.branches=a.branches?L(a.branches):f.branches,f._pkgOptions=i,e.result=await Me(f,{cwd:s,env:p,stderr:new se(l,o),stdout:new se(d,o)}),e},"releasePackage"),Mr=q(async(e,t={},{cwd:r=process.cwd(),env:a=process.env,stderr:s=process.stderr,stdout:o=process.stdout}={},i={})=>{e&&k(e,"paths: string[]"),k(r,"cwd: directory"),k(a,"env: objectlike"),k(o,"stdout: stream"),k(s,"stderr: stream"),r=S(r);const p=await rr(r,i),l={deps:{},...p,...i};j.config.stdio=[s,o],j.config.level=l.logLevel,l.silent&&(j.config.level="silent"),l.debug&&(j.config.level="debug"),j.info(`multi-semantic-release version: ${Ye.version}`),j.info(`semantic-release version: ${Ne.version}`),l.debug&&j.info(`flags: ${JSON.stringify(l,null,2)}`);const d=await be(r),c={cwd:r,env:a,globalOptions:d,inputOptions:t,stderr:s,stdout:o},{packages:f,queue:g}=await Te({cwd:r,filter:q((u=>{const m=u.manifest;return(!l.ignorePrivate||!m.private)&&(e?e.includes(u.manifestAbsPath)||e.includes(u.manifestRelPath):!0)}),"filter"),workspacesExtra:Array.isArray(l.ignorePackages)?l.ignorePackages.map(u=>`!${u}`):[]});e=e||Object.values(f).map(u=>u.manifestPath),j.complete(`Started multirelease! Loading ${e.length} packages...`);let n=await Promise.all(e.map(u=>pr(u,c)));n=n.filter(u=>u!==void 0),n.forEach(u=>{u.localDeps=[...new Set(u.deps.map(m=>n.find(h=>m===h.name)).filter(Boolean))],j.success(`Loaded package ${u.name}`)}),j.complete(`Queued ${g.length} packages! Starting release...`);const v=Gt(n,c,l),b=await g.reduce(async(u,m)=>{const h=await u,w=n.find(({name:O})=>O===m);if(w){const{result:O}=await dr(w,v,c,l);if(O)return h+1}return h},Promise.resolve(0));return j.complete(`Released ${b} of ${g.length} packages, semantically!`),Ce(n,({name:u})=>g.indexOf(u))},"multiSemanticRelease");export{Mr as q,j as u};
|