UNPKG

@pantheon-systems/pcc-cli

Version:

Pantheon Content Cloud CLI

17 lines 66.5 kB
#!/usr/bin/env node import Ee from'ora';import oi from'yargs';import {hideBin}from'yargs/helpers';import $ from'chalk';import*as fe from'fs';import fe__default,{readFileSync,existsSync,rmSync,writeFileSync,rmdirSync,openSync,copyFileSync}from'fs';import G,{dirname,join}from'path';import {remove,ensureFile}from'fs-extra';import yr from'os';import S,{AxiosError,HttpStatusCode}from'axios';import he from'query-string';import Sr from'http';import Pr,{fileURLToPath}from'url';import {validateComponentSchema,parseJwt}from'@pantheon-systems/pcc-sdk-core';import {OAuth2Client}from'google-auth-library';import it from'nunjucks';import jt from'open';import kr from'server-destroy';import {exit}from'process';import {spawn}from'child_process';import ko from'boxen';import Do from'package-json';import {randomUUID}from'crypto';import Ko from'bluebird';import {google}from'googleapis';import {parseFromString}from'dom-parser';import rn from'showdown';import ze from'inquirer';import {mkdir,writeFile}from'fs/promises';import {Octokit}from'octokit';import xn from'readline';import Un from'get-port';import Yn from'dayjs';import {Console}from'console';import {Transform}from'stream';var dr=Object.create;var ot=Object.defineProperty;var mr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var hr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Er=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ur(e))!gr.call(t,n)&&n!==r&&ot(t,n,{get:()=>e[n],enumerable:!(o=mr(e,n))||o.enumerable});return t};var wr=(t,e,r)=>(r=t!=null?dr(fr(t)):{},Er(ot(r,"default",{value:t,enumerable:true}),t));var yt=hr((u,wt)=>{u=wt.exports=E;var b;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?b=function(){var t=Array.prototype.slice.call(arguments,0);t.unshift("SEMVER"),console.log.apply(console,t);}:b=function(){};u.SEMVER_SPEC_VERSION="2.0.0";var ee=256,ie=Number.MAX_SAFE_INTEGER||9007199254740991,Ae=16,Wr=ee-6,Y=u.re=[],T=u.safeRe=[],c=u.src=[],i=u.tokens={},ht=0;function y(t){i[t]=ht++;}var Ne="[a-zA-Z0-9-]",Ce=[["\\s",1],["\\d",ee],[Ne,Wr]];function re(t){for(var e=0;e<Ce.length;e++){var r=Ce[e][0],o=Ce[e][1];t=t.split(r+"*").join(r+"{0,"+o+"}").split(r+"+").join(r+"{1,"+o+"}");}return t}y("NUMERICIDENTIFIER");c[i.NUMERICIDENTIFIER]="0|[1-9]\\d*";y("NUMERICIDENTIFIERLOOSE");c[i.NUMERICIDENTIFIERLOOSE]="\\d+";y("NONNUMERICIDENTIFIER");c[i.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+Ne+"*";y("MAINVERSION");c[i.MAINVERSION]="("+c[i.NUMERICIDENTIFIER]+")\\.("+c[i.NUMERICIDENTIFIER]+")\\.("+c[i.NUMERICIDENTIFIER]+")";y("MAINVERSIONLOOSE");c[i.MAINVERSIONLOOSE]="("+c[i.NUMERICIDENTIFIERLOOSE]+")\\.("+c[i.NUMERICIDENTIFIERLOOSE]+")\\.("+c[i.NUMERICIDENTIFIERLOOSE]+")";y("PRERELEASEIDENTIFIER");c[i.PRERELEASEIDENTIFIER]="(?:"+c[i.NUMERICIDENTIFIER]+"|"+c[i.NONNUMERICIDENTIFIER]+")";y("PRERELEASEIDENTIFIERLOOSE");c[i.PRERELEASEIDENTIFIERLOOSE]="(?:"+c[i.NUMERICIDENTIFIERLOOSE]+"|"+c[i.NONNUMERICIDENTIFIER]+")";y("PRERELEASE");c[i.PRERELEASE]="(?:-("+c[i.PRERELEASEIDENTIFIER]+"(?:\\."+c[i.PRERELEASEIDENTIFIER]+")*))";y("PRERELEASELOOSE");c[i.PRERELEASELOOSE]="(?:-?("+c[i.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+c[i.PRERELEASEIDENTIFIERLOOSE]+")*))";y("BUILDIDENTIFIER");c[i.BUILDIDENTIFIER]=Ne+"+";y("BUILD");c[i.BUILD]="(?:\\+("+c[i.BUILDIDENTIFIER]+"(?:\\."+c[i.BUILDIDENTIFIER]+")*))";y("FULL");y("FULLPLAIN");c[i.FULLPLAIN]="v?"+c[i.MAINVERSION]+c[i.PRERELEASE]+"?"+c[i.BUILD]+"?";c[i.FULL]="^"+c[i.FULLPLAIN]+"$";y("LOOSEPLAIN");c[i.LOOSEPLAIN]="[v=\\s]*"+c[i.MAINVERSIONLOOSE]+c[i.PRERELEASELOOSE]+"?"+c[i.BUILD]+"?";y("LOOSE");c[i.LOOSE]="^"+c[i.LOOSEPLAIN]+"$";y("GTLT");c[i.GTLT]="((?:<|>)?=?)";y("XRANGEIDENTIFIERLOOSE");c[i.XRANGEIDENTIFIERLOOSE]=c[i.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";y("XRANGEIDENTIFIER");c[i.XRANGEIDENTIFIER]=c[i.NUMERICIDENTIFIER]+"|x|X|\\*";y("XRANGEPLAIN");c[i.XRANGEPLAIN]="[v=\\s]*("+c[i.XRANGEIDENTIFIER]+")(?:\\.("+c[i.XRANGEIDENTIFIER]+")(?:\\.("+c[i.XRANGEIDENTIFIER]+")(?:"+c[i.PRERELEASE]+")?"+c[i.BUILD]+"?)?)?";y("XRANGEPLAINLOOSE");c[i.XRANGEPLAINLOOSE]="[v=\\s]*("+c[i.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+c[i.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+c[i.XRANGEIDENTIFIERLOOSE]+")(?:"+c[i.PRERELEASELOOSE]+")?"+c[i.BUILD]+"?)?)?";y("XRANGE");c[i.XRANGE]="^"+c[i.GTLT]+"\\s*"+c[i.XRANGEPLAIN]+"$";y("XRANGELOOSE");c[i.XRANGELOOSE]="^"+c[i.GTLT]+"\\s*"+c[i.XRANGEPLAINLOOSE]+"$";y("COERCE");c[i.COERCE]="(^|[^\\d])(\\d{1,"+Ae+"})(?:\\.(\\d{1,"+Ae+"}))?(?:\\.(\\d{1,"+Ae+"}))?(?:$|[^\\d])";y("COERCERTL");Y[i.COERCERTL]=new RegExp(c[i.COERCE],"g");T[i.COERCERTL]=new RegExp(re(c[i.COERCE]),"g");y("LONETILDE");c[i.LONETILDE]="(?:~>?)";y("TILDETRIM");c[i.TILDETRIM]="(\\s*)"+c[i.LONETILDE]+"\\s+";Y[i.TILDETRIM]=new RegExp(c[i.TILDETRIM],"g");T[i.TILDETRIM]=new RegExp(re(c[i.TILDETRIM]),"g");var Vr="$1~";y("TILDE");c[i.TILDE]="^"+c[i.LONETILDE]+c[i.XRANGEPLAIN]+"$";y("TILDELOOSE");c[i.TILDELOOSE]="^"+c[i.LONETILDE]+c[i.XRANGEPLAINLOOSE]+"$";y("LONECARET");c[i.LONECARET]="(?:\\^)";y("CARETTRIM");c[i.CARETTRIM]="(\\s*)"+c[i.LONECARET]+"\\s+";Y[i.CARETTRIM]=new RegExp(c[i.CARETTRIM],"g");T[i.CARETTRIM]=new RegExp(re(c[i.CARETTRIM]),"g");var zr="$1^";y("CARET");c[i.CARET]="^"+c[i.LONECARET]+c[i.XRANGEPLAIN]+"$";y("CARETLOOSE");c[i.CARETLOOSE]="^"+c[i.LONECARET]+c[i.XRANGEPLAINLOOSE]+"$";y("COMPARATORLOOSE");c[i.COMPARATORLOOSE]="^"+c[i.GTLT]+"\\s*("+c[i.LOOSEPLAIN]+")$|^$";y("COMPARATOR");c[i.COMPARATOR]="^"+c[i.GTLT]+"\\s*("+c[i.FULLPLAIN]+")$|^$";y("COMPARATORTRIM");c[i.COMPARATORTRIM]="(\\s*)"+c[i.GTLT]+"\\s*("+c[i.LOOSEPLAIN]+"|"+c[i.XRANGEPLAIN]+")";Y[i.COMPARATORTRIM]=new RegExp(c[i.COMPARATORTRIM],"g");T[i.COMPARATORTRIM]=new RegExp(re(c[i.COMPARATORTRIM]),"g");var Yr="$1$2$3";y("HYPHENRANGE");c[i.HYPHENRANGE]="^\\s*("+c[i.XRANGEPLAIN]+")\\s+-\\s+("+c[i.XRANGEPLAIN]+")\\s*$";y("HYPHENRANGELOOSE");c[i.HYPHENRANGELOOSE]="^\\s*("+c[i.XRANGEPLAINLOOSE]+")\\s+-\\s+("+c[i.XRANGEPLAINLOOSE]+")\\s*$";y("STAR");c[i.STAR]="(<|>)?=?\\s*\\*";for(U=0;U<ht;U++)b(U,c[U]),Y[U]||(Y[U]=new RegExp(c[U]),T[U]=new RegExp(re(c[U])));var U;u.parse=W;function W(t,e){if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false}),t instanceof E)return t;if(typeof t!="string"||t.length>ee)return null;var r=e.loose?T[i.LOOSE]:T[i.FULL];if(!r.test(t))return null;try{return new E(t,e)}catch{return null}}u.valid=qr;function qr(t,e){var r=W(t,e);return r?r.version:null}u.clean=Kr;function Kr(t,e){var r=W(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null}u.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>ee)throw new TypeError("version is longer than "+ee+" characters");if(!(this instanceof E))return new E(t,e);b("SemVer",t,e),this.options=e,this.loose=!!e.loose;var r=t.trim().match(e.loose?T[i.LOOSE]:T[i.FULL]);if(!r)throw new TypeError("Invalid Version: "+t);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>ie||this.major<0)throw new TypeError("Invalid major version");if(this.minor>ie||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>ie||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(o){if(/^[0-9]+$/.test(o)){var n=+o;if(n>=0&&n<ie)return n}return o}):this.prerelease=[],this.build=r[5]?r[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 b("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)),X(this.major,t.major)||X(this.minor,t.minor)||X(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 r=this.prerelease[e],o=t.prerelease[e];if(b("prerelease compare",e,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return -1;if(r===o)continue;return X(r,o)}while(++e)};E.prototype.compareBuild=function(t){t instanceof E||(t=new E(t,this.options));var e=0;do{var r=this.build[e],o=t.build[e];if(b("prerelease compare",e,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return -1;if(r===o)continue;return X(r,o)}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 r=this.prerelease.length;--r>=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);r===-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};u.inc=Jr;function Jr(t,e,r,o){typeof r=="string"&&(o=r,r=void 0);try{return new E(t,r).inc(e,o).version}catch{return null}}u.diff=Zr;function Zr(t,e){if(Le(t,e))return null;var r=W(t),o=W(e),n="";if(r.prerelease.length||o.prerelease.length){n="pre";var a="prerelease";}for(var s in r)if((s==="major"||s==="minor"||s==="patch")&&r[s]!==o[s])return n+s;return a}u.compareIdentifiers=X;var ft=/^[0-9]+$/;function X(t,e){var r=ft.test(t),o=ft.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1}u.rcompareIdentifiers=Qr;function Qr(t,e){return X(e,t)}u.major=eo;function eo(t,e){return new E(t,e).major}u.minor=to;function to(t,e){return new E(t,e).minor}u.patch=ro;function ro(t,e){return new E(t,e).patch}u.compare=F;function F(t,e,r){return new E(t,r).compare(new E(e,r))}u.compareLoose=oo;function oo(t,e){return F(t,e,true)}u.compareBuild=no;function no(t,e,r){var o=new E(t,r),n=new E(e,r);return o.compare(n)||o.compareBuild(n)}u.rcompare=io;function io(t,e,r){return F(e,t,r)}u.sort=ao;function ao(t,e){return t.sort(function(r,o){return u.compareBuild(r,o,e)})}u.rsort=so;function so(t,e){return t.sort(function(r,o){return u.compareBuild(o,r,e)})}u.gt=te;function te(t,e,r){return F(t,e,r)>0}u.lt=ae;function ae(t,e,r){return F(t,e,r)<0}u.eq=Le;function Le(t,e,r){return F(t,e,r)===0}u.neq=Et;function Et(t,e,r){return F(t,e,r)!==0}u.gte=ke;function ke(t,e,r){return F(t,e,r)>=0}u.lte=De;function De(t,e,r){return F(t,e,r)<=0}u.cmp=se;function se(t,e,r,o){switch(e){case "===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case "!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case "":case "=":case "==":return Le(t,r,o);case "!=":return Et(t,r,o);case ">":return te(t,r,o);case ">=":return ke(t,r,o);case "<":return ae(t,r,o);case "<=":return De(t,r,o);default:throw new TypeError("Invalid operator: "+e)}}u.Comparator=D;function D(t,e){if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false}),t instanceof D){if(t.loose===!!e.loose)return t;t=t.value;}if(!(this instanceof D))return new D(t,e);t=t.trim().split(/\s+/).join(" "),b("comparator",t,e),this.options=e,this.loose=!!e.loose,this.parse(t),this.semver===q?this.value="":this.value=this.operator+this.semver.version,b("comp",this);}var q={};D.prototype.parse=function(t){var e=this.options.loose?T[i.COMPARATORLOOSE]:T[i.COMPARATOR],r=t.match(e);if(!r)throw new TypeError("Invalid comparator: "+t);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new E(r[2],this.options.loose):this.semver=q;};D.prototype.toString=function(){return this.value};D.prototype.test=function(t){if(b("Comparator.test",t,this.options.loose),this.semver===q||t===q)return true;if(typeof t=="string")try{t=new E(t,this.options);}catch{return false}return se(t,this.operator,this.semver,this.options)};D.prototype.intersects=function(t,e){if(!(t instanceof D))throw new TypeError("a Comparator is required");(!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:false});var r;if(this.operator==="")return this.value===""?true:(r=new O(t.value,e),ce(this.value,r,e));if(t.operator==="")return t.value===""?true:(r=new O(this.value,e),ce(t.semver,r,e));var o=(this.operator===">="||this.operator===">")&&(t.operator===">="||t.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(t.operator==="<="||t.operator==="<"),a=this.semver.version===t.semver.version,s=(this.operator===">="||this.operator==="<=")&&(t.operator===">="||t.operator==="<="),p=se(this.semver,"<",t.semver,e)&&(this.operator===">="||this.operator===">")&&(t.operator==="<="||t.operator==="<"),l=se(this.semver,">",t.semver,e)&&(this.operator==="<="||this.operator==="<")&&(t.operator===">="||t.operator===">");return o||n||a&&s||p||l};u.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 D)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(r){return this.parseRange(r.trim())},this).filter(function(r){return r.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,r=e?T[i.HYPHENRANGELOOSE]:T[i.HYPHENRANGE];t=t.replace(r,wo),b("hyphen replace",t),t=t.replace(T[i.COMPARATORTRIM],Yr),b("comparator trim",t,T[i.COMPARATORTRIM]),t=t.replace(T[i.TILDETRIM],Vr),t=t.replace(T[i.CARETTRIM],zr),t=t.split(/\s+/).join(" ");var o=e?T[i.COMPARATORLOOSE]:T[i.COMPARATOR],n=t.split(" ").map(function(a){return lo(a,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(n=n.filter(function(a){return !!a.match(o)})),n=n.map(function(a){return new D(a,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(r){return gt(r,e)&&t.set.some(function(o){return gt(o,e)&&r.every(function(n){return o.every(function(a){return n.intersects(a,e)})})})})};function gt(t,e){for(var r=true,o=t.slice(),n=o.pop();r&&o.length;)r=o.every(function(a){return n.intersects(a,e)}),n=o.pop();return r}u.toComparators=co;function co(t,e){return new O(t,e).set.map(function(r){return r.map(function(o){return o.value}).join(" ").trim().split(" ")})}function lo(t,e){return b("comp",t,e),t=uo(t,e),b("caret",t),t=po(t,e),b("tildes",t),t=go(t,e),b("xrange",t),t=Eo(t,e),b("stars",t),t}function L(t){return !t||t.toLowerCase()==="x"||t==="*"}function po(t,e){return t.trim().split(/\s+/).map(function(r){return mo(r,e)}).join(" ")}function mo(t,e){var r=e.loose?T[i.TILDELOOSE]:T[i.TILDE];return t.replace(r,function(o,n,a,s,p){b("tilde",t,o,n,a,s,p);var l;return L(n)?l="":L(a)?l=">="+n+".0.0 <"+(+n+1)+".0.0":L(s)?l=">="+n+"."+a+".0 <"+n+"."+(+a+1)+".0":p?(b("replaceTilde pr",p),l=">="+n+"."+a+"."+s+"-"+p+" <"+n+"."+(+a+1)+".0"):l=">="+n+"."+a+"."+s+" <"+n+"."+(+a+1)+".0",b("tilde return",l),l})}function uo(t,e){return t.trim().split(/\s+/).map(function(r){return fo(r,e)}).join(" ")}function fo(t,e){b("caret",t,e);var r=e.loose?T[i.CARETLOOSE]:T[i.CARET];return t.replace(r,function(o,n,a,s,p){b("caret",t,o,n,a,s,p);var l;return L(n)?l="":L(a)?l=">="+n+".0.0 <"+(+n+1)+".0.0":L(s)?n==="0"?l=">="+n+"."+a+".0 <"+n+"."+(+a+1)+".0":l=">="+n+"."+a+".0 <"+(+n+1)+".0.0":p?(b("replaceCaret pr",p),n==="0"?a==="0"?l=">="+n+"."+a+"."+s+"-"+p+" <"+n+"."+a+"."+(+s+1):l=">="+n+"."+a+"."+s+"-"+p+" <"+n+"."+(+a+1)+".0":l=">="+n+"."+a+"."+s+"-"+p+" <"+(+n+1)+".0.0"):(b("no pr"),n==="0"?a==="0"?l=">="+n+"."+a+"."+s+" <"+n+"."+a+"."+(+s+1):l=">="+n+"."+a+"."+s+" <"+n+"."+(+a+1)+".0":l=">="+n+"."+a+"."+s+" <"+(+n+1)+".0.0"),b("caret return",l),l})}function go(t,e){return b("replaceXRanges",t,e),t.split(/\s+/).map(function(r){return ho(r,e)}).join(" ")}function ho(t,e){t=t.trim();var r=e.loose?T[i.XRANGELOOSE]:T[i.XRANGE];return t.replace(r,function(o,n,a,s,p,l){b("xRange",t,o,n,a,s,p,l);var m=L(a),h=m||L(s),I=h||L(p),g=I;return n==="="&&g&&(n=""),l=e.includePrerelease?"-0":"",m?n===">"||n==="<"?o="<0.0.0-0":o="*":n&&g?(h&&(s=0),p=0,n===">"?(n=">=",h?(a=+a+1,s=0,p=0):(s=+s+1,p=0)):n==="<="&&(n="<",h?a=+a+1:s=+s+1),o=n+a+"."+s+"."+p+l):h?o=">="+a+".0.0"+l+" <"+(+a+1)+".0.0"+l:I&&(o=">="+a+"."+s+".0"+l+" <"+a+"."+(+s+1)+".0"+l),b("xRange return",o),o})}function Eo(t,e){return b("replaceStars",t,e),t.trim().replace(T[i.STAR],"")}function wo(t,e,r,o,n,a,s,p,l,m,h,I,g){return L(r)?e="":L(o)?e=">="+r+".0.0":L(n)?e=">="+r+"."+o+".0":e=">="+e,L(l)?p="":L(m)?p="<"+(+l+1)+".0.0":L(h)?p="<"+l+"."+(+m+1)+".0":I?p="<="+l+"."+m+"."+h+"-"+I:p="<="+p,(e+" "+p).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(yo(this.set[e],t,this.options))return true;return false};function yo(t,e,r){for(var o=0;o<t.length;o++)if(!t[o].test(e))return false;if(e.prerelease.length&&!r.includePrerelease){for(o=0;o<t.length;o++)if(b(t[o].semver),t[o].semver!==q&&t[o].semver.prerelease.length>0){var n=t[o].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return true}return false}return true}u.satisfies=ce;function ce(t,e,r){try{e=new O(e,r);}catch{return false}return e.test(t)}u.maxSatisfying=Io;function Io(t,e,r){var o=null,n=null;try{var a=new O(e,r);}catch{return null}return t.forEach(function(s){a.test(s)&&(!o||n.compare(s)===-1)&&(o=s,n=new E(o,r));}),o}u.minSatisfying=vo;function vo(t,e,r){var o=null,n=null;try{var a=new O(e,r);}catch{return null}return t.forEach(function(s){a.test(s)&&(!o||n.compare(s)===1)&&(o=s,n=new E(o,r));}),o}u.minVersion=To;function To(t,e){t=new O(t,e);var r=new E("0.0.0");if(t.test(r)||(r=new E("0.0.0-0"),t.test(r)))return r;r=null;for(var o=0;o<t.set.length;++o){var n=t.set[o];n.forEach(function(a){var s=new E(a.semver.version);switch(a.operator){case ">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case "":case ">=":(!r||te(r,s))&&(r=s);break;case "<":case "<=":break;default:throw new Error("Unexpected operation: "+a.operator)}});}return r&&t.test(r)?r:null}u.validRange=bo;function bo(t,e){try{return new O(t,e).range||"*"}catch{return null}}u.ltr=So;function So(t,e,r){return xe(t,e,"<",r)}u.gtr=Ro;function Ro(t,e,r){return xe(t,e,">",r)}u.outside=xe;function xe(t,e,r,o){t=new E(t,o),e=new O(e,o);var n,a,s,p,l;switch(r){case ">":n=te,a=De,s=ae,p=">",l=">=";break;case "<":n=ae,a=ke,s=te,p="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ce(t,e,o))return false;for(var m=0;m<e.set.length;++m){var h=e.set[m],I=null,g=null;if(h.forEach(function(w){w.semver===q&&(w=new D(">=0.0.0")),I=I||w,g=g||w,n(w.semver,I.semver,o)?I=w:s(w.semver,g.semver,o)&&(g=w);}),I.operator===p||I.operator===l||(!g.operator||g.operator===p)&&a(t,g.semver))return false;if(g.operator===l&&s(t,g.semver))return false}return true}u.prerelease=Oo;function Oo(t,e){var r=W(t,e);return r&&r.prerelease.length?r.prerelease:null}u.intersects=Po;function Po(t,e,r){return t=new O(t,r),e=new O(e,r),t.intersects(e)}u.coerce=Ao;function Ao(t,e){if(t instanceof E)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};var r=null;if(!e.rtl)r=t.match(T[i.COERCE]);else {for(var o;(o=T[i.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||o.index+o[0].length!==r.index+r[0].length)&&(r=o),T[i.COERCERTL].lastIndex=o.index+o[1].length+o[2].length;T[i.COERCERTL].lastIndex=-1;}return r===null?null:W(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),e)}});var ve=G.join(yr.homedir(),".pcc");var B=class extends Error{constructor(){super("Please login user using `pcc login` command"),this.name=this.constructor.name;}},V=class extends Error{constructor(){super("Not Found"),this.name=this.constructor.name;}};function f(t,e){return async function(r){try{await t(r);}catch(o){e&&e(r),o instanceof B?(console.log($.red(` Error: User is not logged in.`)),console.log($.yellow(` Please run "pcc login" to login.`))):(S.isAxiosError(o)&&(o.response?.status??500)<500&&o.response?.data?console.log($.red(` Error: ${o.response.data.message||o.response.data}`)):(console.log($.yellow(` Stack trace:`,o.stack)),console.log($.red(` Error: Something went wrong. Please contact Pantheon support team.`))),exit(1));}}}it.configure({autoescape:true});var Dr=["https://www.googleapis.com/auth/userinfo.email"];function xr(t){return new Promise(async(e,r)=>{let o=Ee("Logging you in...").start();try{let n=await _(t);if(n){let m=n.scope?.split(" ");if(!t?.length||t.find(h=>m?.includes(h))){let h=parseJwt(n.id_token);return o.succeed(`You are already logged in as ${h.email}.`),e()}}let a=await v(),p=new OAuth2Client({clientId:a.googleClientId,redirectUri:a.googleRedirectUri}).generateAuthUrl({access_type:"offline",scope:[...Dr,...t]}),l=Sr.createServer(async(m,h)=>{try{if(!m.url)throw new Error("No URL path provided");if(m.url.indexOf("/oauth-redirect")>-1){let g=new Pr.URL(m.url,"http://localhost:3030").searchParams.get("code"),w=dirname(fileURLToPath(import.meta.url)),R=readFileSync(join(w,"../templates/loginSuccess.html")),P=await d.getToken(g),k=parseJwt(P.id_token);await Te(P),h.end(it.renderString(R.toString(),{email:k.email})),l.destroy(),o.succeed(`You are successfully logged in as ${k.email}`),e();}}catch(I){o.fail(),r(I);}});kr(l),l.listen(3030,()=>{jt(p,{wait:!0}).then(m=>m.kill());});}catch(n){o.fail(),r(n);}})}var ne=f(xr),at=[{description:"Login the user",command:"$0 login"}];function be(t,e,r){let o=t.split(` `),n=o.findIndex(s=>s.indexOf(e)===0),a=o[n].split("=");return a[1]=r,o[n]=a.join("="),o.join(` `)}function Se(t,e,r=false,o){return new Promise(function(n,a){spawn(t,e,{stdio:r?"inherit":void 0,shell:true,...o&&{cwd:o}}).on("exit",p=>{p===0?n(0):a(`Exited with code: ${p}`);});})}function st(t){return t.trim().replace(/[^\w\s]/gi,"-").replace(/[\s_]+|[^\w\s]+/g,"-").replace(/^-|-$/g,"").replace(/-{2,}/g,"-").toLowerCase()}async function Re(t){try{return await Se(`${t} -v`,[]),!0}catch{return false}}var Oe=class{static async getToken(e){return (await S.post(`${(await v()).OAUTH_ENDPOINT}/token`,{code:e})).data}static async refreshToken(e){return (await S.post(`${(await v()).OAUTH_ENDPOINT}/refresh`,{refreshToken:e})).data}static async getCurrentTime(){try{let e=await S.get(`${(await v()).addOnApiEndpoint}/ping`);return Number(e.data.timestamp)}catch{return Date.now()}}static async getIdToken(e){let r=await _(e);if(!r&&(Ee().clear(),await ne(e||[]),r=await _(e),!r))throw new B;return {idToken:r.id_token,oauthToken:r.access_token}}static async getDocument(e,r=false,o){let{idToken:n,oauthToken:a}=await this.getIdToken();return (await S.get(`${(await v()).DOCUMENT_ENDPOINT}/${e}`,{params:{insertIfMissing:r,...o&&{withMetadata:{title:o,slug:st(o)}}},headers:{Authorization:`Bearer ${n}`,"oauth-token":a}})).data}static async addSiteMetadataField(e,r,o,n){let{idToken:a}=await this.getIdToken();await S.post(`${(await v()).SITE_ENDPOINT}/${e}/metadata`,{contentType:r,field:{title:o,type:n}},{headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"}});}static async updateDocument(e,r,o,n,a,s){let{idToken:p,oauthToken:l}=await this.getIdToken();return s&&console.log("update document",{documentId:e,siteId:r,title:o,tags:n,metadataFields:a}),(await S.patch(`${(await v()).DOCUMENT_ENDPOINT}/${e}`,{siteId:r,tags:n,title:o,...a&&{metadataFields:a}},{headers:{Authorization:`Bearer ${p}`,"oauth-token":l,"Content-Type":"application/json"}})).data}static async publishDocument(e){let{idToken:r,oauthToken:o}=await this.getIdToken(["https://www.googleapis.com/auth/drive"]);if(!r||!o)throw new B;let a=(await S.post(`${(await v()).DOCUMENT_ENDPOINT}/${e}/publish`,null,{headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json","oauth-token":o}})).data.url;try{let s=await S.get(a);console.log("Published to ",s.request.res.responseUrl);}catch(s){throw s instanceof AxiosError&&console.error(s,s.code,s.message),s}}static async previewFile(e,{baseUrl:r}){let{idToken:o,oauthToken:n}=await this.getIdToken(["https://www.googleapis.com/auth/drive"]);if(!o||!n)throw new B;return (await S.post(`${(await v()).DOCUMENT_ENDPOINT}/${e}/preview`,{baseUrl:r},{headers:{Authorization:`Bearer ${o}`,"Content-Type":"application/json","oauth-token":n}})).data.url}static async createApiKey({siteId:e}={}){let{idToken:r}=await this.getIdToken();return (await S.post((await v()).API_KEY_ENDPOINT,{siteId:e},{headers:{Authorization:`Bearer ${r}`}})).data.apiKey}static async listApiKeys(){let{idToken:e}=await this.getIdToken();return (await S.get((await v()).API_KEY_ENDPOINT,{headers:{Authorization:`Bearer ${e}`}})).data}static async revokeApiKey(e){let{idToken:r}=await this.getIdToken();try{await S.delete(`${(await v()).API_KEY_ENDPOINT}/${e}`,{headers:{Authorization:`Bearer ${r}`}});}catch(o){if(o.response.status===HttpStatusCode.NotFound)throw new V}}static async createSite(e){let{idToken:r}=await this.getIdToken();return (await S.post((await v()).SITE_ENDPOINT,{name:"",url:e,emailList:""},{headers:{Authorization:`Bearer ${r}`}})).data.id}static async deleteSite(e,r,o){let{idToken:n}=await this.getIdToken();return (await S.delete(he.stringifyUrl({url:`${(await v()).SITE_ENDPOINT}/${e}`,query:{transferToSiteId:r,force:o}}),{headers:{Authorization:`Bearer ${n}`}})).data.id}static async listSites({withConnectionStatus:e}){let{idToken:r}=await this.getIdToken();return (await S.get((await v()).SITE_ENDPOINT,{headers:{Authorization:`Bearer ${r}`},params:{withConnectionStatus:e}})).data}static async getSite(e){let{idToken:r}=await this.getIdToken();return (await S.get(`${(await v()).SITE_ENDPOINT}/${e}`,{headers:{Authorization:`Bearer ${r}`}})).data}static async updateSite(e,r){let{idToken:o}=await this.getIdToken();await S.patch(`${(await v()).SITE_ENDPOINT}/${e}`,{url:r},{headers:{Authorization:`Bearer ${o}`}});}static async getServersideComponentSchema(e){let{idToken:r}=await this.getIdToken();await S.get(`${(await v()).SITE_ENDPOINT}/${e}/components`,{headers:{Authorization:`Bearer ${r}`}});}static async pushComponentSchema(e,r){let{idToken:o}=await this.getIdToken();await S.post(`${(await v()).SITE_ENDPOINT}/${e}/components`,{componentSchema:r},{headers:{Authorization:`Bearer ${o}`}});}static async removeComponentSchema(e){let{idToken:r}=await this.getIdToken();await S.delete(`${(await v()).SITE_ENDPOINT}/${e}/components`,{headers:{Authorization:`Bearer ${r}`}});}static async listAdmins(e){let{idToken:r}=await this.getIdToken();return (await S.get(`${(await v()).SITE_ENDPOINT}/${e}/admins`,{headers:{Authorization:`Bearer ${r}`}})).data}static async addAdmin(e,r){let{idToken:o}=await this.getIdToken();await S.patch(`${(await v()).SITE_ENDPOINT}/${e}/admins`,{email:r},{headers:{Authorization:`Bearer ${o}`}});}static async removeAdmin(e,r){let{idToken:o}=await this.getIdToken();await S.delete(`${(await v()).SITE_ENDPOINT}/${e}/admins`,{headers:{Authorization:`Bearer ${o}`},data:{email:r}});}static async listCollaborators(e){let r=await this.getIdToken();return (await S.get(`${(await v()).SITE_ENDPOINT}/${e}/collaborators`,{headers:{Authorization:`Bearer ${r}`}})).data}static async addCollaborator(e,r){let o=await this.getIdToken();await S.patch(`${(await v()).SITE_ENDPOINT}/${e}/collaborators`,{email:r},{headers:{Authorization:`Bearer ${o}`}});}static async removeCollaborator(e,r){let o=await this.getIdToken();await S.delete(`${(await v()).SITE_ENDPOINT}/${e}/collaborators`,{headers:{Authorization:`Bearer ${o}`},data:{email:r}});}static async updateSiteConfig(e,{url:r,webhookUrl:o,webhookSecret:n,preferredEvents:a}){let{idToken:s}=await this.getIdToken(),p=o||n||a;await S.patch(`${(await v()).SITE_ENDPOINT}/${e}`,{...r&&{url:r},...p&&{webhookConfig:{...o&&{webhookUrl:o},...n&&{webhookSecret:n},...a&&{preferredEvents:a}}}},{headers:{Authorization:`Bearer ${s}`}});}static async fetchWebhookLogs(e,{limit:r,offset:o}){let{idToken:n}=await this.getIdToken();return (await S.get(`${(await v()).SITE_ENDPOINT}/${e}/webhookLogs`,{headers:{Authorization:`Bearer ${n}`},params:{limit:r,offset:o}})).data}static async fetchAvailableWebhookEvents(e){let{idToken:r}=await this.getIdToken();return (await S.get(`${(await v()).SITE_ENDPOINT}/${e}/availableWebhookEvents`,{headers:{Authorization:`Bearer ${r}`}})).data}},d=Oe;var Q=G.join(ve,"auth.json"),Pe=G.join(ve,"config.json"),_=async t=>{let e;try{e=JSON.parse(readFileSync(Q).toString());}catch{return null}let r=new Set(e.scope?.split(" ")||[]);if(t&&t.length>0&&!t.every(o=>r.has(o)))return null;if(e.expiry_date&&await d.getCurrentTime()<e.expiry_date)return e;try{let o=await d.refreshToken(e.refresh_token);return Te(o),o}catch{return null}},z=async()=>{try{return JSON.parse(readFileSync(Pe).toString())}catch{return null}},Te=async t=>{await mt(t,Q);},pt=async t=>{await mt(t,Pe);},dt=async()=>remove(Pe),mt=async(t,e)=>{await new Promise((r,o)=>ensureFile(e,n=>{n?o(n):r();})),writeFileSync(e,JSON.stringify(t,null,2));};var Br={production:{addOnApiEndpoint:"https://us-central1-pantheon-content-cloud.cloudfunctions.net/addOnApi",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=Br[t?.targetEnvironment||"production"];return {...e,API_KEY_ENDPOINT:`${e.addOnApiEndpoint}/api-key`,SITE_ENDPOINT:`${e.addOnApiEndpoint}/sites`,DOCUMENT_ENDPOINT:`${e.addOnApiEndpoint}/articles`,OAUTH_ENDPOINT:`${e.addOnApiEndpoint}/oauth`}};var ut=async()=>{let e=(await z())?.targetEnvironment||"production";e!=="production"&&console.log($.yellow(`WARNING: This CLI build is pointing to "${e}" environment.`));};var le=wr(yt());var xo=fileURLToPath(import.meta.url),$o=dirname(xo);function _e(){let{name:t,version:e}=JSON.parse(fe__default.readFileSync($o+"/../package.json").toString());return {name:t,version:e}}var _o=1e3,Uo=async()=>new Promise(t=>{let e=false,r=setTimeout(()=>{e=true,t();},_o);(async()=>{let{name:o,version:n}=_e(),{versions:a}=await Do(o,{allVersions:true});if(e)return;let s=Object.keys(a),p=s.pop();for(;p!=null&&!(!le.default.prerelease(p)&&le.default.gt(p,n));)p=s.pop();if(p!=null&&le.default.lt(n,p)){let m={updateAvailable:`Update available! ${$.dim(n)} \u2192 ${$.green(p)}.`,runUpdate:`Run ${$.cyan(`npm i -g ${o}`)} to update.`};console.log(ko(`${m.updateAvailable} ${m.runUpdate}`,{margin:1,padding:1,align:"center"}));}clearTimeout(r),t();})();}),It=Uo;it.configure({autoescape:true});var vt=f(async t=>new Promise(async(e,r)=>{let o=Ee("Updating config file").start();["production","staging"].includes(t)||(o.fail("The provided value should either be 'production' or `staging'"),exit(1));try{await pt({targetEnvironment:t}),o.succeed("Successfully updated config file"),e();}catch(n){o.fail(),r(n);}})),Tt=f(()=>new Promise(async(t,e)=>{let r=Ee("Deleting config file").start();try{await dt(),r.succeed("Successfully deleted config file"),t();}catch(o){r.fail(),e(o);}})),bt=f(async()=>new Promise(async(t,e)=>{let r=Ee("Retrieving configuration data").start();try{let o=await z(),n=await v();console.log(JSON.stringify({localConfig:o,apiConfig:n},null,4)),r.succeed("Successfully retrieved configuration data"),t();}catch(o){r.fail(),e(o);}}));var j=class{constructor(e,r=false){r?this.logger=null:this.logger=Ee(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);}},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 Ho=/^(https|http):\/\/(www.)?docs.google.com\/document\/d\/(?<id>[^/]+).*$/,Rt=f(async({documentId:t,baseUrl:e})=>{let r=new x,o=t.trim(),n=o.match(Ho);if(n?.groups?.id&&(o=n.groups.id),e)try{new URL(e),e.startsWith("localhost:")&&(e=`http://${e}`,new URL(e));}catch{r.error($.red("ERROR: Value provided for `baseUrl` is not a valid URL. ")),exit(1);}let a=new j("Generating preview link");a.start();let s=await d.previewFile(o,{baseUrl:e});a.succeed("Successfully generated preview link. Please copy it below:"),r.log($.green(s));}),Fe=[{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 pe(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(r){return console.error(r),null}}async function de(t){await d.getIdToken(["https://www.googleapis.com/auth/drive.file"]);let e=await _();e||(t.error($.red("ERROR: Failed to retrieve login details. ")),exit(1));let r=new OAuth2Client;return r.setCredentials(e),google.drive({version:"v3",auth:r})}async function me(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 Jo(t){try{console.log(`Importing from ${t}`);let e=(await S.get(t)).data;return {nextURL:e.links?.next?.href,posts:e.data,includedData:e.included}}catch(e){throw console.error(e),e}}var je=f(async({baseUrl:t,siteId:e,verbose:r,publish:o})=>{let n=new x,a=pe(t);a||(n.error($.red("ERROR: Value provided for `baseUrl` is not a valid URL. ")),exit(1));let s=await de(n),p=await me(s,`PCC Import from Drupal on ${new Date().toLocaleDateString()} unique id: ${randomUUID()}`);p?.id||(n.error($.red("Failed to create parent folder which we would have imported posts into")),exit(1));let l=0,{url:m,query:h}=he.parseUrl(a);h.include="field_author,field_topics";let I=[],g=[],w=he.stringifyUrl({url:m,query:h});do{let R=await Jo(w);w=R.nextURL,R.posts?.length&&I.push(...R.posts),R.includedData?.length&&g.push(...R.includedData);}while(w!=null&&++l<1e3);n.log($.green(`Retrieved ${I.length} posts after ${l} pages`)),await d.addSiteMetadataField(e,"blog","drupalId","text"),await d.addSiteMetadataField(e,"blog","author","text"),await Ko.map(I,async R=>{if(R?.attributes?.body==null){console.log("Skipping post",Object.keys(R));return}let P=g.find(C=>C.id===R.relationships.field_author.data.id)?.attributes?.title,A=(await s.files.create({requestBody:{name:R.attributes.title,mimeType:"application/vnd.google-apps.document",parents:[p.id]},media:{mimeType:"text/html",body:R.attributes.body.processed}})).data.id;if(!A)throw new Error(`Failed to create file for ${R.attributes.title}`);await d.getDocument(A,!0);try{await d.updateDocument(A,e,R.attributes.title,R.relationships.field_topics?.data?.map(C=>g.find(M=>M.id===C.id)?.attributes?.name).filter(C=>C!=null)||[],{author:P,drupalId:R.id},r),o&&await d.publishDocument(A);}catch(C){throw console.error(C instanceof AxiosError?C.response?.data:C),C}},{concurrency:20}),n.log($.green(`Successfully imported ${I.length} documents into ${p.name}`));});var on=["h1","h2","h3","title"],He=f(async({filePath:t,siteId:e,verbose:r,publish:o})=>{let n=new x;fe.existsSync(t)||(n.error($.red(`ERROR: Could not find markdown file at given path (${t})`)),exit(1));let a=fe.readFileSync(t).toString();await d.getIdToken(["https://www.googleapis.com/auth/drive.file"]);let s=await _();s||(n.error($.red("ERROR: Failed to retrieve login details.")),exit(1));let p=Ee("Creating document on the Google Drive...").start(),l=new OAuth2Client;l.setCredentials(s);let m=google.drive({version:"v3",auth:l}),I=new rn.Converter().makeHtml(a),g=parseFromString(I),w;for(let A of on){let C=g.getElementsByTagName(A)[0];if(C){w=C.textContent;break}}w=w||"Untitled Document";let P=(await m.files.create({requestBody:{name:w,mimeType:"application/vnd.google-apps.document"},media:{mimeType:"text/html",body:I}})).data.id,k=`https://docs.google.com/document/d/${P}`;P||(p.fail("Failed to create document on the Google Drive."),exit(1)),await d.getDocument(P,!0,w),await d.updateDocument(P,e,w,[],null,r),await d.getDocument(P,!1,w),o&&await d.publishDocument(P),p.succeed(`Successfully created document at below path${o?" and published it on the PCC.":":"}`),n.log($.green(k,` `));});var Nt=50;async function cn(t){try{console.log(`Importing from ${t}`);let e=(await S.get(t)).data,{url:r,query:o}=he.parseUrl(t),n=Nt;o.per_page!=null&&(n=parseInt(o.per_page.toString(),10)),o.pageSize=n.toString(),o.page=(o.page!=null?parseInt(o.page.toString(),10)+1:2).toString();let a=he.stringifyUrl({url:r,query:o});return e.length<n&&(a=null),{nextURL:a,posts:e}}catch(e){throw console.error(e),e}}async function ln(t,e){if(!e?.length)return [];let{data:r}=await S.get(new URL(`/wp-json/wp/v2/tags?include=${e.join()}`,t).href);return r.map(o=>({id:o.id,name:o.name,slug:o.slug,description:o.description}))}var Be=f(async({baseUrl:t,siteId:e,verbose:r,publish:o})=>{let n=new x,a=pe(t);console.log({baseUrl:t,processedBaseURL:a}),a||(n.error($.red("ERROR: Value provided for `baseUrl` is not a valid URL. ")),exit(1));let s=await de(n),p=await me(s,`PCC Import from WordPress on ${new Date().toLocaleDateString()} unique id: ${randomUUID()}`);p?.id||(n.error($.red("Failed to create parent folder which we would have imported posts into")),exit(1));let l=1,{url:m,query:h}=he.parseUrl(a);h.per_page=Nt.toString(),h.page=l.toString(),h._embed="";let I=[],g=he.stringifyUrl({url:new URL("/wp-json/wp/v2/posts",m).href,query:h});do{let w=await cn(g);g=w.nextURL,w.posts?.length&&I.push(...w.posts);}while(g!=null&&++l<1e3);n.log($.green(`Retrieved ${I.length} posts after ${l} pages`)),await d.addSiteMetadataField(e,"blog","wordpressId","text"),await d.addSiteMetadataField(e,"blog","author","text"),await Ko.map(I,async w=>{let R=w._embedded.author.map(A=>A.name).join(", "),k=(await s.files.create({requestBody:{name:w.title.rendered,mimeType:"application/vnd.google-apps.document",parents:[p.id]},media:{mimeType:"text/html",body:w.content.rendered}})).data.id;if(!k)throw new Error(`Failed to create file for ${w.title.rendered}`);await d.getDocument(k,!0);try{await d.updateDocument(k,e,w.title.rendered,(await ln(a,w.tags)).map(A=>A.name),{author:R,wordpressId:w.id},r),o&&await d.publishDocument(k);}catch(A){throw console.error(A instanceof AxiosError?A.response?.data:A),A}},{concurrency:20}),n.log($.green(`Successfully imported ${I.length} documents into ${p.name}`));});var gn=new Octokit,Lt="pantheon-systems",kt="pantheon-content-cloud-sdk";async function Dt(t,e,r){try{let o=(await En(t,r)).filter(n=>!["turbo.json"].includes(n.path));return await Promise.all(o.map(n=>hn(n,e))),G.resolve(e)}catch(o){throw new Error("Error fetching starter kit from Github: "+o)}}async function hn(t,e){let r=G.join(e,t.path),o=G.dirname(r);await mkdir(o,{recursive:true}),await writeFile(r,t.contents);}async function En(t,e){let{data:r}=await gn.request("GET /repos/{owner}/{repo}/git/trees/{tree_sha}",{owner:Lt,repo:kt,tree_sha:"main",recursive:"true"}),n=r.tree.filter(a=>!!(a.path?.startsWith(t)&&a.type==="blob")).map(a=>a.path).map(async a=>{e&&console.log(`Downloading ${a}`);let s=`https://raw.githubusercontent.com/${Lt}/${kt}/main/${a}`;async function p(l,m){try{let{data:h}=await S.get(l,{responseType:"arraybuffer"});return {path:a.replace(t,""),contents:h}}catch(h){if(h instanceof AxiosError&&h.code==="ENOTFOUND"&&m)return console.error(`Failed to download ${l}, but reattempting one time.`),p(l,false);throw console.error(`Failed to download ${l}`),h}}return p(s,true)});return Promise.all(n)}var Tn={nextjs:"nextjs-starter"},bn={eslint:"*","eslint-config-next":"*"},Sn={extends:"next/core-web-vitals"},Rn=async({dirName:t,template:e,skipInstallation:r,packageManager:o="npm",nonInteractive:n=false,siteId:a=null,silentLogs:s,eslint:p,appName:l,useAppRouter:m,useTypescript:h,printVerbose:I})=>{let g=new x(s);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 w=new j("Fetching starter kit...",s);w.start(),e==="nextjs"&&m&&!h&&(g.error($.red("ERROR: Typescript is required when using nextjs app router")),exit(1));let R=`starters/${Tn[e]}${m?"-approuter":""}${h?"-ts":""}/`,P=await Dt(R,t,I);w.succeed("Fetched starter kit!");let k=new j("Setting up project...",s);k.start();let A=JSON.parse(readFileSync(G.join(P,"package.json")).toString());l?A.name=l:A.name=G.parse(t).base;let C=G.join(P,".eslintrc.json");if(p&&e==="nextjs"){A.devDependencies={...A.devDependencies,...bn};let N=null;try{N=openSync(C,"wx");}catch{}N&&writeFileSync(N,JSON.stringify(Sn,null,2));}else p||rmSync(C,{force:true});writeFileSync(G.join(P,"package.json"),JSON.stringify(A,null,2)+` `),k.succeed("Completed setting up project!");let M=".env.local";if(copyFileSync(G.join(P,".env.example"),G.join(P,M)),!r){new j("Installing dependencies...",s).info();try{await Se(o,["install"],!s,P);}catch(N){throw console.error(N),N}new j("",s).succeed("Installed dependencies!");}let J;if(!n){if(!a){let{chooseSite:pr}=await ze.prompt([{type:"confirm",name:"chooseSite",message:"Pick site now?"}]);pr&&(a=(await ze.prompt({type:"list",name:"siteId",choices:(await d.listSites({})).filter(oe=>!oe.__isPlayground).map(oe=>`${oe.url} (${oe.id})`)})).siteId.split(" (")[1].replace(")",""));}let{createNewApiKey:N}=await ze.prompt([{type:"confirm",name:"createNewApiKey",message:"Create a new Token?"}]);N&&(J=await d.createApiKey());}if(J!=null||a!=null){let N=readFileSync(G.join(P,M)).toString();a!=null&&(N=be(N,"PCC_SITE_ID",a)),J!=null&&(N=be(N,"PCC_TOKEN",J)),writeFileSync(G.join(P,M),N);}if(J==null||a==null){g.log(),g.log($.green(`To get started please replace the placeholders in ${M}`)),g.log($.green(` cd ${t}`));let N=process.platform==="win32"?"notepad":"vim";g.log($.green(` ${N} ${M}`)),g.log($.green("And then run the website"));}else g.log($.green(`You have successfully populated the local environment file. You can edit this at any time by opening ${M}`)),g.log($.green("You are now ready to run the website locally, which you can do by executing in the command line:")),g.log($.green(` cd ${t}`));e==="nextjs"?g.log($.green(` ${o} run dev`)):g.log($.green(` ${o} run start`));},_t=f(Rn,t=>{let{dirName:e}=t;existsSync(e)&&rmdirSync(e,{recursive:true});}),Ye=[{description:"Create project with nextjs template",command:"pcc init new_proj"},{description:"Create project using pnpm package manager",command:"pcc init new_proj --use-pnpm"},{description:"Create Typescript project and setup ESLint in it",command:"pcc init new_proj --ts --eslint"},{description:"Create project without installing dependencies",command:"pcc init new_proj --noInstall"},{description:"Create project and provide site ID to pre-populate .env file with",command:"pcc init new_proj --site-id 123456789example1234"}];var Cn=async()=>{let t=Ee("Logging you out...").start();try{existsSync(Q)&&rmSync(Q),t.succeed("Successfully logged you out from PPC client!");}catch(e){throw t.fail(),e}},Ut=f(Cn),Ft=[{description:"Logout the user",command:"$0 logout"}];it.configure({autoescape:true});var Mn=3030;async function Gn(t){let e=t,r=Sr.createServer(async(s,p)=>{let l=dirname(fileURLToPath(import.meta.url)),m=readFileSync(join(l,"../templates/logs.html"));p.end(it.renderString(m.toString(),{logs:JSON.stringify(e,null,2)}));}),o=await Un({port:Mn}),n=`http://localhost:${o}/`;r.listen(o,()=>{jt(n,{wait:true}).then(s=>s.kill());}),kr(r);function a(s){e=s,jt(n,{wait:true}).then(p=>p.kill());}return {server:r,address:n,updateLogs:a}}async function Mt(t,e,r){let o=Ee("Fetching logs...").start();try{let n=await d.fetchWebhookLogs(t,{limit:e,offset:r});return o.succeed("Successfully fetched logs."),n}catch(n){throw o.fail($.red("Failed to fetch logs. Please try again or contact support")),n}}async function Hn({id:t,limit:e}){let r=e||100,o=0,n=await Mt(t,r,o),{server:a,address:s,updateLogs:p}=await Gn(n);console.log(`Visit ${s} to view logs`),console.log("Press <SPACE> then <ENTER> to load more logs"),console.log("Press q then <ENTER> to quit");function l(){let m=xn.createInterface({input:process.stdin,output:process.stdout});m.question("",async h=>{if(h==="q"&&(a.destroy(),process.exit()),h===" "){let I=o+r,g=await Mt(t,r,I);o=I,n=[...g,...n],p(n);}m.close(),l();});}l();}var Ht=f(Hn);var Bt=f(async({siteId:t})=>{let e=Ee("Retrieving admins...").start(),r=await d.listAdmins(t);e.succeed(),console.log(JSON.stringify(r,null,4));}),Xt=f(async({siteId:t,email:e})=>{let r=Ee("Removing admin...").start();await d.removeAdmin(t,e),r.succeed();}),Wt=f(async({siteId:t,email:e})=>{let r=Ee("Adding admin...").start();await d.addAdmin(t,e),r.succeed();});var Vt=f(async({siteId:t})=>{let e=Ee("Retrieving Collaborators...").start(),r=await d.listCollaborators(t);e.succeed(),console.log(JSON.stringify(r,null,4));}),zt=f(async({siteId:t,email:e})=>{let r=Ee("Removing Collaborator...").start();await d.removeCollaborator(t,e),r.succeed();}),Yt=f(async({siteId:t,email:e})=>{let r=Ee("Adding Collaborator...").start();await d.addCollaborator(t,e),r.succeed();});var qt=f(async({siteId:t,componentSchema:e})=>{let r=Ee("Retrieving component schema...").start(),o=await d.pushComponentSchema(t,e);r.succeed(),console.log(JSON.stringify(o,null,4));}),Kt=f(async({siteId:t})=>{let e=Ee("Retrieving component schema...").start(),r=await d.getServersideComponentSchema(t);e.succeed(),console.log(JSON.stringify(r,null,4));}),Jt=f(async({siteId:t})=>{let e=Ee("Removing component schema...").start(),r=await d.removeComponentSchema(t);e.succeed(),console.log(JSON.stringify(r,null,4));}),Je=async(t,e,r)=>{let o=`${t}${e||"/api/pantheoncloud/component_schema"}`,n=(await S.get(o)).data;r.succeed(`Retrieved component schema from ${o}. Now checking its validity`);try{validateComponentSchema(n);}catch{r.fail($.red("Failed to validate this schema:",JSON.stringify(n,null,4))),process.exit(1);}return r.succeed(),n},Zt=f(async({url:t,apiPath:e})=>{let r=Ee("Retrieving component schema...").start(),o=await Je(t,e,r);console.log(JSON.stringify(o,null,4));});function we(t){if(t.length===0)return;let e=Object.keys(t[0]).reduce((p,l)=>(p[l]=l.toString().length,p),{});t.forEach(p=>{Object.keys(e).forEach(l=>{p[l].toString().length>e[l]&&(e[l]=p[l].toString().length);});});let r=[];t.forEach(p=>{r.push(Object.keys(e).reduce((l,m)=>{let h=typeof p[m]=="boolean"?p[m]?"\u2705":"\u274C":p[m].toString();return l[m]=h.padEnd(e[m]),l},{}));});let o=new Transform({transform(p,l,m){m(null,p);}});new Console({stdout:o}).table(r);let a=(o.read()||"").toString(),s="";for(let p of a.split(/[\r\n]+/)){let l=p.replace(/[^┬]*┬/,"\u250C");l=l.replace(/^├─*┼/,"\u251C"),l=l.replace(/│[^│]*/,""),l=l.replace(/^└─*┴/,"\u2514"),l=l.replace(/'/g," "),s+=`${l} `;}console.log(s);}var Ie=f(async t=>{let e=Ee("Creating site...").start();try{let r=await d.createSite(t);e.succeed(`Successfully created the site with given details. Id: ${r}`);}catch(r){throw e.fail(),r}}),er=f(async({id:t,transferToSiteId:e,force:r})=>{let o=Ee("Deleting site...").start();try{await d.deleteSite(t,e,r),o.succeed(`Successfully deleted the site with id "${t}"`);}catch(n){throw o.fail(),n}}),tr=f(async({withStatus:t})=>{let e=Ee("Fetching list of existing sites...").start();try{let r=await d.listSites({withConnectionStatus:t});if(e.succeed("Successfully fetched list of sites."),r.length===0){console.log($.yellow("No sites found."));return}t&&console.info(` `,[$.underline("Legend"),` \u2022 "Frontend Connected" - Whether the site has been configured with a Pantheon SDK and can be reached at the given URL`,'\u2022 "Smart Components" - Whether the site has been configured with Smart Component support','\u2022 "Smart Component Preview" - Whether the site been configured with Smart Component preview support',` `].join(` `)),we(r.map(o=>({Id:o.id,Url:o.url||"","Created At":o.created?Yn(o.created).format("DD MMM YYYY, hh:mm A"):"NA",...t&&{"Frontend Connected":!!o?.connectionStatus?.connected,"Smart Component