UNPKG

@pantheon-systems/pcc-cli

Version:
20 lines (17 loc) 73.6 kB
#!/usr/bin/env node import Re from'ora';import Ai from'yargs';import {hideBin}from'yargs/helpers';import $ from'chalk';import*as Se from'fs';import Se__default,{readFileSync,writeFileSync,existsSync,rmdirSync,openSync,rmSync,copyFileSync}from'fs';import H,{dirname,join}from'path';import {remove,ensureFile}from'fs-extra';import Bo from'os';import zr,{fileURLToPath}from'url';import Ct from'boxen';import $r from'package-json';import {spawn}from'child_process';import ln from'dayjs';import A,{AxiosError,HttpStatusCode}from'axios';import Oe from'query-string';import {exit}from'process';import Wr from'http';import {validateComponentSchema,parseJwt}from'@pantheon-systems/pcc-sdk-core';import {OAuth2Client}from'google-auth-library';import lo from'nunjucks';import Dt from'open';import Qr from'server-destroy';import {Console}from'console';import {Transform}from'stream';import {randomUUID}from'crypto';import In from'bluebird';import {google}from'googleapis';import {parseFromString}from'dom-parser';import Sn from'showdown';import nt from'inquirer';import {mkdir,writeFile}from'fs/promises';import {Octokit}from'octokit';import oi from'readline';import ii from'get-port';var xo=Object.create;var gt=Object.defineProperty;var $o=Object.getOwnPropertyDescriptor;var Uo=Object.getOwnPropertyNames;var Fo=Object.getPrototypeOf,jo=Object.prototype.hasOwnProperty;var Go=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Mo=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Uo(e))!jo.call(t,n)&&n!==o&&gt(t,n,{get:()=>e[n],enumerable:!(r=$o(e,n))||r.enumerable});return t};var Ho=(t,e,o)=>(o=t!=null?xo(Fo(t)):{},Mo(gt(o,"default",{value:t,enumerable:true}),t));var kt=Go((h,Rt)=>{h=Rt.exports=E;var P;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?P=function(){var t=Array.prototype.slice.call(arguments,0);t.unshift("SEMVER"),console.log.apply(console,t);}:P=function(){};h.SEMVER_SPEC_VERSION="2.0.0";var ie=256,ge=Number.MAX_SAFE_INTEGER||9007199254740991,Ue=16,Ko=ie-6,q=h.re=[],S=h.safeRe=[],l=h.src=[],s=h.tokens={},Pt=0;function y(t){s[t]=Pt++;}var je="[a-zA-Z0-9-]",Fe=[["\\s",1],["\\d",ie],[je,Ko]];function ae(t){for(var e=0;e<Fe.length;e++){var o=Fe[e][0],r=Fe[e][1];t=t.split(o+"*").join(o+"{0,"+r+"}").split(o+"+").join(o+"{1,"+r+"}");}return t}y("NUMERICIDENTIFIER");l[s.NUMERICIDENTIFIER]="0|[1-9]\\d*";y("NUMERICIDENTIFIERLOOSE");l[s.NUMERICIDENTIFIERLOOSE]="\\d+";y("NONNUMERICIDENTIFIER");l[s.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+je+"*";y("MAINVERSION");l[s.MAINVERSION]="("+l[s.NUMERICIDENTIFIER]+")\\.("+l[s.NUMERICIDENTIFIER]+")\\.("+l[s.NUMERICIDENTIFIER]+")";y("MAINVERSIONLOOSE");l[s.MAINVERSIONLOOSE]="("+l[s.NUMERICIDENTIFIERLOOSE]+")\\.("+l[s.NUMERICIDENTIFIERLOOSE]+")\\.("+l[s.NUMERICIDENTIFIERLOOSE]+")";y("PRERELEASEIDENTIFIER");l[s.PRERELEASEIDENTIFIER]="(?:"+l[s.NUMERICIDENTIFIER]+"|"+l[s.NONNUMERICIDENTIFIER]+")";y("PRERELEASEIDENTIFIERLOOSE");l[s.PRERELEASEIDENTIFIERLOOSE]="(?:"+l[s.NUMERICIDENTIFIERLOOSE]+"|"+l[s.NONNUMERICIDENTIFIER]+")";y("PRERELEASE");l[s.PRERELEASE]="(?:-("+l[s.PRERELEASEIDENTIFIER]+"(?:\\."+l[s.PRERELEASEIDENTIFIER]+")*))";y("PRERELEASELOOSE");l[s.PRERELEASELOOSE]="(?:-?("+l[s.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+l[s.PRERELEASEIDENTIFIERLOOSE]+")*))";y("BUILDIDENTIFIER");l[s.BUILDIDENTIFIER]=je+"+";y("BUILD");l[s.BUILD]="(?:\\+("+l[s.BUILDIDENTIFIER]+"(?:\\."+l[s.BUILDIDENTIFIER]+")*))";y("FULL");y("FULLPLAIN");l[s.FULLPLAIN]="v?"+l[s.MAINVERSION]+l[s.PRERELEASE]+"?"+l[s.BUILD]+"?";l[s.FULL]="^"+l[s.FULLPLAIN]+"$";y("LOOSEPLAIN");l[s.LOOSEPLAIN]="[v=\\s]*"+l[s.MAINVERSIONLOOSE]+l[s.PRERELEASELOOSE]+"?"+l[s.BUILD]+"?";y("LOOSE");l[s.LOOSE]="^"+l[s.LOOSEPLAIN]+"$";y("GTLT");l[s.GTLT]="((?:<|>)?=?)";y("XRANGEIDENTIFIERLOOSE");l[s.XRANGEIDENTIFIERLOOSE]=l[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";y("XRANGEIDENTIFIER");l[s.XRANGEIDENTIFIER]=l[s.NUMERICIDENTIFIER]+"|x|X|\\*";y("XRANGEPLAIN");l[s.XRANGEPLAIN]="[v=\\s]*("+l[s.XRANGEIDENTIFIER]+")(?:\\.("+l[s.XRANGEIDENTIFIER]+")(?:\\.("+l[s.XRANGEIDENTIFIER]+")(?:"+l[s.PRERELEASE]+")?"+l[s.BUILD]+"?)?)?";y("XRANGEPLAINLOOSE");l[s.XRANGEPLAINLOOSE]="[v=\\s]*("+l[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+l[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+l[s.XRANGEIDENTIFIERLOOSE]+")(?:"+l[s.PRERELEASELOOSE]+")?"+l[s.BUILD]+"?)?)?";y("XRANGE");l[s.XRANGE]="^"+l[s.GTLT]+"\\s*"+l[s.XRANGEPLAIN]+"$";y("XRANGELOOSE");l[s.XRANGELOOSE]="^"+l[s.GTLT]+"\\s*"+l[s.XRANGEPLAINLOOSE]+"$";y("COERCE");l[s.COERCE]="(^|[^\\d])(\\d{1,"+Ue+"})(?:\\.(\\d{1,"+Ue+"}))?(?:\\.(\\d{1,"+Ue+"}))?(?:$|[^\\d])";y("COERCERTL");q[s.COERCERTL]=new RegExp(l[s.COERCE],"g");S[s.COERCERTL]=new RegExp(ae(l[s.COERCE]),"g");y("LONETILDE");l[s.LONETILDE]="(?:~>?)";y("TILDETRIM");l[s.TILDETRIM]="(\\s*)"+l[s.LONETILDE]+"\\s+";q[s.TILDETRIM]=new RegExp(l[s.TILDETRIM],"g");S[s.TILDETRIM]=new RegExp(ae(l[s.TILDETRIM]),"g");var Jo="$1~";y("TILDE");l[s.TILDE]="^"+l[s.LONETILDE]+l[s.XRANGEPLAIN]+"$";y("TILDELOOSE");l[s.TILDELOOSE]="^"+l[s.LONETILDE]+l[s.XRANGEPLAINLOOSE]+"$";y("LONECARET");l[s.LONECARET]="(?:\\^)";y("CARETTRIM");l[s.CARETTRIM]="(\\s*)"+l[s.LONECARET]+"\\s+";q[s.CARETTRIM]=new RegExp(l[s.CARETTRIM],"g");S[s.CARETTRIM]=new RegExp(ae(l[s.CARETTRIM]),"g");var Zo="$1^";y("CARET");l[s.CARET]="^"+l[s.LONECARET]+l[s.XRANGEPLAIN]+"$";y("CARETLOOSE");l[s.CARETLOOSE]="^"+l[s.LONECARET]+l[s.XRANGEPLAINLOOSE]+"$";y("COMPARATORLOOSE");l[s.COMPARATORLOOSE]="^"+l[s.GTLT]+"\\s*("+l[s.LOOSEPLAIN]+")$|^$";y("COMPARATOR");l[s.COMPARATOR]="^"+l[s.GTLT]+"\\s*("+l[s.FULLPLAIN]+")$|^$";y("COMPARATORTRIM");l[s.COMPARATORTRIM]="(\\s*)"+l[s.GTLT]+"\\s*("+l[s.LOOSEPLAIN]+"|"+l[s.XRANGEPLAIN]+")";q[s.COMPARATORTRIM]=new RegExp(l[s.COMPARATORTRIM],"g");S[s.COMPARATORTRIM]=new RegExp(ae(l[s.COMPARATORTRIM]),"g");var Qo="$1$2$3";y("HYPHENRANGE");l[s.HYPHENRANGE]="^\\s*("+l[s.XRANGEPLAIN]+")\\s+-\\s+("+l[s.XRANGEPLAIN]+")\\s*$";y("HYPHENRANGELOOSE");l[s.HYPHENRANGELOOSE]="^\\s*("+l[s.XRANGEPLAINLOOSE]+")\\s+-\\s+("+l[s.XRANGEPLAINLOOSE]+")\\s*$";y("STAR");l[s.STAR]="(<|>)?=?\\s*\\*";for(F=0;F<Pt;F++)P(F,l[F]),q[F]||(q[F]=new RegExp(l[F]),S[F]=new RegExp(ae(l[F])));var F;h.parse=Y;function Y(t,e){if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false}),t instanceof E)return t;if(typeof t!="string"||t.length>ie)return null;var o=e.loose?S[s.LOOSE]:S[s.FULL];if(!o.test(t))return null;try{return new E(t,e)}catch{return null}}h.valid=er;function er(t,e){var o=Y(t,e);return o?o.version:null}h.clean=tr;function tr(t,e){var o=Y(t.trim().replace(/^[=v]+/,""),e);return o?o.version:null}h.SemVer=E;function E(t,e){if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false}),t instanceof E){if(t.loose===e.loose)return t;t=t.version;}else if(typeof t!="string")throw new TypeError("Invalid Version: "+t);if(t.length>ie)throw new TypeError("version is longer than "+ie+" characters");if(!(this instanceof E))return new E(t,e);P("SemVer",t,e),this.options=e,this.loose=!!e.loose;var o=t.trim().match(e.loose?S[s.LOOSE]:S[s.FULL]);if(!o)throw new TypeError("Invalid Version: "+t);if(this.raw=t,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>ge||this.major<0)throw new TypeError("Invalid major version");if(this.minor>ge||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>ge||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(function(r){if(/^[0-9]+$/.test(r)){var n=+r;if(n>=0&&n<ge)return n}return r}):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format();}E.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version};E.prototype.toString=function(){return this.version};E.prototype.compare=function(t){return P("SemVer.compare",this.version,this.options,t),t instanceof E||(t=new E(t,this.options)),this.compareMain(t)||this.comparePre(t)};E.prototype.compareMain=function(t){return t instanceof E||(t=new E(t,this.options)),W(this.major,t.major)||W(this.minor,t.minor)||W(this.patch,t.patch)};E.prototype.comparePre=function(t){if(t instanceof E||(t=new E(t,this.options)),this.prerelease.length&&!t.prerelease.length)return -1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;var e=0;do{var o=this.prerelease[e],r=t.prerelease[e];if(P("prerelease compare",e,o,r),o===void 0&&r===void 0)return 0;if(r===void 0)return 1;if(o===void 0)return -1;if(o===r)continue;return W(o,r)}while(++e)};E.prototype.compareBuild=function(t){t instanceof E||(t=new E(t,this.options));var e=0;do{var o=this.build[e],r=t.build[e];if(P("prerelease compare",e,o,r),o===void 0&&r===void 0)return 0;if(r===void 0)return 1;if(o===void 0)return -1;if(o===r)continue;return W(o,r)}while(++e)};E.prototype.inc=function(t,e){switch(t){case "premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e);break;case "preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e);break;case "prepatch":this.prerelease.length=0,this.inc("patch",e),this.inc("pre",e);break;case "prerelease":this.prerelease.length===0&&this.inc("patch",e),this.inc("pre",e);break;case "major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case "minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case "patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case "pre":if(this.prerelease.length===0)this.prerelease=[0];else {for(var o=this.prerelease.length;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);o===-1&&this.prerelease.push(0);}e&&(this.prerelease[0]===e?isNaN(this.prerelease[1])&&(this.prerelease=[e,0]):this.prerelease=[e,0]);break;default:throw new Error("invalid increment argument: "+t)}return this.format(),this.raw=this.version,this};h.inc=or;function or(t,e,o,r){typeof o=="string"&&(r=o,o=void 0);try{return new E(t,o).inc(e,r).version}catch{return null}}h.diff=rr;function rr(t,e){if(Ge(t,e))return null;var o=Y(t),r=Y(e),n="";if(o.prerelease.length||r.prerelease.length){n="pre";var i="prerelease";}for(var a in o)if((a==="major"||a==="minor"||a==="patch")&&o[a]!==r[a])return n+a;return i}h.compareIdentifiers=W;var bt=/^[0-9]+$/;function W(t,e){var o=bt.test(t),r=bt.test(e);return o&&r&&(t=+t,e=+e),t===e?0:o&&!r?-1:r&&!o?1:t<e?-1:1}h.rcompareIdentifiers=nr;function nr(t,e){return W(e,t)}h.major=ir;function ir(t,e){return new E(t,e).major}h.minor=sr;function sr(t,e){return new E(t,e).minor}h.patch=ar;function ar(t,e){return new E(t,e).patch}h.compare=G;function G(t,e,o){return new E(t,o).compare(new E(e,o))}h.compareLoose=cr;function cr(t,e){return G(t,e,true)}h.compareBuild=lr;function lr(t,e,o){var r=new E(t,o),n=new E(e,o);return r.compare(n)||r.compareBuild(n)}h.rcompare=pr;function pr(t,e,o){return G(e,t,o)}h.sort=dr;function dr(t,e){return t.sort(function(o,r){return h.compareBuild(o,r,e)})}h.rsort=mr;function mr(t,e){return t.sort(function(o,r){return h.compareBuild(r,o,e)})}h.gt=se;function se(t,e,o){return G(t,e,o)>0}h.lt=he;function he(t,e,o){return G(t,e,o)<0}h.eq=Ge;function Ge(t,e,o){return G(t,e,o)===0}h.neq=Ot;function Ot(t,e,o){return G(t,e,o)!==0}h.gte=Me;function Me(t,e,o){return G(t,e,o)>=0}h.lte=He;function He(t,e,o){return G(t,e,o)<=0}h.cmp=we;function we(t,e,o,r){switch(e){case "===":return typeof t=="object"&&(t=t.version),typeof o=="object"&&(o=o.version),t===o;case "!==":return typeof t=="object"&&(t=t.version),typeof o=="object"&&(o=o.version),t!==o;case "":case "=":case "==":return Ge(t,o,r);case "!=":return Ot(t,o,r);case ">":return se(t,o,r);case ">=":return Me(t,o,r);case "<":return he(t,o,r);case "<=":return He(t,o,r);default:throw new TypeError("Invalid operator: "+e)}}h.Comparator=_;function _(t,e){if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false}),t instanceof _){if(t.loose===!!e.loose)return t;t=t.value;}if(!(this instanceof _))return new _(t,e);t=t.trim().split(/\s+/).join(" "),P("comparator",t,e),this.options=e,this.loose=!!e.loose,this.parse(t),this.semver===K?this.value="":this.value=this.operator+this.semver.version,P("comp",this);}var K={};_.prototype.parse=function(t){var e=this.options.loose?S[s.COMPARATORLOOSE]:S[s.COMPARATOR],o=t.match(e);if(!o)throw new TypeError("Invalid comparator: "+t);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new E(o[2],this.options.loose):this.semver=K;};_.prototype.toString=function(){return this.value};_.prototype.test=function(t){if(P("Comparator.test",t,this.options.loose),this.semver===K||t===K)return true;if(typeof t=="string")try{t=new E(t,this.options);}catch{return false}return we(t,this.operator,this.semver,this.options)};_.prototype.intersects=function(t,e){if(!(t instanceof _))throw new TypeError("a Comparator is required");(!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false});var o;if(this.operator==="")return this.value===""?true:(o=new O(t.value,e),Ee(this.value,o,e));if(t.operator==="")return t.value===""?true:(o=new O(this.value,e),Ee(t.semver,o,e));var r=(this.operator===">="||this.operator===">")&&(t.operator===">="||t.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(t.operator==="<="||t.operator==="<"),i=this.semver.version===t.semver.version,a=(this.operator===">="||this.operator==="<=")&&(t.operator===">="||t.operator==="<="),c=we(this.semver,"<",t.semver,e)&&(this.operator===">="||this.operator===">")&&(t.operator==="<="||t.operator==="<"),p=we(this.semver,">",t.semver,e)&&(this.operator==="<="||this.operator==="<")&&(t.operator===">="||t.operator===">");return r||n||i&&a||c||p};h.Range=O;function O(t,e){if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false}),t instanceof O)return t.loose===!!e.loose&&t.includePrerelease===!!e.includePrerelease?t:new O(t.raw,e);if(t instanceof _)return new O(t.value,e);if(!(this instanceof O))return new O(t,e);if(this.options=e,this.loose=!!e.loose,this.includePrerelease=!!e.includePrerelease,this.raw=t.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(o){return this.parseRange(o.trim())},this).filter(function(o){return o.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format();}O.prototype.format=function(){return this.range=this.set.map(function(t){return t.join(" ").trim()}).join("||").trim(),this.range};O.prototype.toString=function(){return this.range};O.prototype.parseRange=function(t){var e=this.options.loose,o=e?S[s.HYPHENRANGELOOSE]:S[s.HYPHENRANGE];t=t.replace(o,Tr),P("hyphen replace",t),t=t.replace(S[s.COMPARATORTRIM],Qo),P("comparator trim",t,S[s.COMPARATORTRIM]),t=t.replace(S[s.TILDETRIM],Jo),t=t.replace(S[s.CARETTRIM],Zo),t=t.split(/\s+/).join(" ");var r=e?S[s.COMPARATORLOOSE]:S[s.COMPARATOR],n=t.split(" ").map(function(i){return fr(i,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(n=n.filter(function(i){return !!i.match(r)})),n=n.map(function(i){return new _(i,this.options)},this),n};O.prototype.intersects=function(t,e){if(!(t instanceof O))throw new TypeError("a Range is required");return this.set.some(function(o){return St(o,e)&&t.set.some(function(r){return St(r,e)&&o.every(function(n){return r.every(function(i){return n.intersects(i,e)})})})})};function St(t,e){for(var o=true,r=t.slice(),n=r.pop();o&&r.length;)o=r.every(function(i){return n.intersects(i,e)}),n=r.pop();return o}h.toComparators=ur;function ur(t,e){return new O(t,e).set.map(function(o){return o.map(function(r){return r.value}).join(" ").trim().split(" ")})}function fr(t,e){return P("comp",t,e),t=wr(t,e),P("caret",t),t=gr(t,e),P("tildes",t),t=yr(t,e),P("xrange",t),t=Ir(t,e),P("stars",t),t}function D(t){return !t||t.toLowerCase()==="x"||t==="*"}function gr(t,e){return t.trim().split(/\s+/).map(function(o){return hr(o,e)}).join(" ")}function hr(t,e){var o=e.loose?S[s.TILDELOOSE]:S[s.TILDE];return t.replace(o,function(r,n,i,a,c){P("tilde",t,r,n,i,a,c);var p;return D(n)?p="":D(i)?p=">="+n+".0.0 <"+(+n+1)+".0.0":D(a)?p=">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":c?(P("replaceTilde pr",c),p=">="+n+"."+i+"."+a+"-"+c+" <"+n+"."+(+i+1)+".0"):p=">="+n+"."+i+"."+a+" <"+n+"."+(+i+1)+".0",P("tilde return",p),p})}function wr(t,e){return t.trim().split(/\s+/).map(function(o){return Er(o,e)}).join(" ")}function Er(t,e){P("caret",t,e);var o=e.loose?S[s.CARETLOOSE]:S[s.CARET];return t.replace(o,function(r,n,i,a,c){P("caret",t,r,n,i,a,c);var p;return D(n)?p="":D(i)?p=">="+n+".0.0 <"+(+n+1)+".0.0":D(a)?n==="0"?p=">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":p=">="+n+"."+i+".0 <"+(+n+1)+".0.0":c?(P("replaceCaret pr",c),n==="0"?i==="0"?p=">="+n+"."+i+"."+a+"-"+c+" <"+n+"."+i+"."+(+a+1):p=">="+n+"."+i+"."+a+"-"+c+" <"+n+"."+(+i+1)+".0":p=">="+n+"."+i+"."+a+"-"+c+" <"+(+n+1)+".0.0"):(P("no pr"),n==="0"?i==="0"?p=">="+n+"."+i+"."+a+" <"+n+"."+i+"."+(+a+1):p=">="+n+"."+i+"."+a+" <"+n+"."+(+i+1)+".0":p=">="+n+"."+i+"."+a+" <"+(+n+1)+".0.0"),P("caret return",p),p})}function yr(t,e){return P("replaceXRanges",t,e),t.split(/\s+/).map(function(o){return vr(o,e)}).join(" ")}function vr(t,e){t=t.trim();var o=e.loose?S[s.XRANGELOOSE]:S[s.XRANGE];return t.replace(o,function(r,n,i,a,c,p){P("xRange",t,r,n,i,a,c,p);var m=D(i),f=m||D(a),I=f||D(c),w=I;return n==="="&&w&&(n=""),p=e.includePrerelease?"-0":"",m?n===">"||n==="<"?r="<0.0.0-0":r="*":n&&w?(f&&(a=0),c=0,n===">"?(n=">=",f?(i=+i+1,a=0,c=0):(a=+a+1,c=0)):n==="<="&&(n="<",f?i=+i+1:a=+a+1),r=n+i+"."+a+"."+c+p):f?r=">="+i+".0.0"+p+" <"+(+i+1)+".0.0"+p:I&&(r=">="+i+"."+a+".0"+p+" <"+i+"."+(+a+1)+".0"+p),P("xRange return",r),r})}function Ir(t,e){return P("replaceStars",t,e),t.trim().replace(S[s.STAR],"")}function Tr(t,e,o,r,n,i,a,c,p,m,f,I,w){return D(o)?e="":D(r)?e=">="+o+".0.0":D(n)?e=">="+o+"."+r+".0":e=">="+e,D(p)?c="":D(m)?c="<"+(+p+1)+".0.0":D(f)?c="<"+p+"."+(+m+1)+".0":I?c="<="+p+"."+m+"."+f+"-"+I:c="<="+c,(e+" "+c).trim()}O.prototype.test=function(t){if(!t)return false;if(typeof t=="string")try{t=new E(t,this.options);}catch{return false}for(var e=0;e<this.set.length;e++)if(Ar(this.set[e],t,this.options))return true;return false};function Ar(t,e,o){for(var r=0;r<t.length;r++)if(!t[r].test(e))return false;if(e.prerelease.length&&!o.includePrerelease){for(r=0;r<t.length;r++)if(P(t[r].semver),t[r].semver!==K&&t[r].semver.prerelease.length>0){var n=t[r].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return true}return false}return true}h.satisfies=Ee;function Ee(t,e,o){try{e=new O(e,o);}catch{return false}return e.test(t)}h.maxSatisfying=br;function br(t,e,o){var r=null,n=null;try{var i=new O(e,o);}catch{return null}return t.forEach(function(a){i.test(a)&&(!r||n.compare(a)===-1)&&(r=a,n=new E(r,o));}),r}h.minSatisfying=Sr;function Sr(t,e,o){var r=null,n=null;try{var i=new O(e,o);}catch{return null}return t.forEach(function(a){i.test(a)&&(!r||n.compare(a)===1)&&(r=a,n=new E(r,o));}),r}h.minVersion=Pr;function Pr(t,e){t=new O(t,e);var o=new E("0.0.0");if(t.test(o)||(o=new E("0.0.0-0"),t.test(o)))return o;o=null;for(var r=0;r<t.set.length;++r){var n=t.set[r];n.forEach(function(i){var a=new E(i.semver.version);switch(i.operator){case ">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case "":case ">=":(!o||se(o,a))&&(o=a);break;case "<":case "<=":break;default:throw new Error("Unexpected operation: "+i.operator)}});}return o&&t.test(o)?o:null}h.validRange=Or;function Or(t,e){try{return new O(t,e).range||"*"}catch{return null}}h.ltr=Rr;function Rr(t,e,o){return Be(t,e,"<",o)}h.gtr=kr;function kr(t,e,o){return Be(t,e,">",o)}h.outside=Be;function Be(t,e,o,r){t=new E(t,r),e=new O(e,r);var n,i,a,c,p;switch(o){case ">":n=se,i=He,a=he,c=">",p=">=";break;case "<":n=he,i=Me,a=se,c="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ee(t,e,r))return false;for(var m=0;m<e.set.length;++m){var f=e.set[m],I=null,w=null;if(f.forEach(function(g){g.semver===K&&(g=new _(">=0.0.0")),I=I||g,w=w||g,n(g.semver,I.semver,r)?I=g:a(g.semver,w.semver,r)&&(w=g);}),I.operator===c||I.operator===p||(!w.operator||w.operator===c)&&i(t,w.semver))return false;if(w.operator===p&&a(t,w.semver))return false}return true}h.prerelease=Cr;function Cr(t,e){var o=Y(t,e);return o&&o.prerelease.length?o.prerelease:null}h.intersects=Nr;function Nr(t,e,o){return t=new O(t,o),e=new O(e,o),t.intersects(e)}h.coerce=Lr;function Lr(t,e){if(t instanceof E)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};var o=null;if(!e.rtl)o=t.match(S[s.COERCE]);else {for(var r;(r=S[s.COERCERTL].exec(t))&&(!o||o.index+o[0].length!==t.length);)(!o||r.index+r[0].length!==o.index+o[0].length)&&(o=r),S[s.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;S[s.COERCERTL].lastIndex=-1;}return o===null?null:Y(o[2]+"."+(o[3]||"0")+"."+(o[4]||"0"),e)}});var me=H.join(Bo.homedir(),".pcc");var Le=H.join(me,"auth.json"),ue=H.join(me,"google.json"),De=H.join(me,"config.json"),_e=async(t,e)=>{await new Promise((o,r)=>ensureFile(e,n=>{n?r(n):o();})),writeFileSync(e,JSON.stringify(t,null,2));},fe=async t=>{try{return JSON.parse(readFileSync(t).toString())}catch{return null}},z=async()=>fe(De),ht=async()=>fe(Le),wt=async t=>(await fe(ue)||{})[t]||null,Et=async t=>{await _e(t,De);},xe=async t=>{await _e(t,Le);},$e=async(t,e)=>{let o=await fe(ue)||{};o[t]=e,await _e(o,ue);},yt=async()=>remove(De),vt=async()=>remove(Le),It=async()=>remove(ue);var zo={production:{addOnApiEndpoint:"https://addonapi-gfttxsojwq-uc.a.run.app",googleClientId:"432998952749-6eurouamlt7mvacb6u4e913m3kg4774c.apps.googleusercontent.com",googleRedirectUri:"http://localhost:3030/oauth-redirect",playgroundUrl:"https://live-collabcms-fe-demo.appa.pantheon.site"},staging:{addOnApiEndpoint:"https://addonapi-cxog5ytt4a-uc.a.run.app",googleClientId:"142470191541-bmomms4luuhoc68g903rscgr9qa3150b.apps.googleusercontent.com",googleRedirectUri:"http://localhost:3030/oauth-redirect",playgroundUrl:"https://multi-staging-collabcms-fe-demo.appa.pantheon.site"},test:{addOnApiEndpoint:"https://test-jest.comxyz/addOnApi",googleClientId:"test-google-com",googleRedirectUri:"http://localhost:3030/oauth-redirect",playgroundUrl:"https://test-playground.site"}},v=async()=>{let t=await z(),e=zo[t?.targetEnvironment||"production"];return {...e,ACCOUNT_ENDPOINT:`${e.addOnApiEndpoint}/accounts`,API_KEY_ENDPOINT:`${e.addOnApiEndpoint}/api-key`,SITE_ENDPOINT:`${e.addOnApiEndpoint}/sites`,DOCUMENT_ENDPOINT:`${e.addOnApiEndpoint}/articles`,AUTH0_ENDPOINT:`${e.addOnApiEndpoint}/auth0/`,OAUTH_ENDPOINT:`${e.addOnApiEndpoint}/oauth/`}};var At=async()=>{let e=(await z())?.targetEnvironment||"production";e!=="production"&&console.log($.yellow(`WARNING: This CLI build is pointing to "${e}" environment.`));};var ye=Ho(kt());var Ur=fileURLToPath(import.meta.url),Fr=dirname(Ur);function Xe(){let{name:t,version:e}=JSON.parse(Se__default.readFileSync(Fr+"/../package.json").toString());return {name:t,version:e}}var jr=1e3,Gr=async()=>new Promise(t=>{let e=false,o=setTimeout(()=>{e=true,t();},jr);(async()=>{let{name:r,version:n}=Xe();if(r==="@pantheon-systems/pcc-cli"){let m=`We see you're on version ${$.dim(r)}, we've renamed to ${$.green("@pantheon-systems/cpub-cli")}. Please remove this package, and install the new one. For more information, read ${$.cyan("https://docs.content.pantheon.io/2026-CLI-update")}`;console.log(Ct(m,{margin:1,padding:1,align:"center"})),clearTimeout(o),t();return}let{versions:i}=await $r(r,{allVersions:true});if(e)return;let a=Object.keys(i),c=a.pop();for(;c!=null&&!(!ye.default.prerelease(c)&&ye.default.gt(c,n));)c=a.pop();if(c!=null&&ye.default.lt(n,c)){let m={updateAvailable:`Update available! ${$.dim(n)} \u2192 ${$.green(c)}.`,runUpdate:`Run ${$.cyan(`npm i -g ${r}`)} to update.`};console.log(Ct(`${m.updateAvailable} ${m.runUpdate}`,{margin:1,padding:1,align:"center"}));}clearTimeout(o),t();})();}),Nt=Gr;function We(t,e,o){let r=t.split(` `),n=r.findIndex(a=>a.indexOf(e)===0),i=r[n].split("=");return i[1]=o,r[n]=i.join("="),r.join(` `)}function Ye(t,e,o=false,r){return new Promise(function(n,i){let a="",c="",p=spawn(t,e,{stdio:o?"pipe":void 0,shell:true,...r&&{cwd:r}});p.stdout?.on("data",m=>{let f=m.toString();a+=f,o&&console.log(f);}),p.stderr?.on("data",m=>{let f=m.toString();c+=f,o&&console.error(f);}),p.on("exit",m=>{m===0?n({stdout:a,stderr:c,code:m}):(console.error({stdout:a,stderr:c}),i(o?c||`Exited with code: ${m}`:`Exited with code: ${m}`));});})}function Ve(t){return t.trim().replace(/[^\w\s]/gi,"-").replace(/[\s_]+|[^\w\s]+/g,"-").replace(/^-|-$/g,"").replace(/-{2,}/g,"-").toLowerCase()}async function ze(t){try{return await Ye(`${t} -v`,[]),!0}catch{return false}}var Z=class extends Error{constructor(){super("Please login user using `pcc login` command"),this.name=this.constructor.name;}},Q=class extends Error{constructor(){super("Selected account is not valid"),this.name=this.constructor.name;}},ee=class extends Error{constructor(){super("Not Found"),this.name=this.constructor.name;}};function u(t,e){return async function(o){try{await t(o);}catch(r){e&&e(o),r instanceof Z?(console.log($.red(` Error: User is not logged in.`)),console.log($.yellow(` Please run "pcc login" to login.`))):(A.isAxiosError(r)&&(r.response?.status??500)<500&&r.response?.data?console.log($.red(` Error: ${r.response.data.message||r.response.data}`)):(console.log($.yellow(` Stack trace:`,r.stack)),console.log($.red(` Error: Something went wrong. Please contact Pantheon support team.`))),exit(1));}}}var ve="pcc",Lt=["openid","profile","offline_access"],en=["create:session"],tn=["https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],Ie=class{},M=class extends Ie{async refreshToken(e){let o=await d.getAuth0Config(),r=`${o.issuerBaseUrl}/oauth/token`,n=await A.post(r,{grant_type:"refresh_token",client_id:o.clientId,refresh_token:e});return {refresh_token:e,...n.data}}async getTokens(){let e=await ht();if(!e)return null;let o=new Set(e.scope?.split(" ")||[]);if(!Lt.every(n=>o.has(n)))return null;let r=parseJwt(e.access_token);if(r.exp&&await d.getCurrentTime()<r.exp*1e3)return e;try{let n=await this.refreshToken(e.refresh_token);return await xe(n),n}catch{return null}}async login(){return new Promise(async(e,o)=>{let r=Re("Logging you in...").start();try{let n=await this.getTokens();if(n){let R=parseJwt(n.access_token);return r.succeed(`You are already logged in as ${R[ve].email}.`),e()}let i=await d.getAuth0Config(),a=await A.post(`${i.issuerBaseUrl}/oauth/device/code`,{client_id:i.clientId,scope:[...Lt,...en].join(" "),audience:i.audience}),{device_code:c,verification_uri:p,user_code:m,verification_uri_complete:f,interval:I}=a.data;f&&await Dt(f),r.stop(),console.log($.yellow(` Please open the following link in your browser (if not already opened):`)),console.log($.yellow("\u{1F449} ",$.bold(f||p))),console.log($.yellow(` When prompted, enter this code to confirm your login:`)),console.log($.yellow("\u{1F511} ",$.bold(m)),` `),r.start("Waiting for you to complete login in the browser...");let w;for(;;)try{w=(await A.post(`${i.issuerBaseUrl}/oauth/token`,Oe.stringify({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:c,client_id:i.clientId}),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data;break}catch(R){if(R.response?.data?.error==="authorization_pending"){await new Promise(T=>setTimeout(T,(I||5)*1e3));continue}else throw R}let g=parseJwt(w.access_token);await xe(w),r.succeed(`You are successfully logged in as ${g[ve].email}`),e();}catch(n){r.fail(),o(n);}})}},oe=class extends Ie{constructor(e){super(),this.scopes=[...tn,...e||[]];}async generateToken(e){return (await A.post(`${(await v()).OAUTH_ENDPOINT}/token`,{code:e})).data}async refreshToken(e){return (await A.post(`${(await v()).OAUTH_ENDPOINT}/refresh`,{refreshToken:e})).data}async getTokens(e){let o=await wt(e);if(!o)return null;let r=new Set(o.scope?.split(" ")||[]);if(this.scopes&&this.scopes.length>0&&!this.scopes.every(i=>r.has(i)))return null;let n=parseJwt(o.id_token);if(n.exp&&await d.getCurrentTime()<n.exp*1e3)return o;try{let i=await this.refreshToken(o.refresh_token);return await $e(e,i),i}catch{return null}}login(e){return new Promise(async(o,r)=>{let n=e?`Requesting access to ${e} account...`:"Connecting Google account...",i=e?"../templates/accountAccessGranted.html":"../templates/accountConnectSuccess.html",a=Re(n).start();try{let c=await v(),m=new OAuth2Client({clientId:c.googleClientId,redirectUri:c.googleRedirectUri}).generateAuthUrl({access_type:"offline",prompt:"consent",scope:this.scopes,...e&&{login_hint:e}}),f=Wr.createServer(async(I,w)=>{try{if(!I.url)throw new Error("No URL path provided");if(I.url.indexOf("/oauth-redirect")>-1){let R=new zr.URL(I.url,"http://localhost:3030").searchParams.get("code"),T=dirname(fileURLToPath(import.meta.url)),b=readFileSync(join(T,i)),U=await this.generateToken(R);try{await d.connectAccount(U.access_token);}catch(k){if(k.response?.data.message==="account_already_connected_to_other_user"){a.fail("You cannot connect this account because it\u2019s already linked to another Pantheon user."),o();return}else if(k.response?.data.message==="cannot_connect_gmail_account"){a.fail("Only Google Workspace accounts are supported. Please connect your work email."),o();return}}let C=parseJwt(U.id_token);await $e(C.email,U),w.end(lo.renderString(b.toString(),{email:C.email})),f.destroy(),a.succeed(`Successfully connected "${C.email}" Google account.`),o();}}catch(g){a.fail(),r(g);}});Qr(f),f.listen(3030,()=>{Dt(m,{wait:!0}).then(I=>I.kill());});}catch(c){a.fail(),r(c);}})}};var qe=class t{static async getCurrentTime(){try{let e=await A.get(`${(await v()).addOnApiEndpoint}/ping`);return Number(e.data.timestamp)}catch{return Date.now()}}static async getAuth0Config(){let e=await v();return (await A.get(`${e.AUTH0_ENDPOINT}/config`)).data}static async getAuth0Tokens(){let e=new M,o=await e.getTokens();if(o||(Re().clear(),await e.login(),o=await e.getTokens(),o))return o;throw new Z}static async getGoogleTokens(e){let{scopes:o,email:r}=e||{},n=new oe(o),i=await n.getTokens(r);if(i||(Re().clear(),await n.login(r),i=await n.getTokens(r),i))return i;throw new Z}static async getDocumentWithAuth0(e,o=false,r=false,n){let{access_token:i}=await this.getAuth0Tokens();return (await A.get(`${(await v()).DOCUMENT_ENDPOINT}/${e}`,{params:{withSiteData:r?"true":"false",...o&&{insertIfMissing:o},...n&&{withMetadata:{title:n,slug:Ve(n)}}},headers:{Authorization:`Bearer ${i}`}})).data}static async getDocumentWithGoogle(e,o,r=false,n=false,i){let{access_token:a,id_token:c}=await this.getGoogleTokens({email:o});return (await A.get(`${(await v()).DOCUMENT_ENDPOINT}/${e}`,{params:{withSiteData:n?"true":"false",...r&&{insertIfMissing:r},...i&&{withMetadata:{title:i,slug:Ve(i)}}},headers:{Authorization:`Bearer ${c}`,"oauth-token":a}})).data}static async addSiteMetadataField(e,o,r,n){let{access_token:i}=await this.getAuth0Tokens();await A.post(`${(await v()).SITE_ENDPOINT}/${e}/metadata`,{contentType:o,field:{title:r,type:n}},{headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json"}});}static async updateDocument(e,o,r,n,i,a){let{access_token:c}=await this.getAuth0Tokens(),{access_token:p}=await this.getGoogleTokens({email:o.accessorAccount});return a&&console.log("update document",{documentId:e,siteId:o.id,title:r,tags:n,metadataFields:i}),(await A.patch(`${(await v()).DOCUMENT_ENDPOINT}/${e}`,{siteId:o.id,tags:n,title:r,...i&&{metadataFields:i}},{headers:{Authorization:`Bearer ${c}`,"oauth-token":p,"Content-Type":"application/json"}})).data}static async publishDocument(e,o){let{access_token:r}=await this.getAuth0Tokens(),{access_token:n}=await this.getGoogleTokens({scopes:["https://www.googleapis.com/auth/drive.file"],email:o}),a=(await A.post(`${(await v()).DOCUMENT_ENDPOINT}/${e}/publish`,null,{headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json","oauth-token":n}})).data.url;try{let c=await A.get(a);console.log("Published to ",c.request.res.responseUrl);}catch(c){throw c instanceof AxiosError&&console.error(c,c.code,c.message),c}}static async previewFile(e,{baseUrl:o}){let{access_token:r}=await this.getAuth0Tokens(),{site:{accessorAccount:n}}=await this.getDocumentWithAuth0(e,false,true),{access_token:i}=await this.getGoogleTokens({scopes:["https://www.googleapis.com/auth/drive"],email:n});return (await A.post(`${(await v()).DOCUMENT_ENDPOINT}/${e}/preview`,{baseUrl:o},{headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json","oauth-token":i}})).data.url}static async createApiKey({siteId:e}={}){let{access_token:o}=await this.getAuth0Tokens();return (await A.post((await v()).API_KEY_ENDPOINT,{siteId:e},{headers:{Authorization:`Bearer ${o}`}})).data.apiKey}static async connectAccount(e){let{access_token:o}=await this.getAuth0Tokens();return (await A.post((await v()).ACCOUNT_ENDPOINT,null,{headers:{Authorization:`Bearer ${o}`,"oauth-token":e}})).data}static async listAccounts(){let{access_token:e}=await this.getAuth0Tokens();return (await A.get((await v()).ACCOUNT_ENDPOINT,{headers:{Authorization:`Bearer ${e}`}})).data}static async listApiKeys(){let{access_token:e}=await this.getAuth0Tokens();return (await A.get((await v()).API_KEY_ENDPOINT,{headers:{Authorization:`Bearer ${e}`}})).data}static async revokeApiKey(e){let{access_token:o}=await this.getAuth0Tokens();try{await A.delete(`${(await v()).API_KEY_ENDPOINT}/${e}`,{headers:{Authorization:`Bearer ${o}`}});}catch(r){if(r.response.status===HttpStatusCode.NotFound)throw new ee}}static async createSite(e,o){let n=(await t.listAccounts()).find(c=>c.accountEmail===o)?.id;if(!n)throw new Q;let{access_token:i}=await this.getAuth0Tokens();return (await A.post((await v()).SITE_ENDPOINT,{name:"",url:e,emailList:"",accountId:n},{headers:{Authorization:`Bearer ${i}`}})).data.id}static async deleteSite(e,o,r){let{access_token:n}=await this.getAuth0Tokens();return (await A.delete(Oe.stringifyUrl({url:`${(await v()).SITE_ENDPOINT}/${e}`,query:{transferToSiteId:o,force:r}}),{headers:{Authorization:`Bearer ${n}`}})).data.id}static async listSites({withConnectionStatus:e}){let{access_token:o}=await this.getAuth0Tokens();return (await A.get((await v()).SITE_ENDPOINT,{headers:{Authorization:`Bearer ${o}`},params:{withConnectionStatus:e}})).data}static async getSite(e){let{access_token:o}=await this.getAuth0Tokens();return (await A.get(`${(await v()).SITE_ENDPOINT}/${e}`,{headers:{Authorization:`Bearer ${o}`}})).data}static async updateSite(e,o){let{access_token:r}=await this.getAuth0Tokens();await A.patch(`${(await v()).SITE_ENDPOINT}/${e}`,{url:o},{headers:{Authorization:`Bearer ${r}`}});}static async getServersideComponentSchema(e){let{access_token:o}=await this.getAuth0Tokens();await A.get(`${(await v()).SITE_ENDPOINT}/${e}/components`,{headers:{Authorization:`Bearer ${o}`}});}static async pushComponentSchema(e,o){let{access_token:r}=await this.getAuth0Tokens();await A.post(`${(await v()).SITE_ENDPOINT}/${e}/components`,{componentSchema:o},{headers:{Authorization:`Bearer ${r}`}});}static async removeComponentSchema(e){let{access_token:o}=await this.getAuth0Tokens();await A.delete(`${(await v()).SITE_ENDPOINT}/${e}/components`,{headers:{Authorization:`Bearer ${o}`}});}static async listAdmins(e){let{access_token:o}=await this.getAuth0Tokens();return (await A.get(`${(await v()).SITE_ENDPOINT}/${e}/admins`,{headers:{Authorization:`Bearer ${o}`}})).data}static async addAdmin(e,o){let{access_token:r}=await this.getAuth0Tokens();await A.patch(`${(await v()).SITE_ENDPOINT}/${e}/admins`,{email:o},{headers:{Authorization:`Bearer ${r}`}});}static async removeAdmin(e,o){let{access_token:r}=await this.getAuth0Tokens();await A.delete(`${(await v()).SITE_ENDPOINT}/${e}/admins`,{headers:{Authorization:`Bearer ${r}`},data:{email:o}});}static async listCollaborators(e){let{access_token:o}=await this.getAuth0Tokens();return (await A.get(`${(await v()).SITE_ENDPOINT}/${e}/collaborators`,{headers:{Authorization:`Bearer ${o}`}})).data}static async addCollaborator(e,o){let{access_token:r}=await this.getAuth0Tokens();await A.patch(`${(await v()).SITE_ENDPOINT}/${e}/collaborators`,{email:o},{headers:{Authorization:`Bearer ${r}`}});}static async removeCollaborator(e,o){let{access_token:r}=await this.getAuth0Tokens();await A.delete(`${(await v()).SITE_ENDPOINT}/${e}/collaborators`,{headers:{Authorization:`Bearer ${r}`},data:{email:o}});}static async updateSiteConfig(e,{url:o,webhookUrl:r,webhookSecret:n,preferredEvents:i}){let{access_token:a}=await this.getAuth0Tokens(),c=r||n||i;await A.patch(`${(await v()).SITE_ENDPOINT}/${e}`,{...o&&{url:o},...c&&{webhookConfig:{...r&&{webhookUrl:r},...n&&{webhookSecret:n},...i&&{preferredEvents:i}}}},{headers:{Authorization:`Bearer ${a}`}});}static async fetchWebhookLogs(e,{limit:o,offset:r}){let{access_token:n}=await this.getAuth0Tokens();return (await A.get(`${(await v()).SITE_ENDPOINT}/${e}/webhookLogs`,{headers:{Authorization:`Bearer ${n}`},params:{limit:o,offset:r}})).data}static async fetchAvailableWebhookEvents(e){let{access_token:o}=await this.getAuth0Tokens();return (await A.get(`${(await v()).SITE_ENDPOINT}/${e}/availableWebhookEvents`,{headers:{Authorization:`Bearer ${o}`}})).data}},d=qe;function re(t){if(t.length===0)return;let e=Object.keys(t[0]).reduce((c,p)=>(c[p]=p.toString().length,c),{});t.forEach(c=>{Object.keys(e).forEach(p=>{c[p].toString().length>e[p]&&(e[p]=c[p].toString().length);});});let o=[];t.forEach(c=>{o.push(Object.keys(e).reduce((p,m)=>{let f=typeof c[m]=="boolean"?c[m]?"\u2705":"\u274C":c[m].toString();return p[m]=f.padEnd(e[m]),p},{}));});let r=new Transform({transform(c,p,m){m(null,c);}});new Console({stdout:r}).table(o);let i=(r.read()||"").toString(),a="";for(let c of i.split(/[\r\n]+/)){let p=c.replace(/[^┬]*┬/,"\u250C");p=p.replace(/^├─*┼/,"\u251C"),p=p.replace(/│[^│]*/,""),p=p.replace(/^└─*┴/,"\u2514"),p=p.replace(/'/g," "),a+=`${p} `;}console.log(a);}var $t=u(async()=>{await new oe().login();}),Ut=u(async()=>{let t=Re("Fetching list of connected accounts...").start();try{let e=await d.listAccounts();if(t.succeed("Successfully fetched list of accounts."),e.length===0){console.log($.yellow("No accounts found."));return}re(e.map(o=>({"Account Email":o.accountEmail,Name:o.name,"Connected At":ln(o.created).format("DD MMM YYYY, hh:mm A")})));}catch(e){throw t.fail(),e}}),Ft=[{description:"List connected accounts",command:"$0 account list"},{description:"Connect new account",command:"$0 account connect"}];lo.configure({autoescape:true});var jt=u(async t=>new Promise(async(e,o)=>{let r=Re("Updating config file").start();["production","staging"].includes(t)||(r.fail("The provided value should either be 'production' or `staging'"),exit(1));try{await Et({targetEnvironment:t}),r.succeed("Successfully updated config file"),e();}catch(n){r.fail(),o(n);}})),Gt=u(()=>new Promise(async(t,e)=>{let o=Re("Deleting config file").start();try{await yt(),o.succeed("Successfully deleted config file"),t();}catch(r){o.fail(),e(r);}})),Mt=u(async()=>new Promise(async(t,e)=>{let o=Re("Retrieving configuration data").start();try{let r=await z(),n=await v();console.log(JSON.stringify({localConfig:r,apiConfig:n},null,4)),o.succeed("Successfully retrieved configuration data"),t();}catch(r){o.fail(),e(r);}}));var j=class{constructor(e,o=false){o?this.logger=null:this.logger=Re(e);}start(){this.logger&&this.logger.start();}info(){this.logger&&this.logger.info();}stop(){this.logger&&this.logger.stop();}succeed(e){this.logger&&this.logger.succeed(e);}fail(e){this.logger&&this.logger.fail(e);}},x=class{constructor(e=false){this.logger=console,this.disabled=e;}log(...e){this.disabled||this.logger.log(...e);}error(...e){this.logger.error(...e);}};var gn=/^(https|http):\/\/(www.)?docs.google.com\/document\/d\/(?<id>[^/]+).*$/,Bt=u(async({documentId:t,baseUrl:e})=>{let o=new x,r=t.trim(),n=r.match(gn);if(n?.groups?.id&&(r=n.groups.id),e)try{new URL(e),e.startsWith("localhost:")&&(e=`http://${e}`,new URL(e));}catch{o.error($.red("ERROR: Value provided for `baseUrl` is not a valid URL. ")),exit(1);}let i=new j("Generating preview link");i.start();let a=await d.previewFile(r,{baseUrl:e});i.succeed("Successfully generated preview link. Please copy it below:"),o.log($.green(a));}),Je=[{description:"Generate preview link for given document ID",command:"$0 document preview 1234567890example1234567890exam_ple123456789"},{description:"Generate preview link for given document URL",command:"$0 document preview https://docs.google.com/document/d/1234567890example1234567890exam_ple123456789"}];function Te(t){let e=t;if(t==null)return null;try{return new URL(t),t.startsWith("localhost:")&&(e=`http://${t}`,new URL(t)),e}catch(o){return console.error(o),null}}function ne(t){let e=new OAuth2Client;return e.setCredentials(t),google.drive({version:"v3",auth:e})}async function Ae(t,e){return (await t.files.create({fields:"id,name",requestBody:{name:e,mimeType:"application/vnd.google-apps.folder"}}).catch(console.error)).data}async function Tn(t){try{console.log(`Importing from ${t}`);let e=(await A.get(t)).data;return {nextURL:e.links?.next?.href,posts:e.data,includedData:e.included}}catch(e){throw console.error(e),e}}var Ze=u(async({baseUrl:t,siteId:e,verbose:o,publish:r})=>{let n=new x,i=Te(t);i||(n.error($.red("ERROR: Value provided for `baseUrl` is not a valid URL. ")),exit(1));let a=await d.getSite(e),c=await d.getGoogleTokens({scopes:["https://www.googleapis.com/auth/drive.file"],email:a.accessorAccount}),p=ne(c),m=await Ae(p,`Content Publisher Import from Drupal on ${new Date().toLocaleDateString()} unique id: ${randomUUID()}`);m?.id||(n.error($.red("Failed to create parent folder which we would have imported posts into")),exit(1));let f=0,{url:I,query:w}=Oe.parseUrl(i);w.include="field_author,field_topics";let g=[],R=[],T=Oe.stringifyUrl({url:I,query:w});do{let b=await Tn(T);T=b.nextURL,b.posts?.length&&g.push(...b.posts),b.includedData?.length&&R.push(...b.includedData);}while(T!=null&&++f<1e3);n.log($.green(`Retrieved ${g.length} posts after ${f} pages`)),await d.addSiteMetadataField(e,"blog","drupalId","text"),await d.addSiteMetadataField(e,"blog","author","text"),await In.map(g,async b=>{if(b?.attributes?.body==null){console.log("Skipping post",Object.keys(b));return}let U=R.find(N=>N.id===b.relationships.field_author.data.id)?.attributes?.title,k=(await p.files.create({requestBody:{name:b.attributes.title,mimeType:"application/vnd.google-apps.document",parents:[m.id]},media:{mimeType:"text/html",body:b.attributes.body.processed}})).data.id;if(!k)throw new Error(`Failed to create file for ${b.attributes.title}`);await d.getDocumentWithGoogle(k,a.accessorAccount,!0);try{await d.updateDocument(k,a,b.attributes.title,b.relationships.field_topics?.data?.map(N=>R.find(X=>X.id===N.id)?.attributes?.name).filter(N=>N!=null)||[],{author:U,drupalId:b.id},o),r&&await d.publishDocument(k,a.accessorAccount);}catch(N){throw console.error(N instanceof AxiosError?N.response?.data:N),N}},{concurrency:20}),n.log($.green(`Successfully imported ${g.length} documents into ${m.name}`));});var Pn=["h1","h2","h3","title"],Qe=u(async({filePath:t,siteId:e,verbose:o,publish:r})=>{let n=new x;Se.existsSync(t)||(n.error($.red(`ERROR: Could not find markdown file at given path (${t})`)),exit(1));let i=Se.readFileSync(t).toString(),a=await d.getSite(e),c=await d.getGoogleTokens({scopes:["https://www.googleapis.com/auth/drive"],email:a.accessorAccount}),p=Re("Creating document on the Google Drive...").start(),m=ne(c),I=new Sn.Converter().makeHtml(i),w=parseFromString(I),g;for(let U of Pn){let C=w.getElementsByTagName(U)[0];if(C){g=C.textContent;break}}g=g||"Untitled Document";let T=(await m.files.create({requestBody:{name:g,mimeType:"application/vnd.google-apps.document"},media:{mimeType:"text/html",body:I}})).data.id,b=`https://docs.google.com/document/d/${T}`;T||(p.fail("Failed to create document on the Google Drive."),exit(1)),await d.getDocumentWithGoogle(T,a.accessorAccount,!0,!1,g),await d.updateDocument(T,a,g,[],null,o),await d.getDocumentWithGoogle(T,a.accessorAccount,!1,!1,g),r&&await d.publishDocument(T,a.accessorAccount),p.succeed(`Successfully created document at below path${r?" and published it on the Content Publisher.":":"}`),n.log($.green(b,` `));});var Kt=50;async function Cn(t){try{console.log(`Importing from ${t}`);let e=(await A.get(t)).data,{url:o,query:r}=Oe.parseUrl(t),n=Kt;r.per_page!=null&&(n=parseInt(r.per_page.toString(),10)),r.pageSize=n.toString(),r.page=(r.page!=null?parseInt(r.page.toString(),10)+1:2).toString();let i=Oe.stringifyUrl({url:o,query:r});return e.length<n&&(i=null),{nextURL:i,posts:e}}catch(e){throw console.error(e),e}}async function Nn(t,e){if(!e?.length)return [];let{data:o}=await A.get(new URL(`/wp-json/wp/v2/tags?include=${e.join()}`,t).href);return o.map(r=>({id:r.id,name:r.name,slug:r.slug,description:r.description}))}var et=u(async({baseUrl:t,siteId:e,verbose:o,publish:r})=>{let n=new x,i=Te(t);console.log({baseUrl:t,processedBaseURL:i}),i||(n.error($.red("ERROR: Value provided for `baseUrl` is not a valid URL. ")),exit(1));let a=await d.getSite(e),c=await d.getGoogleTokens({scopes:["https://www.googleapis.com/auth/drive.file"],email:a.accessorAccount}),p=ne(c),m=await Ae(p,`Content Publisher Import from WordPress on ${new Date().toLocaleDateString()} unique id: ${randomUUID()}`);m?.id||(n.error($.red("Failed to create parent folder which we would have imported posts into")),exit(1));let f=1,{url:I,query:w}=Oe.parseUrl(i);w.per_page=Kt.toString(),w.page=f.toString(),w._embed="";let g=[],R=Oe.stringifyUrl({url:new URL("/wp-json/wp/v2/posts",I).href,query:w});do{let T=await Cn(R);R=T.nextURL,T.posts?.length&&g.push(...T.posts);}while(R!=null&&++f<1e3);n.log($.green(`Retrieved ${g.length} posts after ${f} pages`)),await d.addSiteMetadataField(e,"blog","wordpressId","text"),await d.addSiteMetadataField(e,"blog","author","text"),await In.map(g,async T=>{let b=T._embedded.author.map(k=>k.name).join(", "),C=(await p.files.create({requestBody:{name:T.title.rendered,mimeType:"application/vnd.google-apps.document",parents:[m.id]},media:{mimeType:"text/html",body:T.content.rendered}})).data.id;if(!C)throw new Error(`Failed to create file for ${T.title.rendered}`);await d.getDocumentWithGoogle(C,a.accessorAccount,!0);try{await d.updateDocument(C,a,T.title.rendered,(await Nn(i,T.tags)).map(k=>k.name),{author:b,wordpressId:T.id},o),r&&await d.publishDocument(C,a.accessorAccount);}catch(k){throw console.error(k instanceof AxiosError?k.response?.data:k),k}},{concurrency:20}),n.log($.green(`Successfully imported ${g.length} documents into ${m.name}`));});var Un=new Octokit,Jt="pantheon-systems",Zt="content-publisher-sdk";async function Qt(t,e,o,r){try{let n=(await jn(t,o,r)).filter(i=>!["turbo.json"].includes(i.path));return await Promise.all(n.map(i=>Fn(i,e))),H.resolve(e)}catch(n){throw new Error("Error fetching starter kit from Github: "+n)}}async function Fn(t,e){let o=H.join(e,t.path),r=H.dirname(o);await mkdir(r,{recursive:true}),await writeFile(o,t.contents);}async function jn(t,e,o){let r=o||"stable",{data:n}=await Un.request("GET /repos/{owner}/{repo}/git/trees/{tree_sha}",{owner:Jt,repo:Zt,tree_sha:r,recursive:"true"}),a=n.tree.filter(c=>!!(c.path?.startsWith(t)&&c.type==="blob")).map(c=>c.path).map(async c=>{e&&console.log(`Downloading ${c}`);let p=`https://raw.githubusercontent.com/${Jt}/${Zt}/${r}/${c}`;async function m(f,I){try{let{data:w}=await A.get(f,{responseType:"arraybuffer"});return {path:c.replace(t,""),contents:w}}catch(w){if(w instanceof AxiosError&&w.code==="ENOTFOUND"&&I)return console.error(`Failed to download ${f}, but reattempting one time.`),m(f,false);throw console.error(`Failed to download ${f}`),w}}return m(p,true)});return Promise.all(a)}var Xn={nextjs:"nextjs-starter"},Wn={eslint:"*","eslint-config-next":"*"},Yn={extends:"next/core-web-vitals"},Vn=async({dirName:t,template:e,skipInstallation:o,packageManager:r="npm",nonInteractive:n=false,siteId:i=null,silentLogs:a,eslint:c,appName:p,useAppRouter:m,useTypescript:f,printVerbose:I,gitRef:w})=>{let g=new x(a);t||(g.error($.red("ERROR: Please enter valid directory name. Check pcc init --help for more details.")),exit(1)),existsSync(t)&&(g.error($.red("ERROR: Project directory already exists.")),exit(1));let R=new j("Fetching starter kit...",a);R.start(),e==="nextjs"&&m&&!f&&(g.error($.red("ERROR: Typescript is required when using nextjs app router")),exit(1));let T=`starters/${Xn[e]}${m?"-approuter":""}${f?"-ts":""}/`,b=await Qt(T,t,I,w);R.succeed("Fetched starter kit!");let U=new j("Setting up project...",a);U.start();let C=JSON.parse(readFileSync(H.join(b,"package.json")).toString());p?C.name=p:C.name=H.parse(t).base;let k=H.join(b,".eslintrc.json");if(c&&e==="nextjs"){C.devDependencies={...C.devDependencies,...Wn};let L=null;try{L=openSync(k,"wx");}catch{}L&&writeFileSync(L,JSON.stringify(Yn,null,2));}else c||rmSync(k,{force:true});writeFileSync(H.join(b,"package.json"),JSON.stringify(C,null,2)+` `),U.succeed("Completed setting up project!");let N=".env.local";if(copyFileSync(H.join(b,".env.example"),H.join(b,N)),!o){new j("Installing dependencies...",a).info();try{await Ye(r,["install"],!a,b);}catch(L){throw console.error(L),L}new j("",a).succeed("Installed dependencies!");}let X;if(!n){if(!i){let{chooseSite:_o}=await nt.prompt([{type:"confirm",name:"chooseSite",message:"Pick site now?"}]);if(_o){let ft=await d.listSites({});ft.length>0?i=(await nt.prompt({type:"list",name:"siteId",choices:ft.filter(de=>!de.__isPlayground).map(de=>`${de.url} (${de.id})`)})).siteId.split(" (")[1].replace(")",""):new j("",a).fail("No sites found.");}}let{createNewApiKey:L}=await nt.prompt([{type:"confirm",name:"createNewApiKey",message:"Create a new Token?"}]);L&&(X=await d.crea