diff --git a/.babelrc b/.babelrc index 3313ff9..6e839ba 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,6 @@ { - "presets": ["@babel/preset-env", "@babel/preset-typescript"] + "presets": [ + ["@babel/preset-env", { "targets": { "node": 10 } }], + "@babel/preset-typescript" + ] } diff --git a/dist/index.js b/dist/index.js index 166134c..e32ab6c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -38,11 +38,11 @@ module.exports=s,s.sync=l;var e="win32"===process.platform||"cygwin"===process.e "use strict";var e=require("shebang-regex");module.exports=function(r){var t=r.match(e);if(!t)return null;var n=t[0].replace(/#! ?/,"").split(" "),u=n[0].split("/").pop(),a=n[1];return"env"===u?a:u+(a?" "+a:"")}; },{"shebang-regex":"v9G4"}],"kW6h":[function(require,module,exports) { "use strict";const e=require("fs"),r=require("shebang-command");function c(c){let n,t;Buffer.alloc?n=Buffer.alloc(150):(n=new Buffer(150)).fill(0);try{t=e.openSync(c,"r"),e.readSync(t,n,0,150,0),e.closeSync(t)}catch(o){}return r(n.toString())}module.exports=c; -},{"shebang-command":"pvUo"}],"aric":[function(require,module,exports) { +},{"shebang-command":"pvUo"}],"xCHu":[function(require,module,exports) { var e;exports=module.exports=Q,e="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},exports.SEMVER_SPEC_VERSION="2.0.0";var r=256,t=Number.MAX_SAFE_INTEGER||9007199254740991,n=16,o=exports.re=[],s=exports.src=[],i=0,a=i++;s[a]="0|[1-9]\\d*";var p=i++;s[p]="[0-9]+";var u=i++;s[u]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var c=i++;s[c]="("+s[a]+")\\.("+s[a]+")\\.("+s[a]+")";var h=i++;s[h]="("+s[p]+")\\.("+s[p]+")\\.("+s[p]+")";var l=i++;s[l]="(?:"+s[a]+"|"+s[u]+")";var f=i++;s[f]="(?:"+s[p]+"|"+s[u]+")";var v=i++;s[v]="(?:-("+s[l]+"(?:\\."+s[l]+")*))";var m=i++;s[m]="(?:-?("+s[f]+"(?:\\."+s[f]+")*))";var w=i++;s[w]="[0-9A-Za-z-]+";var g=i++;s[g]="(?:\\+("+s[w]+"(?:\\."+s[w]+")*))";var y=i++,x="v?"+s[c]+s[v]+"?"+s[g]+"?";s[y]="^"+x+"$";var d="[v=\\s]*"+s[h]+s[m]+"?"+s[g]+"?",j=i++;s[j]="^"+d+"$";var E=i++;s[E]="((?:<|>)?=?)";var b=i++;s[b]=s[p]+"|x|X|\\*";var $=i++;s[$]=s[a]+"|x|X|\\*";var R=i++;s[R]="[v=\\s]*("+s[$]+")(?:\\.("+s[$]+")(?:\\.("+s[$]+")(?:"+s[v]+")?"+s[g]+"?)?)?";var S=i++;s[S]="[v=\\s]*("+s[b]+")(?:\\.("+s[b]+")(?:\\.("+s[b]+")(?:"+s[m]+")?"+s[g]+"?)?)?";var T=i++;s[T]="^"+s[E]+"\\s*"+s[R]+"$";var P=i++;s[P]="^"+s[E]+"\\s*"+s[S]+"$";var k=i++;s[k]="(?:^|[^\\d])(\\d{1,"+n+"})(?:\\.(\\d{1,"+n+"}))?(?:\\.(\\d{1,"+n+"}))?(?:$|[^\\d])";var I=i++;s[I]="(?:~>?)";var V=i++;s[V]="(\\s*)"+s[I]+"\\s+",o[V]=new RegExp(s[V],"g");var C="$1~",N=i++;s[N]="^"+s[I]+s[R]+"$";var A=i++;s[A]="^"+s[I]+s[S]+"$";var M=i++;s[M]="(?:\\^)";var _=i++;s[_]="(\\s*)"+s[M]+"\\s+",o[_]=new RegExp(s[_],"g");var q="$1^",D=i++;s[D]="^"+s[M]+s[R]+"$";var X=i++;s[X]="^"+s[M]+s[S]+"$";var z=i++;s[z]="^"+s[E]+"\\s*("+d+")$|^$";var G=i++;s[G]="^"+s[E]+"\\s*("+x+")$|^$";var O=i++;s[O]="(\\s*)"+s[E]+"\\s*("+d+"|"+s[R]+")",o[O]=new RegExp(s[O],"g");var U="$1$2$3",Z=i++;s[Z]="^\\s*("+s[R]+")\\s+-\\s+("+s[R]+")\\s*$";var B=i++;s[B]="^\\s*("+s[S]+")\\s+-\\s+("+s[S]+")\\s*$";var L=i++;s[L]="(<|>)?=?\\s*\\*";for(var F=0;Fr)return null;if(!(t.loose?o[j]:o[y]).test(e))return null;try{return new Q(e,t)}catch(n){return null}}function J(e,r){var t=H(e,r);return t?t.version:null}function K(e,r){var t=H(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}function Q(n,s){if(s&&"object"==typeof s||(s={loose:!!s,includePrerelease:!1}),n instanceof Q){if(n.loose===s.loose)return n;n=n.version}else if("string"!=typeof n)throw new TypeError("Invalid Version: "+n);if(n.length>r)throw new TypeError("version is longer than "+r+" characters");if(!(this instanceof Q))return new Q(n,s);e("SemVer",n,s),this.options=s,this.loose=!!s.loose;var i=n.trim().match(s.loose?o[j]:o[y]);if(!i)throw new TypeError("Invalid Version: "+n);if(this.raw=n,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>t||this.major<0)throw new TypeError("Invalid major version");if(this.minor>t||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>t||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var r=+e;if(r>=0&&r=0;)"number"==typeof this.prerelease[t]&&(this.prerelease[t]++,t=-2);-1===t&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},exports.inc=W,exports.diff=Y,exports.compareIdentifiers=re;var ee=/^[0-9]+$/;function re(e,r){var t=ee.test(e),n=ee.test(r);return t&&n&&(e=+e,r=+r),e===r?0:t&&!n?-1:n&&!t?1:e0}function le(e,r,t){return ie(e,r,t)<0}function fe(e,r,t){return 0===ie(e,r,t)}function ve(e,r,t){return 0!==ie(e,r,t)}function me(e,r,t){return ie(e,r,t)>=0}function we(e,r,t){return ie(e,r,t)<=0}function ge(e,r,t,n){switch(r){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof t&&(t=t.version),e===t;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof t&&(t=t.version),e!==t;case"":case"=":case"==":return fe(e,t,n);case"!=":return ve(e,t,n);case">":return he(e,t,n);case">=":return me(e,t,n);case"<":return le(e,t,n);case"<=":return we(e,t,n);default:throw new TypeError("Invalid operator: "+r)}}function ye(r,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),r instanceof ye){if(r.loose===!!t.loose)return r;r=r.value}if(!(this instanceof ye))return new ye(r,t);e("comparator",r,t),this.options=t,this.loose=!!t.loose,this.parse(r),this.semver===xe?this.value="":this.value=this.operator+this.semver.version,e("comp",this)}exports.rcompareIdentifiers=te,exports.major=ne,exports.minor=oe,exports.patch=se,exports.compare=ie,exports.compareLoose=ae,exports.rcompare=pe,exports.sort=ue,exports.rsort=ce,exports.gt=he,exports.lt=le,exports.eq=fe,exports.neq=ve,exports.gte=me,exports.lte=we,exports.cmp=ge,exports.Comparator=ye;var xe={};function de(e,r){if(r&&"object"==typeof r||(r={loose:!!r,includePrerelease:!1}),e instanceof de)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new de(e.raw,r);if(e instanceof ye)return new de(e.value,r);if(!(this instanceof de))return new de(e,r);if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function je(e,r){return new de(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function Ee(r,t){return e("comp",r,t),r=Se(r,t),e("caret",r),r=$e(r,t),e("tildes",r),r=Pe(r,t),e("xrange",r),r=Ie(r,t),e("stars",r),r}function be(e){return!e||"x"===e.toLowerCase()||"*"===e}function $e(e,r){return e.trim().split(/\s+/).map(function(e){return Re(e,r)}).join(" ")}function Re(r,t){var n=t.loose?o[A]:o[N];return r.replace(n,function(t,n,o,s,i){var a;return e("tilde",r,t,n,o,s,i),be(n)?a="":be(o)?a=">="+n+".0.0 <"+(+n+1)+".0.0":be(s)?a=">="+n+"."+o+".0 <"+n+"."+(+o+1)+".0":i?(e("replaceTilde pr",i),a=">="+n+"."+o+"."+s+"-"+i+" <"+n+"."+(+o+1)+".0"):a=">="+n+"."+o+"."+s+" <"+n+"."+(+o+1)+".0",e("tilde return",a),a})}function Se(e,r){return e.trim().split(/\s+/).map(function(e){return Te(e,r)}).join(" ")}function Te(r,t){e("caret",r,t);var n=t.loose?o[X]:o[D];return r.replace(n,function(t,n,o,s,i){var a;return e("caret",r,t,n,o,s,i),be(n)?a="":be(o)?a=">="+n+".0.0 <"+(+n+1)+".0.0":be(s)?a="0"===n?">="+n+"."+o+".0 <"+n+"."+(+o+1)+".0":">="+n+"."+o+".0 <"+(+n+1)+".0.0":i?(e("replaceCaret pr",i),a="0"===n?"0"===o?">="+n+"."+o+"."+s+"-"+i+" <"+n+"."+o+"."+(+s+1):">="+n+"."+o+"."+s+"-"+i+" <"+n+"."+(+o+1)+".0":">="+n+"."+o+"."+s+"-"+i+" <"+(+n+1)+".0.0"):(e("no pr"),a="0"===n?"0"===o?">="+n+"."+o+"."+s+" <"+n+"."+o+"."+(+s+1):">="+n+"."+o+"."+s+" <"+n+"."+(+o+1)+".0":">="+n+"."+o+"."+s+" <"+(+n+1)+".0.0"),e("caret return",a),a})}function Pe(r,t){return e("replaceXRanges",r,t),r.split(/\s+/).map(function(e){return ke(e,t)}).join(" ")}function ke(r,t){r=r.trim();var n=t.loose?o[P]:o[T];return r.replace(n,function(t,n,o,s,i,a){e("xRange",r,t,n,o,s,i,a);var p=be(o),u=p||be(s),c=u||be(i);return"="===n&&c&&(n=""),p?t=">"===n||"<"===n?"<0.0.0":"*":n&&c?(u&&(s=0),i=0,">"===n?(n=">=",u?(o=+o+1,s=0,i=0):(s=+s+1,i=0)):"<="===n&&(n="<",u?o=+o+1:s=+s+1),t=n+o+"."+s+"."+i):u?t=">="+o+".0.0 <"+(+o+1)+".0.0":c&&(t=">="+o+"."+s+".0 <"+o+"."+(+s+1)+".0"),e("xRange return",t),t})}function Ie(r,t){return e("replaceStars",r,t),r.trim().replace(o[L],"")}function Ve(e,r,t,n,o,s,i,a,p,u,c,h,l){return((r=be(t)?"":be(n)?">="+t+".0.0":be(o)?">="+t+"."+n+".0":">="+r)+" "+(a=be(p)?"":be(u)?"<"+(+p+1)+".0.0":be(c)?"<"+p+"."+(+u+1)+".0":h?"<="+p+"."+u+"."+c+"-"+h:"<="+a)).trim()}function Ce(r,t,n){for(var o=0;o0){var s=r[o].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0}function Ne(e,r,t){try{r=new de(r,t)}catch(n){return!1}return r.test(e)}function Ae(e,r,t){var n=null,o=null;try{var s=new de(r,t)}catch(i){return null}return e.forEach(function(e){s.test(e)&&(n&&-1!==o.compare(e)||(o=new Q(n=e,t)))}),n}function Me(e,r,t){var n=null,o=null;try{var s=new de(r,t)}catch(i){return null}return e.forEach(function(e){s.test(e)&&(n&&1!==o.compare(e)||(o=new Q(n=e,t)))}),n}function _e(e,r){e=new de(e,r);var t=new Q("0.0.0");if(e.test(t))return t;if(t=new Q("0.0.0-0"),e.test(t))return t;t=null;for(var n=0;n":0===r.prerelease.length?r.patch++:r.prerelease.push(0),r.raw=r.format();case"":case">=":t&&!he(t,r)||(t=r);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}return t&&e.test(t)?t:null}function qe(e,r){try{return new de(e,r).range||"*"}catch(t){return null}}function De(e,r,t){return ze(e,r,"<",t)}function Xe(e,r,t){return ze(e,r,">",t)}function ze(e,r,t,n){var o,s,i,a,p;switch(e=new Q(e,n),r=new de(r,n),t){case">":o=he,s=we,i=le,a=">",p=">=";break;case"<":o=le,s=me,i=he,a="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ne(e,r,n))return!1;for(var u=0;u=0.0.0")),h=h||e,l=l||e,o(e.semver,h.semver,n)?h=e:i(e.semver,l.semver,n)&&(l=e)}),h.operator===a||h.operator===p)return!1;if((!l.operator||l.operator===a)&&s(e,l.semver))return!1;if(l.operator===p&&i(e,l.semver))return!1}return!0}function Ge(e,r){var t=H(e,r);return t&&t.prerelease.length?t.prerelease:null}function Oe(e,r,t){return e=new de(e,t),r=new de(r,t),e.intersects(r)}function Ue(e){if(e instanceof Q)return e;if("string"!=typeof e)return null;var r=e.match(o[k]);return null==r?null:H(r[1]+"."+(r[2]||"0")+"."+(r[3]||"0"))}ye.prototype.parse=function(e){var r=this.options.loose?o[z]:o[G],t=e.match(r);if(!t)throw new TypeError("Invalid comparator: "+e);this.operator=t[1],"="===this.operator&&(this.operator=""),t[2]?this.semver=new Q(t[2],this.options.loose):this.semver=xe},ye.prototype.toString=function(){return this.value},ye.prototype.test=function(r){return e("Comparator.test",r,this.options.loose),this.semver===xe||("string"==typeof r&&(r=new Q(r,this.options)),ge(r,this.operator,this.semver,this.options))},ye.prototype.intersects=function(e,r){if(!(e instanceof ye))throw new TypeError("a Comparator is required");var t;if(r&&"object"==typeof r||(r={loose:!!r,includePrerelease:!1}),""===this.operator)return t=new de(e.value,r),Ne(this.value,t,r);if(""===e.operator)return t=new de(this.value,r),Ne(e.semver,t,r);var n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),o=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),s=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=ge(this.semver,"<",e.semver,r)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),p=ge(this.semver,">",e.semver,r)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||o||s&&i||a||p},exports.Range=de,de.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range},de.prototype.toString=function(){return this.range},de.prototype.parseRange=function(r){var t=this.options.loose;r=r.trim();var n=t?o[B]:o[Z];r=r.replace(n,Ve),e("hyphen replace",r),r=r.replace(o[O],U),e("comparator trim",r,o[O]),r=(r=(r=r.replace(o[V],C)).replace(o[_],q)).split(/\s+/).join(" ");var s=t?o[z]:o[G],i=r.split(" ").map(function(e){return Ee(e,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(s)})),i=i.map(function(e){return new ye(e,this.options)},this)},de.prototype.intersects=function(e,r){if(!(e instanceof de))throw new TypeError("a Range is required");return this.set.some(function(t){return t.every(function(t){return e.set.some(function(e){return e.every(function(e){return t.intersects(e,r)})})})})},exports.toComparators=je,de.prototype.test=function(e){if(!e)return!1;"string"==typeof e&&(e=new Q(e,this.options));for(var r=0;ri.satisfies(process.version,"^4.8.0 || ^5.7.0 || >= 6.0.0",!0))||!1;function l(e){e.file=o(e);const n=e.file&&r(e.file);return n?(e.args.unshift(e.file),e.command=n,o(e)):e.file}function d(n){if(!t)return n;const o=l(n),r=!c.test(o);if(n.options.forceShell||r){const r=m.test(o);n.command=e.normalize(n.command),n.command=s.command(n.command),n.args=n.args.map(e=>s.argument(e,r));const i=[n.command].concat(n.args).join(" ");n.args=["/d","/s","/c",`"${i}"`],n.command=process.env.comspec||"cmd.exe",n.options.windowsVerbatimArguments=!0}return n}function u(e){if(a)return e;const n=[e.command].concat(e.args).join(" ");return t?(e.command="string"==typeof e.options.shell?e.options.shell:process.env.comspec||"cmd.exe",e.args=["/d","/s","/c",`"${n}"`],e.options.windowsVerbatimArguments=!0):("string"==typeof e.options.shell?e.command=e.options.shell:"android"===process.platform?e.command="/system/bin/sh":e.command="/bin/sh",e.args=["-c",n]),e}function p(e,n,o){n&&!Array.isArray(n)&&(o=n,n=null);const s={command:e,args:n=n?n.slice(0):[],options:o=Object.assign({},o),file:void 0,original:{command:e,args:n}};return o.shell?u(s):d(s)}module.exports=p; -},{"nice-try":"epHk","./util/resolveCommand":"ynrf","./util/escape":"c3Xa","./util/readShebang":"kW6h","semver":"aric"}],"C2XZ":[function(require,module,exports) { +},{"nice-try":"epHk","./util/resolveCommand":"ynrf","./util/escape":"c3Xa","./util/readShebang":"kW6h","semver":"xCHu"}],"C2XZ":[function(require,module,exports) { "use strict";const n="win32"===process.platform;function r(n,r){return Object.assign(new Error(`${r} ${n.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${r} ${n.command}`,path:n.command,spawnargs:n.args})}function o(r,o){if(!n)return;const e=r.emit;r.emit=function(n,i){if("exit"===n){const n=t(i,o,"spawn");if(n)return e.call(r,"error",n)}return e.apply(r,arguments)}}function t(o,t){return n&&1===o&&!t.file?r(t.original,"spawn"):null}function e(o,t){return n&&1===o&&!t.file?r(t.original,"spawnSync"):null}module.exports={hookChildProcess:o,verifyENOENT:t,verifyENOENTSync:e,notFoundError:r}; },{}],"K+Pn":[function(require,module,exports) { "use strict";const e=require("child_process"),o=require("./lib/parse"),r=require("./lib/enoent");function s(s,n,t){const c=o(s,n,t),u=e.spawn(c.command,c.args,c.options);return r.hookChildProcess(u,c),u}function n(s,n,t){const c=o(s,n,t),u=e.spawnSync(c.command,c.args,c.options);return u.error=u.error||r.verifyENOENTSync(u.status,c),u}module.exports=s,module.exports.spawn=s,module.exports.sync=n,module.exports._parse=o,module.exports._enoent=r; @@ -993,7 +993,9 @@ module.exports=["cent","copy","divide","gt","lt","not","para","times"]; },{"unherit":"3hHz","xtend":"YxsI","./lib/compiler.js":"kB+d"}],"ljHw":[function(require,module,exports) { "use strict";function t(n){return e(n)||n.children&&n.children.map(t).join("")||""}function e(t){return(t&&t.value?t.value:t.alt?t.alt:t.title)||""}module.exports=t; },{}],"UnXq":[function(require,module,exports) { -"use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("unified")),r=e(require("remark-parse")),i=e(require("remark-stringify")),l=e(require("mdast-util-to-string"));function n(e,n){let u,d,o=t.default().use(r.default).parse(e),s=exports.BumpLevels.dep,a=o.children;for(let t=0;t{o+=e.toString()},stderr:e=>{s+=e.toString()}}},a)),stdout:o,stderr:s}}(async()=>{let e=process.env.GITHUB_TOKEN;if(!e)return void s.setFailed("Please add the GITHUB_TOKEN to the changesets action");let n=`${i.context.repo.owner}/${i.context.repo.repo}`;const a=new i.GitHub(e);let o=a.repos.get(i.context.repo).then(e=>e.data.default_branch);console.log("setting git user"),await r.exec("git",["config","--global","user.name",'"github-actions[bot]"']),await r.exec("git",["config","--global","user.email",'"github-actions[bot]@users.noreply.github.com"']),console.log("setting GitHub credentials"),await l.default.writeFile(`${process.env.HOME}/.netrc`,`machine github.com\nlogin github-actions[bot]\npassword ${e}`);let h=await o;if(i.context.ref.replace("refs/heads/","")!==h)return void s.setFailed(`The changesets action should only run on ${h} but it's running on ${i.context.ref.replace("refs/heads/","")}, please change your GitHub actions config to only run the Changesets action on ${h}`);let p=l.default.readdirSync(`${process.cwd()}/.changeset`).some(e=>"config.js"!==e&&"README.md"!==e),f=s.getInput("publish");if(!p&&!f)return void console.log("No changesets found");if(!p&&f){console.log("No changesets found, attempting to publish any unpublished packages to npm");let e=await c.default({tools:["bolt","yarn","root"]});if(!e)return s.setFailed("Could not find workspaces");let n=new Map(e.map(e=>[e.name,e]));l.default.writeFileSync(`${process.env.HOME}/.npmrc`,`//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}`);let[o,...p]=f.split(/\s+/),b=await d(o,p);await r.exec("git",["push","origin",`HEAD:${h}`,"--follow-tags"]);let w=/New tag:\s+(@[^\/]+\/[^@]+|[^\/]+)@([^\s]+)/,m=[];for(let t of b.stdout.split("\n")){let e=t.match(w);if(null===e)continue;let a=e[1],o=n.get(a);if(void 0===o)return s.setFailed("Workspace not found for "+a+". This is probably a bug in the action, please open an issue");m.push(o)}return void(await Promise.all(m.map(async e=>{try{let o=u.default.join(e.dir,"CHANGELOG.md"),r=await l.default.readFile(o,"utf8"),c=g.getChangelogEntry(r,e.config.version);if(!c)return s.setFailed(`Could not find changelog entry for ${e.name}@${e.config.version}`);await a.repos.createRelease(t({tag_name:`${e.name}@${e.config.version}`,body:c.content,prerelease:e.config.version.includes("-")},i.context.repo))}catch(n){if("ENOENT"!==n.code)throw n}})))}let{stderr:b}=await d("git",["checkout","changeset-release"],{ignoreReturnCode:!0}),w=!b.toString().includes("Switched to a new branch 'changeset-release'");w&&await r.exec("git",["checkout","-b","changeset-release"]);let m=w;if(!m){console.log("checking if new changesets should be added");const e=(await d("git",["merge-base","changeset-release",i.context.sha])).stdout.trim();m=(await d("git",["diff","--name-only",`${e}...${i.context.sha}`])).stdout.trim().includes(".changeset"),console.log("checked if new changesets should be added "+m)}if(m){await r.exec("git",["reset","--hard",i.context.sha]);let e=await d("node",["./node_modules/.bin/changeset","bump"]),o=`repo:${n}+state:open+head:changeset-release+base:${h}`,s=a.search.issuesAndPullRequests({q:o}),c=(async()=>{let t=/Updated file (.+)/,n=[];for(let a of e.stdout.split("\n")){let e=a.match(t);null!==e&&n.push(e[1])}return`This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and ${f?"the packages will be published to npm automatically":"publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)"}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${h}, this PR will be updated.\n\n# Releases\n`+(await Promise.all(n.map(async e=>{let[t,n]=await Promise.all([l.default.readJson(u.default.join(u.default.dirname(e),"package.json")),l.default.readFile(e,"utf8")]),a=g.getChangelogEntry(n,t.version);return{highestLevel:a.highestLevel,content:`## ${t.name}@${t.version}\n\n`+a.content}}))).sort((e,t)=>t.highestLevel-e.highestLevel).map(e=>e.content).join("\n ")})();await r.exec("git",["add","."]),await r.exec("git",["commit","-m","Version Packages"]),await r.exec("git",["push","origin","changeset-release","--force"]);let p=await s;console.log(JSON.stringify(p.data,null,2)),0===p.data.items.length?(console.log("creating pull request"),await a.pulls.create(t({base:h,head:"changeset-release",title:"Version Packages",body:await c},i.context.repo))):(a.pulls.update(t({pull_number:p.data.items[0].number,body:await c},i.context.repo)),console.log("pull request found"))}else console.log("no new changesets")})().catch(e=>{console.error(e),s.setFailed(e.message)}); -},{"@actions/core":"4FTV","@actions/exec":"utFe","@actions/github":"8Dol","fs-extra":"JTJ9","get-workspaces":"kAcF","./utils":"UnXq"}]},{},["7QCb"], null) \ No newline at end of file +"use strict";function e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function t(t){for(var n=1;n[e.dir,e])),n=(await g("git",["diff","--only-names"],{cwd:e})).stdout.split("\n"),i=[];for(let o of n){let e=d.default.dirname(o),t=r.get(e);void 0!==t&&i.push(t)}return i}function h(e,t){let r,n,i=o.default().use(u.default).parse(e),l=exports.BumpLevels.dep,c=i.children;for(let o=0;o{i+=e.toString()},stderr:e=>{o+=e.toString()}}},n)),stdout:i,stderr:o}}exports.BumpLevels={dep:0,patch:1,minor:2,major:3},exports.getChangedPackages=f,exports.getChangelogEntry=h,exports.execWithOutput=g; +},{"unified":"EJQW","remark-parse":"+8Y3","remark-stringify":"eCnT","mdast-util-to-string":"ljHw","@actions/exec":"utFe","@actions/core":"4FTV","get-workspaces":"kAcF"}],"aric":[function(require,module,exports) { +var e;exports=module.exports=f,e="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},exports.SEMVER_SPEC_VERSION="2.0.0";var r=256,t=Number.MAX_SAFE_INTEGER||9007199254740991,n=16,o=exports.re=[],s=exports.src=[],i=exports.tokens={},a=0;function E(e){i[e]=a++}E("NUMERICIDENTIFIER"),s[i.NUMERICIDENTIFIER]="0|[1-9]\\d*",E("NUMERICIDENTIFIERLOOSE"),s[i.NUMERICIDENTIFIERLOOSE]="[0-9]+",E("NONNUMERICIDENTIFIER"),s[i.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",E("MAINVERSION"),s[i.MAINVERSION]="("+s[i.NUMERICIDENTIFIER]+")\\.("+s[i.NUMERICIDENTIFIER]+")\\.("+s[i.NUMERICIDENTIFIER]+")",E("MAINVERSIONLOOSE"),s[i.MAINVERSIONLOOSE]="("+s[i.NUMERICIDENTIFIERLOOSE]+")\\.("+s[i.NUMERICIDENTIFIERLOOSE]+")\\.("+s[i.NUMERICIDENTIFIERLOOSE]+")",E("PRERELEASEIDENTIFIER"),s[i.PRERELEASEIDENTIFIER]="(?:"+s[i.NUMERICIDENTIFIER]+"|"+s[i.NONNUMERICIDENTIFIER]+")",E("PRERELEASEIDENTIFIERLOOSE"),s[i.PRERELEASEIDENTIFIERLOOSE]="(?:"+s[i.NUMERICIDENTIFIERLOOSE]+"|"+s[i.NONNUMERICIDENTIFIER]+")",E("PRERELEASE"),s[i.PRERELEASE]="(?:-("+s[i.PRERELEASEIDENTIFIER]+"(?:\\."+s[i.PRERELEASEIDENTIFIER]+")*))",E("PRERELEASELOOSE"),s[i.PRERELEASELOOSE]="(?:-?("+s[i.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+s[i.PRERELEASEIDENTIFIERLOOSE]+")*))",E("BUILDIDENTIFIER"),s[i.BUILDIDENTIFIER]="[0-9A-Za-z-]+",E("BUILD"),s[i.BUILD]="(?:\\+("+s[i.BUILDIDENTIFIER]+"(?:\\."+s[i.BUILDIDENTIFIER]+")*))",E("FULL"),E("FULLPLAIN"),s[i.FULLPLAIN]="v?"+s[i.MAINVERSION]+s[i.PRERELEASE]+"?"+s[i.BUILD]+"?",s[i.FULL]="^"+s[i.FULLPLAIN]+"$",E("LOOSEPLAIN"),s[i.LOOSEPLAIN]="[v=\\s]*"+s[i.MAINVERSIONLOOSE]+s[i.PRERELEASELOOSE]+"?"+s[i.BUILD]+"?",E("LOOSE"),s[i.LOOSE]="^"+s[i.LOOSEPLAIN]+"$",E("GTLT"),s[i.GTLT]="((?:<|>)?=?)",E("XRANGEIDENTIFIERLOOSE"),s[i.XRANGEIDENTIFIERLOOSE]=s[i.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",E("XRANGEIDENTIFIER"),s[i.XRANGEIDENTIFIER]=s[i.NUMERICIDENTIFIER]+"|x|X|\\*",E("XRANGEPLAIN"),s[i.XRANGEPLAIN]="[v=\\s]*("+s[i.XRANGEIDENTIFIER]+")(?:\\.("+s[i.XRANGEIDENTIFIER]+")(?:\\.("+s[i.XRANGEIDENTIFIER]+")(?:"+s[i.PRERELEASE]+")?"+s[i.BUILD]+"?)?)?",E("XRANGEPLAINLOOSE"),s[i.XRANGEPLAINLOOSE]="[v=\\s]*("+s[i.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+s[i.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+s[i.XRANGEIDENTIFIERLOOSE]+")(?:"+s[i.PRERELEASELOOSE]+")?"+s[i.BUILD]+"?)?)?",E("XRANGE"),s[i.XRANGE]="^"+s[i.GTLT]+"\\s*"+s[i.XRANGEPLAIN]+"$",E("XRANGELOOSE"),s[i.XRANGELOOSE]="^"+s[i.GTLT]+"\\s*"+s[i.XRANGEPLAINLOOSE]+"$",E("COERCE"),s[i.COERCE]="(^|[^\\d])(\\d{1,"+n+"})(?:\\.(\\d{1,"+n+"}))?(?:\\.(\\d{1,"+n+"}))?(?:$|[^\\d])",E("COERCERTL"),o[i.COERCERTL]=new RegExp(s[i.COERCE],"g"),E("LONETILDE"),s[i.LONETILDE]="(?:~>?)",E("TILDETRIM"),s[i.TILDETRIM]="(\\s*)"+s[i.LONETILDE]+"\\s+",o[i.TILDETRIM]=new RegExp(s[i.TILDETRIM],"g");var p="$1~";E("TILDE"),s[i.TILDE]="^"+s[i.LONETILDE]+s[i.XRANGEPLAIN]+"$",E("TILDELOOSE"),s[i.TILDELOOSE]="^"+s[i.LONETILDE]+s[i.XRANGEPLAINLOOSE]+"$",E("LONECARET"),s[i.LONECARET]="(?:\\^)",E("CARETTRIM"),s[i.CARETTRIM]="(\\s*)"+s[i.LONECARET]+"\\s+",o[i.CARETTRIM]=new RegExp(s[i.CARETTRIM],"g");var u="$1^";E("CARET"),s[i.CARET]="^"+s[i.LONECARET]+s[i.XRANGEPLAIN]+"$",E("CARETLOOSE"),s[i.CARETLOOSE]="^"+s[i.LONECARET]+s[i.XRANGEPLAINLOOSE]+"$",E("COMPARATORLOOSE"),s[i.COMPARATORLOOSE]="^"+s[i.GTLT]+"\\s*("+s[i.LOOSEPLAIN]+")$|^$",E("COMPARATOR"),s[i.COMPARATOR]="^"+s[i.GTLT]+"\\s*("+s[i.FULLPLAIN]+")$|^$",E("COMPARATORTRIM"),s[i.COMPARATORTRIM]="(\\s*)"+s[i.GTLT]+"\\s*("+s[i.LOOSEPLAIN]+"|"+s[i.XRANGEPLAIN]+")",o[i.COMPARATORTRIM]=new RegExp(s[i.COMPARATORTRIM],"g");var c="$1$2$3";E("HYPHENRANGE"),s[i.HYPHENRANGE]="^\\s*("+s[i.XRANGEPLAIN]+")\\s+-\\s+("+s[i.XRANGEPLAIN]+")\\s*$",E("HYPHENRANGELOOSE"),s[i.HYPHENRANGELOOSE]="^\\s*("+s[i.XRANGEPLAINLOOSE]+")\\s+-\\s+("+s[i.XRANGEPLAINLOOSE]+")\\s*$",E("STAR"),s[i.STAR]="(<|>)?=?\\s*\\*";for(var l=0;lr)return null;if(!(t.loose?o[i.LOOSE]:o[i.FULL]).test(e))return null;try{return new f(e,t)}catch(n){return null}}function I(e,r){var t=h(e,r);return t?t.version:null}function R(e,r){var t=h(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}function f(n,s){if(s&&"object"==typeof s||(s={loose:!!s,includePrerelease:!1}),n instanceof f){if(n.loose===s.loose)return n;n=n.version}else if("string"!=typeof n)throw new TypeError("Invalid Version: "+n);if(n.length>r)throw new TypeError("version is longer than "+r+" characters");if(!(this instanceof f))return new f(n,s);e("SemVer",n,s),this.options=s,this.loose=!!s.loose;var a=n.trim().match(s.loose?o[i.LOOSE]:o[i.FULL]);if(!a)throw new TypeError("Invalid Version: "+n);if(this.raw=n,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>t||this.major<0)throw new TypeError("Invalid major version");if(this.minor>t||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>t||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var r=+e;if(r>=0&&r=0;)"number"==typeof this.prerelease[t]&&(this.prerelease[t]++,t=-2);-1===t&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},exports.inc=O,exports.diff=N,exports.compareIdentifiers=v;var L=/^[0-9]+$/;function v(e,r){var t=L.test(e),n=L.test(r);return t&&n&&(e=+e,r=+r),e===r?0:t&&!n?-1:n&&!t?1:e0}function y(e,r,t){return w(e,r,t)<0}function M(e,r,t){return 0===w(e,r,t)}function F(e,r,t){return 0!==w(e,r,t)}function G(e,r,t){return w(e,r,t)>=0}function U(e,r,t){return w(e,r,t)<=0}function j(e,r,t,n){switch(r){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof t&&(t=t.version),e===t;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof t&&(t=t.version),e!==t;case"":case"=":case"==":return M(e,t,n);case"!=":return F(e,t,n);case">":return x(e,t,n);case">=":return G(e,t,n);case"<":return y(e,t,n);case"<=":return U(e,t,n);default:throw new TypeError("Invalid operator: "+r)}}function X(r,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),r instanceof X){if(r.loose===!!t.loose)return r;r=r.value}if(!(this instanceof X))return new X(r,t);e("comparator",r,t),this.options=t,this.loose=!!t.loose,this.parse(r),this.semver===b?this.value="":this.value=this.operator+this.semver.version,e("comp",this)}exports.rcompareIdentifiers=m,exports.major=T,exports.minor=A,exports.patch=S,exports.compare=w,exports.compareLoose=g,exports.compareBuild=P,exports.rcompare=C,exports.sort=d,exports.rsort=D,exports.gt=x,exports.lt=y,exports.eq=M,exports.neq=F,exports.gte=G,exports.lte=U,exports.cmp=j,exports.Comparator=X;var b={};function $(e,r){if(r&&"object"==typeof r||(r={loose:!!r,includePrerelease:!1}),e instanceof $)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new $(e.raw,r);if(e instanceof X)return new $(e.value,r);if(!(this instanceof $))return new $(e,r);if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function B(e,r){for(var t=!0,n=e.slice(),o=n.pop();t&&n.length;)t=n.every(function(e){return o.intersects(e,r)}),o=n.pop();return t}function V(e,r){return new $(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function k(r,t){return e("comp",r,t),r=q(r,t),e("caret",r),r=Y(r,t),e("tildes",r),r=Z(r,t),e("xrange",r),r=K(r,t),e("stars",r),r}function H(e){return!e||"x"===e.toLowerCase()||"*"===e}function Y(e,r){return e.trim().split(/\s+/).map(function(e){return _(e,r)}).join(" ")}function _(r,t){var n=t.loose?o[i.TILDELOOSE]:o[i.TILDE];return r.replace(n,function(t,n,o,s,i){var a;return e("tilde",r,t,n,o,s,i),H(n)?a="":H(o)?a=">="+n+".0.0 <"+(+n+1)+".0.0":H(s)?a=">="+n+"."+o+".0 <"+n+"."+(+o+1)+".0":i?(e("replaceTilde pr",i),a=">="+n+"."+o+"."+s+"-"+i+" <"+n+"."+(+o+1)+".0"):a=">="+n+"."+o+"."+s+" <"+n+"."+(+o+1)+".0",e("tilde return",a),a})}function q(e,r){return e.trim().split(/\s+/).map(function(e){return z(e,r)}).join(" ")}function z(r,t){e("caret",r,t);var n=t.loose?o[i.CARETLOOSE]:o[i.CARET];return r.replace(n,function(t,n,o,s,i){var a;return e("caret",r,t,n,o,s,i),H(n)?a="":H(o)?a=">="+n+".0.0 <"+(+n+1)+".0.0":H(s)?a="0"===n?">="+n+"."+o+".0 <"+n+"."+(+o+1)+".0":">="+n+"."+o+".0 <"+(+n+1)+".0.0":i?(e("replaceCaret pr",i),a="0"===n?"0"===o?">="+n+"."+o+"."+s+"-"+i+" <"+n+"."+o+"."+(+s+1):">="+n+"."+o+"."+s+"-"+i+" <"+n+"."+(+o+1)+".0":">="+n+"."+o+"."+s+"-"+i+" <"+(+n+1)+".0.0"):(e("no pr"),a="0"===n?"0"===o?">="+n+"."+o+"."+s+" <"+n+"."+o+"."+(+s+1):">="+n+"."+o+"."+s+" <"+n+"."+(+o+1)+".0":">="+n+"."+o+"."+s+" <"+(+n+1)+".0.0"),e("caret return",a),a})}function Z(r,t){return e("replaceXRanges",r,t),r.split(/\s+/).map(function(e){return J(e,t)}).join(" ")}function J(r,t){r=r.trim();var n=t.loose?o[i.XRANGELOOSE]:o[i.XRANGE];return r.replace(n,function(n,o,s,i,a,E){e("xRange",r,n,o,s,i,a,E);var p=H(s),u=p||H(i),c=u||H(a),l=c;return"="===o&&l&&(o=""),E=t.includePrerelease?"-0":"",p?n=">"===o||"<"===o?"<0.0.0-0":"*":o&&l?(u&&(i=0),a=0,">"===o?(o=">=",u?(s=+s+1,i=0,a=0):(i=+i+1,a=0)):"<="===o&&(o="<",u?s=+s+1:i=+i+1),n=o+s+"."+i+"."+a+E):u?n=">="+s+".0.0"+E+" <"+(+s+1)+".0.0"+E:c&&(n=">="+s+"."+i+".0"+E+" <"+s+"."+(+i+1)+".0"+E),e("xRange return",n),n})}function K(r,t){return e("replaceStars",r,t),r.trim().replace(o[i.STAR],"")}function Q(e,r,t,n,o,s,i,a,E,p,u,c,l){return((r=H(t)?"":H(n)?">="+t+".0.0":H(o)?">="+t+"."+n+".0":">="+r)+" "+(a=H(E)?"":H(p)?"<"+(+E+1)+".0.0":H(u)?"<"+E+"."+(+p+1)+".0":c?"<="+E+"."+p+"."+u+"-"+c:"<="+a)).trim()}function W(r,t,n){for(var o=0;o0){var s=r[o].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0}function ee(e,r,t){try{r=new $(r,t)}catch(n){return!1}return r.test(e)}function re(e,r,t){var n=null,o=null;try{var s=new $(r,t)}catch(i){return null}return e.forEach(function(e){s.test(e)&&(n&&-1!==o.compare(e)||(o=new f(n=e,t)))}),n}function te(e,r,t){var n=null,o=null;try{var s=new $(r,t)}catch(i){return null}return e.forEach(function(e){s.test(e)&&(n&&1!==o.compare(e)||(o=new f(n=e,t)))}),n}function ne(e,r){e=new $(e,r);var t=new f("0.0.0");if(e.test(t))return t;if(t=new f("0.0.0-0"),e.test(t))return t;t=null;for(var n=0;n":0===r.prerelease.length?r.patch++:r.prerelease.push(0),r.raw=r.format();case"":case">=":t&&!x(t,r)||(t=r);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}return t&&e.test(t)?t:null}function oe(e,r){try{return new $(e,r).range||"*"}catch(t){return null}}function se(e,r,t){return ae(e,r,"<",t)}function ie(e,r,t){return ae(e,r,">",t)}function ae(e,r,t,n){var o,s,i,a,E;switch(e=new f(e,n),r=new $(r,n),t){case">":o=x,s=U,i=y,a=">",E=">=";break;case"<":o=y,s=G,i=x,a="<",E="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ee(e,r,n))return!1;for(var p=0;p=0.0.0")),c=c||e,l=l||e,o(e.semver,c.semver,n)?c=e:i(e.semver,l.semver,n)&&(l=e)}),c.operator===a||c.operator===E)return!1;if((!l.operator||l.operator===a)&&s(e,l.semver))return!1;if(l.operator===E&&i(e,l.semver))return!1}return!0}function Ee(e,r){var t=h(e,r);return t&&t.prerelease.length?t.prerelease:null}function pe(e,r,t){return e=new $(e,t),r=new $(r,t),e.intersects(r)}function ue(e,r){if(e instanceof f)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;var t=null;if((r=r||{}).rtl){for(var n;(n=o[i.COERCERTL].exec(e))&&(!t||t.index+t[0].length!==e.length);)t&&n.index+n[0].length===t.index+t[0].length||(t=n),o[i.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;o[i.COERCERTL].lastIndex=-1}else t=e.match(o[i.COERCE]);return null===t?null:h(t[2]+"."+(t[3]||"0")+"."+(t[4]||"0"),r)}X.prototype.parse=function(e){var r=this.options.loose?o[i.COMPARATORLOOSE]:o[i.COMPARATOR],t=e.match(r);if(!t)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==t[1]?t[1]:"","="===this.operator&&(this.operator=""),t[2]?this.semver=new f(t[2],this.options.loose):this.semver=b},X.prototype.toString=function(){return this.value},X.prototype.test=function(r){if(e("Comparator.test",r,this.options.loose),this.semver===b||r===b)return!0;if("string"==typeof r)try{r=new f(r,this.options)}catch(t){return!1}return j(r,this.operator,this.semver,this.options)},X.prototype.intersects=function(e,r){if(!(e instanceof X))throw new TypeError("a Comparator is required");var t;if(r&&"object"==typeof r||(r={loose:!!r,includePrerelease:!1}),""===this.operator)return""===this.value||(t=new $(e.value,r),ee(this.value,t,r));if(""===e.operator)return""===e.value||(t=new $(this.value,r),ee(e.semver,t,r));var n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),o=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),s=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=j(this.semver,"<",e.semver,r)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),E=j(this.semver,">",e.semver,r)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||o||s&&i||a||E},exports.Range=$,$.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range},$.prototype.toString=function(){return this.range},$.prototype.parseRange=function(r){var t=this.options.loose;r=r.trim();var n=t?o[i.HYPHENRANGELOOSE]:o[i.HYPHENRANGE];r=r.replace(n,Q),e("hyphen replace",r),r=r.replace(o[i.COMPARATORTRIM],c),e("comparator trim",r,o[i.COMPARATORTRIM]),r=(r=(r=r.replace(o[i.TILDETRIM],p)).replace(o[i.CARETTRIM],u)).split(/\s+/).join(" ");var s=t?o[i.COMPARATORLOOSE]:o[i.COMPARATOR],a=r.split(" ").map(function(e){return k(e,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(a=a.filter(function(e){return!!e.match(s)})),a=a.map(function(e){return new X(e,this.options)},this)},$.prototype.intersects=function(e,r){if(!(e instanceof $))throw new TypeError("a Range is required");return this.set.some(function(t){return B(t,r)&&e.set.some(function(e){return B(e,r)&&t.every(function(t){return e.every(function(e){return t.intersects(e,r)})})})})},exports.toComparators=V,$.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new f(e,this.options)}catch(t){return!1}for(var r=0;r{let e=process.env.GITHUB_TOKEN;if(!e)return void i.setFailed("Please add the GITHUB_TOKEN to the changesets action");let n=`${r.context.repo.owner}/${r.context.repo.repo}`;const a=new r.GitHub(e);let o=a.repos.get(r.context.repo).then(e=>e.data.default_branch);console.log("setting git user"),await s.exec("git",["config","--global","user.name",'"github-actions[bot]"']),await s.exec("git",["config","--global","user.email",'"github-actions[bot]@users.noreply.github.com"']),console.log("setting GitHub credentials"),await c.default.writeFile(`${process.env.HOME}/.netrc`,`machine github.com\nlogin github-actions[bot]\npassword ${e}`);let d=await o;if(r.context.ref.replace("refs/heads/","")!==d)return void i.setFailed(`The changesets action should only run on ${d} but it's running on ${r.context.ref.replace("refs/heads/","")}, please change your GitHub actions config to only run the Changesets action on ${d}`);let p=c.default.readdirSync(`${process.cwd()}/.changeset`).some(e=>"config.js"!==e&&"README.md"!==e),f=i.getInput("publish");if(!p&&!f)return void console.log("No changesets found");if(!p&&f){console.log("No changesets found, attempting to publish any unpublished packages to npm");let e=await l.default({tools:["bolt","yarn","root"]});if(!e)return i.setFailed("Could not find workspaces");let n=new Map(e.map(e=>[e.name,e]));c.default.writeFileSync(`${process.env.HOME}/.npmrc`,`//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}`);let[o,...h]=f.split(/\s+/),p=await g.execWithOutput(o,h);await s.exec("git",["push","origin",`HEAD:${d}`,"--follow-tags"]);let b=/New tag:\s+(@[^\/]+\/[^@]+|[^\/]+)@([^\s]+)/,w=[];for(let t of p.stdout.split("\n")){let e=t.match(b);if(null===e)continue;let a=e[1],o=n.get(a);if(void 0===o)return i.setFailed("Workspace not found for "+a+". This is probably a bug in the action, please open an issue");w.push(o)}return void(await Promise.all(w.map(async e=>{try{let o=u.default.join(e.dir,"CHANGELOG.md"),s=await c.default.readFile(o,"utf8"),l=g.getChangelogEntry(s,e.config.version);if(!l)return i.setFailed(`Could not find changelog entry for ${e.name}@${e.config.version}`);await a.repos.createRelease(t({tag_name:`${e.name}@${e.config.version}`,body:l.content,prerelease:e.config.version.includes("-")},r.context.repo))}catch(n){if("ENOENT"!==n.code)throw n}})))}let{stderr:b}=await g.execWithOutput("git",["checkout","changeset-release"],{ignoreReturnCode:!0}),w=!b.toString().includes("Switched to a new branch 'changeset-release'");w&&await s.exec("git",["checkout","-b","changeset-release"]);let m=w;if(!m){console.log("checking if new changesets should be added");const e=(await g.execWithOutput("git",["merge-base","changeset-release",r.context.sha])).stdout.trim();m=(await g.execWithOutput("git",["diff","--name-only",`${e}...${r.context.sha}`])).stdout.trim().includes(".changeset"),console.log("checked if new changesets should be added "+m)}if(m){await s.exec("git",["reset","--hard",r.context.sha]);let e=await c.default.readJson(require.resolve("@changesets/cli/package.json")),o=h.lt(e.version,"2.0.0")?"bump":"version",i=(await g.execWithOutput("node",["./node_modules/.bin/changeset",o]),`repo:${n}+state:open+head:changeset-release+base:${d}`),l=a.search.issuesAndPullRequests({q:i}),p=await g.getChangedPackages(process.cwd()),b=(async()=>`This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and ${f?"the packages will be published to npm automatically":"publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)"}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${d}, this PR will be updated.\n\n# Releases\n`+(await Promise.all(p.map(async e=>{let t=await c.default.readFile(u.default.join(e.dir,"CHANGELOG.md"),"utf8"),n=g.getChangelogEntry(t,e.config.version);return{highestLevel:n.highestLevel,content:`## ${e.name}@${e.config.version}\n\n`+n.content}}))).filter(e=>e).sort((e,t)=>t.highestLevel-e.highestLevel).map(e=>e.content).join("\n "))();await s.exec("git",["add","."]),await s.exec("git",["commit","-m","Version Packages"]),await s.exec("git",["push","origin","changeset-release","--force"]);let w=await l;console.log(JSON.stringify(w.data,null,2)),0===w.data.items.length?(console.log("creating pull request"),await a.pulls.create(t({base:d,head:"changeset-release",title:"Version Packages",body:await b},r.context.repo))):(a.pulls.update(t({pull_number:w.data.items[0].number,body:await b},r.context.repo)),console.log("pull request found"))}else console.log("no new changesets")})().catch(e=>{console.error(e),i.setFailed(e.message)}); +},{"@actions/core":"4FTV","@actions/exec":"utFe","@actions/github":"8Dol","fs-extra":"JTJ9","get-workspaces":"kAcF","./utils":"UnXq","semver":"aric"}]},{},["7QCb"], null) \ No newline at end of file diff --git a/index.ts b/index.ts index c9008fc..b31f8ec 100644 --- a/index.ts +++ b/index.ts @@ -4,33 +4,8 @@ import * as github from "@actions/github"; import fs from "fs-extra"; import getWorkspaces, { Workspace } from "get-workspaces"; import path from "path"; -import { getChangelogEntry } from "./utils"; - -async function execWithOutput( - command: string, - args?: string[], - options?: { ignoreReturnCode?: boolean } -) { - let myOutput = ""; - let myError = ""; - - return { - code: await exec(command, args, { - listeners: { - stdout: (data: Buffer) => { - myOutput += data.toString(); - }, - stderr: (data: Buffer) => { - myError += data.toString(); - } - }, - - ...options - }), - stdout: myOutput, - stderr: myError - }; -} +import { getChangelogEntry, execWithOutput, getChangedPackages } from "./utils"; +import * as semver from "semver"; (async () => { let githubToken = process.env.GITHUB_TOKEN; @@ -209,24 +184,23 @@ async function execWithOutput( } if (shouldBump) { await exec("git", ["reset", "--hard", github.context.sha]); + let changesetsCliPkgJson = await fs.readJson( + require.resolve("@changesets/cli/package.json") + ); + let cmd = semver.lt(changesetsCliPkgJson.version, "2.0.0") + ? "bump" + : "version"; let output = await execWithOutput("node", [ "./node_modules/.bin/changeset", - "bump" + cmd ]); let searchQuery = `repo:${repo}+state:open+head:changeset-release+base:${defaultBranch}`; let searchResultPromise = octokit.search.issuesAndPullRequests({ q: searchQuery }); + let changedWorkspaces = await getChangedPackages(process.cwd()); + let prBodyPromise = (async () => { - let updateChangelogRegex = /Updated file (.+)/; - let changelogFilenames = []; - for (let line of output.stdout.split("\n")) { - let match = line.match(updateChangelogRegex); - if (match === null) { - continue; - } - changelogFilenames.push(match[1]); - } return ( `This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and ${ publishScript @@ -237,24 +211,25 @@ async function execWithOutput( # Releases ` + (await Promise.all( - changelogFilenames.map(async filename => { - let [pkgJsonContent, changelogContents] = await Promise.all([ - fs.readJson(path.join(path.dirname(filename), "package.json")), - fs.readFile(filename, "utf8") - ]); + changedWorkspaces.map(async workspace => { + let changelogContents = await fs.readFile( + path.join(workspace.dir, "CHANGELOG.md"), + "utf8" + ); let entry = getChangelogEntry( changelogContents, - pkgJsonContent.version + workspace.config.version ); return { highestLevel: entry.highestLevel, content: - `## ${pkgJsonContent.name}@${pkgJsonContent.version}\n\n` + + `## ${workspace.name}@${workspace.config.version}\n\n` + entry.content }; }) )) + .filter(x => x) .sort((a, b) => b.highestLevel - a.highestLevel) .map(x => x.content) .join("\n ") diff --git a/package.json b/package.json index 19f0890..339bccc 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@types/fs-extra": "^8.0.0", "@types/jest": "^24.0.18", "@types/node": "^12.7.1", + "@types/semver": "^6.0.2", "babel-jest": "^24.9.0", "fs-extra": "^8.1.0", "get-workspaces": "^0.4.0", @@ -30,6 +31,8 @@ "mdast-util-to-string": "^1.0.6", "remark-parse": "^7.0.1", "remark-stringify": "^7.0.3", + "semver": "^6.3.0", + "tempy": "^0.3.0", "unified": "^8.3.2" }, "husky": { diff --git a/utils.test.ts b/utils.test.ts index 5c013bd..71dd84f 100644 --- a/utils.test.ts +++ b/utils.test.ts @@ -1,4 +1,8 @@ -import { getChangelogEntry, BumpLevels } from "./utils"; +import { getChangelogEntry, BumpLevels, getChangedPackages } from "./utils"; +import tempy from "tempy"; +import { exec } from "@actions/exec"; +import * as fs from "fs-extra"; +import path from "path"; let changelog = `# @keystone-alpha/email @@ -78,3 +82,25 @@ test("it works", () => { expect(entry.content).toMatchSnapshot(); expect(entry.highestLevel).toBe(BumpLevels.patch); }); + +test("getChangedPackages works", async () => { + let dir = tempy.directory(); + await exec("git", ["init"], { cwd: dir }); + await fs.writeJson(path.join(dir, "package.json"), { + name: "some-package", + version: "1.0.0" + }); + await exec("git", ["add", "."]); + await exec("git", ["commit", "-m", "'initial commit'"]); + let emptyWorkspaces = await getChangedPackages(dir); + expect(emptyWorkspaces).toEqual([]); + let workspace = { + name: "some-package", + version: "2.0.0" + }; + await fs.writeJson(path.join(dir, "package.json"), workspace); + let workspaces = await getChangedPackages(dir); + expect(workspaces).toEqual([ + { name: "some-package", dir, config: workspace } + ]); +}); diff --git a/utils.ts b/utils.ts index d710e91..c3ee0b4 100644 --- a/utils.ts +++ b/utils.ts @@ -3,6 +3,10 @@ import remarkParse from "remark-parse"; import remarkStringify from "remark-stringify"; // @ts-ignore import mdastToString from "mdast-util-to-string"; +import { exec } from "@actions/exec"; +import * as core from "@actions/core"; +import getWorkspaces, { Workspace } from "get-workspaces"; +import path from "path"; export const BumpLevels = { dep: 0, @@ -11,6 +15,33 @@ export const BumpLevels = { major: 3 } as const; +export async function getChangedPackages(cwd: string) { + let workspaces = await getWorkspaces({ + cwd, + tools: ["bolt", "yarn", "root"] + }); + + if (!workspaces) { + core.setFailed("Could not find workspaces"); + return process.exit(1); + } + + let workspacesByDirectory = new Map(workspaces.map(x => [x.dir, x])); + + let output = await execWithOutput("git", ["diff", "--only-names"], { cwd }); + let names = output.stdout.split("\n"); + let changedWorkspaces: Workspace[] = []; + for (let name of names) { + let dirname = path.dirname(name); + let workspace = workspacesByDirectory.get(dirname); + if (workspace !== undefined) { + changedWorkspaces.push(workspace); + } + } + + return changedWorkspaces; +} + export function getChangelogEntry(changelog: string, version: string) { let ast = unified() .use(remarkParse) @@ -66,3 +97,29 @@ export function getChangelogEntry(changelog: string, version: string) { highestLevel: highestLevel }; } + +export async function execWithOutput( + command: string, + args?: string[], + options?: { ignoreReturnCode?: boolean; cwd?: string } +) { + let myOutput = ""; + let myError = ""; + + return { + code: await exec(command, args, { + listeners: { + stdout: (data: Buffer) => { + myOutput += data.toString(); + }, + stderr: (data: Buffer) => { + myError += data.toString(); + } + }, + + ...options + }), + stdout: myOutput, + stderr: myError + }; +} diff --git a/yarn.lock b/yarn.lock index b92e95a..4e133aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1358,6 +1358,11 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== +"@types/semver@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.0.2.tgz#5e8b09f0e4af53034b1d0fb9977a277847836205" + integrity sha512-G1Ggy7/9Nsa1Jt2yiBR2riEuyK2DFNnqow6R7cromXPMNynackRY1vqFTLz/gwnef1LHokbXThcPhqMRjUbkpQ== + "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" @@ -2345,6 +2350,11 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -6989,6 +6999,20 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.3" +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + terser@^3.7.3: version "3.17.0" resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" @@ -7178,6 +7202,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -7299,6 +7328,13 @@ uniqs@^2.0.0: resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd"