croct 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +5 -5
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'module';import {createReadStream,realpathSync}from'fs';import {ApiKey}from'@croct/sdk/apiKey';import {InMemoryCache,AutoSaveCache,AdaptedCache,NoopCache}from'@croct/cache';import $c from'open';import {homedir}from'os';import sd from'xdg-app-paths';import pd from'ci-info';import {FilteredLogger,LogLevel}from'@croct/logging';import ml from'prompts';import {Readable,PassThrough}from'stream';import Ta from'cli-cursor';import rt from'chalk';import xs from'node:readline';import {WriteStream}from'tty';import dl from'is-unicode-supported';import {render}from'@croct/md-lite/rendering.js';import fl from'terminal-link';import {unescape}from'@croct/md-lite/parsing.js';import {strip}from'node-emoji';import {JsonParser as JsonParser$1,JsonObjectNode as JsonObjectNode$1,JsonArrayNode as JsonArrayNode$1}from'@croct/json5-parser/index.js';import {JsonParser,JsonObjectNode,JsonArrayNode,JsonPrimitiveNode,JsonIdentifierNode,JsonTokenNode,JsonTokenType,isIdentifier}from'@croct/json5-parser';import*as g from'@babel/types';import {traverseFast}from'@babel/types';import {traverse}from'@babel/core';import {parse as parse$2}from'@babel/parser';import {createHash,randomUUID}from'crypto';import*as Sr from'recast';import {parse}from'recast/parsers/babel-ts.js';import {stringSimilarity}from'string-similarity-js';import {realpath,lstat,readdir,symlink,link,mkdir,writeFile,rm as rm$1,readFile,mkdtemp,cp as cp$1}from'fs/promises';import {tmpdir}from'node:os';import {sep,basename,dirname,relative,isAbsolute,join,delimiter}from'path';import {Minimatch,minimatch}from'minimatch';import {deepEqual}from'fast-equals';import eu from'tar-stream';import tu from'gunzip-maybe';import {z as z$1,ZodPromise,ZodOptional,ZodTuple,ZodArray,ZodRecord,ZodObject,ZodEffects,ZodAny,ZodPipeline,ZodUnion,ZodDiscriminatedUnion}from'zod';import He from'jsep';import cu from'@jsep-plugin/object';import lu from'@jsep-plugin/spread';import uc from'is-plain-obj';import Om from'strip-ansi';import Ac from'semver';import {spawn,spawnSync}from'child_process';import _m from'ignore';import qm from'clipboardy';import {Token}from'@croct/sdk/token';import Tc from'boxen';import Le from'node:process';import {AsyncLocalStorage}from'node:async_hooks';import {parse as parse$1}from'ini';const require = createRequire(import.meta.url);
2
+ import {createRequire}from'module';import {createReadStream,realpathSync}from'fs';import {ApiKey}from'@croct/sdk/apiKey';import {InMemoryCache,AutoSaveCache,AdaptedCache,NoopCache}from'@croct/cache';import $c from'open';import {homedir}from'os';import sd from'xdg-app-paths';import pd from'ci-info';import {FilteredLogger,LogLevel}from'@croct/logging';import ml from'prompts';import {Readable,PassThrough}from'stream';import Ta from'cli-cursor';import rt from'chalk';import xs from'node:readline';import {WriteStream}from'tty';import dl from'is-unicode-supported';import {render}from'@croct/md-lite/rendering.js';import fl from'terminal-link';import {unescape}from'@croct/md-lite/parsing.js';import {strip}from'node-emoji';import {JsonParser as JsonParser$1,JsonObjectNode as JsonObjectNode$1,JsonArrayNode as JsonArrayNode$1}from'@croct/json5-parser/index.js';import {JsonParser,JsonObjectNode,JsonArrayNode,JsonPrimitiveNode,JsonIdentifierNode,JsonTokenNode,JsonTokenType,isIdentifier}from'@croct/json5-parser';import*as g from'@babel/types';import {traverseFast}from'@babel/types';import {traverse}from'@babel/core';import {parse as parse$2}from'@babel/parser';import {createHash,randomUUID}from'crypto';import*as Sr from'recast';import {parse as parse$1}from'recast/parsers/babel-ts.js';import {stringSimilarity}from'string-similarity-js';import {realpath,lstat,readdir,symlink,link,mkdir,writeFile,rm as rm$1,readFile,mkdtemp,cp as cp$1}from'fs/promises';import {tmpdir}from'node:os';import {sep,basename,dirname,relative,isAbsolute,join,delimiter}from'path';import {Minimatch,minimatch}from'minimatch';import {deepEqual}from'fast-equals';import eu from'tar-stream';import tu from'gunzip-maybe';import {z as z$1,ZodPromise,ZodOptional,ZodTuple,ZodArray,ZodRecord,ZodObject,ZodEffects,ZodAny,ZodPipeline,ZodUnion,ZodDiscriminatedUnion}from'zod';import He from'jsep';import cu from'@jsep-plugin/object';import lu from'@jsep-plugin/spread';import uc from'is-plain-obj';import Om from'strip-ansi';import Ac from'semver';import {spawn,spawnSync}from'child_process';import _m from'ignore';import qm from'clipboardy';import {Token}from'@croct/sdk/token';import Tc from'boxen';import Le from'node:process';import {AsyncLocalStorage}from'node:async_hooks';import {parse}from'ini';const require = createRequire(import.meta.url);
3
3
  var Fc=Object.create;var wa=Object.defineProperty;var jc=Object.getOwnPropertyDescriptor;var Wc=Object.getOwnPropertyNames;var Vc=Object.getPrototypeOf,Uc=Object.prototype.hasOwnProperty;var qc=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var be=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),Hc=(o,e)=>{for(var t in e)wa(o,t,{get:e[t],enumerable:true});},Gc=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Wc(e))!Uc.call(o,r)&&r!==t&&wa(o,r,{get:()=>e[r],enumerable:!(n=jc(e,r))||n.enumerable});return o};var yt=(o,e,t)=>(t=o!=null?Fc(Vc(o)):{},Gc(wa(t,"default",{value:o,enumerable:true}),o));var us=be((de,ls)=>{var ke=qc("commander");de=ls.exports={};de.program=new ke.Command;de.Argument=ke.Argument;de.Command=ke.Command;de.CommanderError=ke.CommanderError;de.Help=ke.Help;de.InvalidArgumentError=ke.InvalidArgumentError;de.InvalidOptionArgumentError=ke.InvalidArgumentError;de.Option=ke.Option;de.createCommand=o=>new ke.Command(o);de.createOption=(o,e)=>new ke.Option(o,e);de.createArgument=(o,e)=>new ke.Argument(o,e);});var Pa=be($n=>{Object.defineProperty($n,"__esModule",{value:true});$n.TimeZone=void 0;var Ut=class o{constructor(e){this.id=e;}static getTimesZoneIds(){return o.SUPPORTED_TIMEZONE_IDS===void 0&&(o.SUPPORTED_TIMEZONE_IDS=new Set(["UTC","CET","CST6CDT","EET","EST","EST5EDT","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","HST","MET","MST","MST7MDT","PST8PDT","WET",...Intl.supportedValuesOf("timeZone")])),o.SUPPORTED_TIMEZONE_IDS}static of(e){if(!o.getTimesZoneIds().has(e))throw new Error(`The timezone ${e} is not supported.`);return new o(e)}getId(){return this.id}toString(){return this.id}equals(e){return this.id===e.id}toJSON(){return this.toString()}};$n.TimeZone=Ut;Ut.UTC=new Ut("UTC");});var ka=be(zn=>{var Ca;Object.defineProperty(zn,"__esModule",{value:true});zn.SystemClock=void 0;var Kc=Ht(),Zc=Pa(),qt=class{constructor(e){this.zone=e;}static of(e){return new this(e)}getZone(){return this.zone}getInstant(){return Kc.Instant.ofEpochMilli(Date.now())}equals(e){return e===this||e instanceof Ca&&e.zone.equals(this.zone)}};zn.SystemClock=qt;Ca=qt;qt.UTC=new Ca(Zc.TimeZone.UTC);});var Aa=be(_n=>{Object.defineProperty(_n,"__esModule",{value:true});_n.DefaultClockProvider=void 0;var Jc=ka(),fs;(function(o){let e=null;function t(){return e===null&&(e=Jc.SystemClock.UTC),e}o.getClock=t;function n(r){e=r;}o.setClock=n;})(fs||(_n.DefaultClockProvider=fs={}));});var Gt=be(le=>{Object.defineProperty(le,"__esModule",{value:true});le.intDiv=le.multiplyExact=le.subtractExact=le.addExact=le.floorMod=le.floorDiv=void 0;function ys(o,e){let t=Math.trunc(o/e);return Math.sign(o)!==Math.sign(e)&&t*e!==o&&t--,t}le.floorDiv=ys;function Qc(o,e){return o-ys(o,e)*e}le.floorMod=Qc;function Bc(o,e){let t=o+e;if(!Number.isSafeInteger(t))throw new Error("The result overflows the range of safe integers.");return t}le.addExact=Bc;function Yc(o,e){let t=o-e;if(!Number.isSafeInteger(t))throw new Error("The result overflows the range of safe integers.");return t}le.subtractExact=Yc;function Xc(o,e){let t=o*e;if(!Number.isSafeInteger(t))throw new Error("The result overflows the range of safe integers.");return t}le.multiplyExact=Xc;function el(o,e){let t=Math.trunc(o/e);if(!Number.isSafeInteger(t))throw new Error("The result overflows the range of safe integers.");return t}le.intDiv=el;});var Fn=be(Ln=>{Object.defineProperty(Ln,"__esModule",{value:true});Ln.LocalDate=void 0;var q=Gt(),ue=class o{constructor(e,t,n){this.year=e,this.month=t,this.day=n;}static of(e,t,n){if(!Number.isSafeInteger(e)||e<o.MIN_YEAR||e>o.MAX_YEAR)throw new Error(`Year must be a safe integer between ${o.MIN_YEAR} and ${o.MAX_YEAR}.`);if(!Number.isInteger(t)||t<1||t>12)throw new Error("Month must be an integer between 1 and 12.");let r=o.getMonthLength(t,o.isLeapYear(e));if(!Number.isInteger(n)||n<1||n>r)throw new Error(`Day must be an integer between 1 and ${r}.`);return new o(e,t,n)}static ofEpochDay(e){if(e<o.MIN_EPOCH_DAY||e>o.MAX_EPOCH_DAY)throw new Error(`The day ${e} is out of the range [${o.MIN_EPOCH_DAY} - ${o.MAX_EPOCH_DAY}].`);let t=(0, q.addExact)(e,719468),n=(0, q.floorDiv)(t,146097),r=(0, q.floorMod)(t,146097),i=(0, q.intDiv)(r,1460);i-=(0, q.intDiv)(r,36524),i+=(0, q.intDiv)(r,146096);let a=(0, q.intDiv)(r-i,365),s=a+n*400,p=365*a+(0, q.intDiv)(a,4)-(0, q.intDiv)(a,100),c=r-p,l=(0, q.intDiv)(c*5+2,153);s+=(0, q.intDiv)(l,10);let u=c-(0, q.intDiv)(l*306+5,10)+1;return l=(l+2)%12+1,o.of(s,l,u)}static fromNative(e){return o.of(e.getFullYear(),e.getMonth()+1,e.getDate())}static parse(e){let{groups:t}=e.match(o.PATTERN)??{};if(t===void 0)throw new Error(`Invalid ISO-8601 date string: ${e}`);let n=Number.parseInt(t.year,10),r=Number.parseInt(t.month,10),i=Number.parseInt(t.day,10);return o.of(n,r,i)}getYear(){return this.year}getMonth(){return this.month}getDay(){return this.day}equals(e){return this===e?true:this.year===e.year&&this.month===e.month&&this.day===e.day}plusYears(e){if(e===0)return this;let t=(0, q.addExact)(this.year,e);return o.resolvePreviousValid(t,this.month,this.day)}minusYears(e){return this.plusYears(-e)}plusMonths(e){if(e===0)return this;let t=this.year+(0, q.intDiv)(e,12),n=this.month+e%12,r=t+(0, q.floorDiv)(n-1,12),i=(0, q.floorMod)(n-1,12)+1;return o.resolvePreviousValid(r,i,this.day)}minusMonths(e){return this.plusMonths(-e)}plusWeeks(e){return e===0?this:this.plusDays((0, q.multiplyExact)(e,7))}minusWeeks(e){return this.plusWeeks(-e)}plusDays(e){if(e===0)return this;let t=this.day+e;if(t>0){if(t<=28)return o.of(this.year,this.month,t);if(t<=59){let n=o.getMonthLength(this.month,o.isLeapYear(this.year));return t<=n?o.of(this.year,this.month,t):this.month<12?o.of(this.year,this.month+1,t-n):o.of(this.year+1,1,t-n)}}return o.ofEpochDay((0, q.addExact)(this.toEpochDay(),e))}minusDays(e){return this.plusDays(-e)}isAfter(e){return this.compare(e)>0}isAfterOrEqual(e){return this.compare(e)>=0}isBefore(e){return this.compare(e)<0}isBeforeOrEqual(e){return this.compare(e)<=0}static isValid(e){try{o.parse(e);}catch{return false}return true}compare(e){return this.year!==e.year?this.year-e.year:this.month!==e.month?this.month-e.month:this.day-e.day}toEpochDay(){let{year:e}=this;this.month<=2&&e--;let t=(0, q.floorDiv)(e,400),n=(this.month+9)%12,r=(0, q.intDiv)(153*n+2,5)+this.day-1,i=e-t*400;return 365*i+(0, q.intDiv)(i,4)-(0, q.intDiv)(i,100)+r+t*146097-719468}toString(){let e=`${this.month}`.padStart(2,"0"),t=`${this.day}`.padStart(2,"0");return `${this.year}-${e}-${t}`}static resolvePreviousValid(e,t,n){let r=o.getMonthLength(t,o.isLeapYear(e));return o.of(e,t,Math.min(n,r))}static isLeapYear(e){return e%4===0&&(e%100!==0||e%400===0)}static getMonthLength(e,t){switch(e){case 2:return t?29:28;case 4:case 6:case 9:case 11:return 30;default:return 31}}toJSON(){return this.toString()}};Ln.LocalDate=ue;ue.PATTERN=/^(?<year>[+-]?\d{4,19})-(?<month>\d{2})-(?<day>\d{2})$/;ue.MIN_EPOCH_DAY=-365961662;ue.MAX_EPOCH_DAY=364522971;ue.MIN_YEAR=-999999;ue.MAX_YEAR=999999;ue.MIN=new ue(ue.MIN_YEAR,1,1);ue.MAX=new ue(ue.MAX_YEAR,12,31);});var Wn=be(jn=>{Object.defineProperty(jn,"__esModule",{value:true});jn.LocalTime=void 0;var Te=Gt(),K=class o{constructor(e,t,n,r){this.hour=e,this.minute=t,this.second=n,this.nanos=r;}static of(e,t=0,n=0,r=0){if(!Number.isInteger(e)||e<0||e>23)throw new Error("Hour must be an integer between 0 and 23.");if(!Number.isInteger(t)||t<0||t>59)throw new Error("Minute must be an integer between 0 and 59.");if(!Number.isInteger(n)||n<0||n>59)throw new Error("Second must be an integer between 0 and 59.");if(!Number.isInteger(r)||r<0||r>999999999)throw new Error("Nanosecond of second must be an integer between 0 and 999999999.");return new o(e,t,n,r)}static ofSecondOfDay(e,t=0){if(e<0||e>o.SECONDS_PER_DAY-1)throw new Error(`The second value ${e} is out of the range [0 - ${o.SECONDS_PER_DAY-1}] of local time.`);if(t<0||t>o.NANOS_PER_SECOND-1)throw new Error(`The nanosecond value ${t} is out of the range [0 - ${o.NANOS_PER_SECOND-1}] of local time.`);let n=e,r=(0, Te.intDiv)(n,o.SECONDS_PER_HOUR);n-=r*o.SECONDS_PER_HOUR;let i=(0, Te.intDiv)(n,o.SECONDS_PER_MINUTE);return n-=i*o.SECONDS_PER_MINUTE,o.of(r,i,n,t)}static fromNative(e){return new o(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()*o.NANOS_PER_MILLI)}static startOfDay(){return new o(0,0,0,0)}static endOfDay(){return new o(23,59,59,999999999)}static parse(e){let{groups:t}=e.match(o.PATTERN)??{};if(t===void 0)throw new Error(`Invalid ISO-8601 time string: ${e}`);let n=Number.parseInt(t.hour,10),r=Number.parseInt(t.minute,10),i=Number.parseInt(t.second??"0",10),a=Number.parseInt(t.fraction?.padEnd(9,"0")??"0",10);return o.of(n,r,i,a)}getHour(){return this.hour}getMinute(){return this.minute}getSecond(){return this.second}getNano(){return this.nanos}toMinuteOfDay(){return this.hour*o.MINUTES_PER_HOUR+this.minute}toSecondOfDay(){return this.toMinuteOfDay()*o.SECONDS_PER_MINUTE+this.second}toMilliOfDay(){return (0, Te.intDiv)(this.toNanoOfDay(),o.NANOS_PER_MILLI)}toMicroOfDay(){return (0, Te.intDiv)(this.toNanoOfDay(),o.NANOS_PER_MICRO)}toNanoOfDay(){return this.toSecondOfDay()*o.NANOS_PER_SECOND+this.nanos}plusHours(e){if(e===0)return this;let n=(e%o.HOURS_PER_DAY+this.hour+o.HOURS_PER_DAY)%o.HOURS_PER_DAY;return new o(n,this.minute,this.second,this.nanos)}minusHours(e){return this.plusHours(-e)}plusMinutes(e){if(e===0)return this;let t=e%o.MINUTES_PER_DAY,n=this.toMinuteOfDay(),r=(t+n+o.MINUTES_PER_DAY)%o.MINUTES_PER_DAY;if(n===r)return this;let i=(0, Te.intDiv)(r,o.MINUTES_PER_HOUR),a=r%o.MINUTES_PER_HOUR;return new o(i,a,this.second,this.nanos)}minusMinutes(e){return this.plusMinutes(-e)}plusSeconds(e){if(e===0)return this;let t=e%o.SECONDS_PER_DAY,n=this.toSecondOfDay(),r=(t+n+o.SECONDS_PER_DAY)%o.SECONDS_PER_DAY;if(n===r)return this;let i=(0, Te.intDiv)(r,o.SECONDS_PER_HOUR),a=(0, Te.intDiv)(r,o.SECONDS_PER_MINUTE)%o.MINUTES_PER_HOUR,s=r%o.SECONDS_PER_MINUTE;return o.of(i,a,s,this.nanos)}minusSeconds(e){return this.plusSeconds(-e)}plusMillis(e){return e===0?this:this.plusNanos(e%o.MILLIS_PER_DAY*o.NANOS_PER_MILLI)}minusMillis(e){return this.plusMillis(-e)}plusMicros(e){return e===0?this:this.plusNanos(e%o.MICROS_PER_DAY*o.NANOS_PER_MICRO)}minusMicros(e){return this.plusMicros(-e)}plusNanos(e){if(e===0)return this;let t=e%o.NANOS_PER_DAY,n=this.toNanoOfDay(),r=(t+n+o.NANOS_PER_DAY)%o.NANOS_PER_DAY;if(n===r)return this;let i=(0, Te.intDiv)(r,o.NANOS_PER_HOUR),a=(0, Te.intDiv)(r,o.NANOS_PER_MINUTE)%o.MINUTES_PER_HOUR,s=(0, Te.intDiv)(r,o.NANOS_PER_SECOND)%o.SECONDS_PER_MINUTE,p=r%o.NANOS_PER_SECOND;return o.of(i,a,s,p)}minusNanos(e){return this.plusNanos(-e)}equals(e){return this===e?true:this.hour===e.hour&&this.minute===e.minute&&this.second===e.second&&this.nanos===e.nanos}isAfter(e){return this.compare(e)>0}isAfterOrEqual(e){return this.compare(e)>=0}isBefore(e){return this.compare(e)<0}isBeforeOrEqual(e){return this.compare(e)<=0}static isValid(e){try{o.parse(e);}catch{return false}return true}compare(e){return this.hour!==e.hour?this.hour-e.hour:this.minute!==e.minute?this.minute-e.minute:this.second!==e.second?this.second-e.second:this.nanos-e.nanos}toString(){let e=`${this.hour}`.padStart(2,"0"),t=`${this.minute}`.padStart(2,"0"),n=`${e}:${t}`;if(this.second===0&&this.nanos===0)return n;let r=`${this.second}`.padStart(2,"0");if(n+=`:${r}`,this.nanos>0){let i=`${this.nanos}`.padStart(9,"0").replace(/0+$/,""),a=Math.floor((i.length+2)/3)*3;n+=`.${i.padEnd(a,"0")}`;}return n}toJSON(){return this.toString()}};jn.LocalTime=K;K.PATTERN=/^(?<hour>\d{2}):(?<minute>\d{2})(?::(?<second>\d{2})(?:.(?<fraction>\d{1,9}))?)?$/;K.HOURS_PER_DAY=24;K.MINUTES_PER_DAY=1440;K.MINUTES_PER_HOUR=60;K.SECONDS_PER_DAY=86400;K.SECONDS_PER_HOUR=3600;K.SECONDS_PER_MINUTE=60;K.MICROS_PER_DAY=864e8;K.MICROS_PER_SECOND=1e6;K.MILLIS_PER_DAY=864e5;K.MILLIS_PER_SECOND=1e3;K.NANOS_PER_DAY=864e11;K.NANOS_PER_HOUR=36e11;K.NANOS_PER_MINUTE=6e10;K.NANOS_PER_SECOND=1e9;K.NANOS_PER_MILLI=1e6;K.NANOS_PER_MICRO=1e3;});var Ra=be(Un=>{Object.defineProperty(Un,"__esModule",{value:true});Un.LocalDateTime=void 0;var hs=Aa(),tl=Ht(),Vn=Fn(),A=Wn(),Z=Gt(),Ea=class o{constructor(e,t){this.date=e,this.time=t;}static nowIn(e,t=hs.DefaultClockProvider.getClock()){return o.ofInstant(t.getInstant(),e)}static now(e=hs.DefaultClockProvider.getClock()){return o.ofInstant(e.getInstant(),e.getZone())}static ofInstant(e,t){return o.fromZonedDate(e.toDate(),t)}static fromZonedDate(e,t){let i=e.toLocaleString("sv-SE",{timeZone:t.getId(),calendar:e.getUTCFullYear()<200?"gregory":"iso8601",hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3}).match(/(?<year>\d{1,4})-(?<month>\d{2})-(?<day>\d{2}) (?<hour>\d{2}):(?<minute>\d{2}):(?<second>\d{2}),(?<fraction>\d{3})/)?.groups;return o.of(Vn.LocalDate.of(Number.parseInt(i.year,10),Number.parseInt(i.month,10),Number.parseInt(i.day,10)),A.LocalTime.of(Number.parseInt(i.hour,10),Number.parseInt(i.minute,10),Number.parseInt(i.second,10),Number.parseInt(i.fraction.padEnd(9,"0"),10)))}static ofEpochSecond(e,t=0){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t))throw new Error("The timestamp must be a safe integer.");let n=(0, Z.floorDiv)(e,A.LocalTime.SECONDS_PER_DAY),r=(0, Z.floorMod)(e,A.LocalTime.SECONDS_PER_DAY),i=Vn.LocalDate.ofEpochDay(n),a=A.LocalTime.ofSecondOfDay(r,t);return o.of(i,a)}static fromNative(e){return o.of(Vn.LocalDate.fromNative(e),A.LocalTime.fromNative(e))}static of(e,t){return new o(e,t??A.LocalTime.startOfDay())}static parse(e){let t=e.split("T");if(t.length!==2)throw new Error(`Malformed local date-time "${e}".`);return o.of(Vn.LocalDate.parse(t[0]),A.LocalTime.parse(t[1]))}getLocalDate(){return this.date}getLocalTime(){return this.time}getDay(){return this.date.getDay()}getMonth(){return this.date.getMonth()}getYear(){return this.date.getYear()}getHour(){return this.time.getHour()}getMinute(){return this.time.getMinute()}getSecond(){return this.time.getSecond()}getNano(){return this.time.getNano()}plusYears(e){return o.of(this.date.plusYears(e),this.time)}minusYears(e){return this.plusYears(-e)}plusMonths(e){return o.of(this.date.plusMonths(e),this.time)}minusMonths(e){return this.plusMonths(-e)}plusWeeks(e){return o.of(this.date.plusWeeks(e),this.time)}minusWeeks(e){return this.plusWeeks(-e)}plusDays(e){return o.of(this.date.plusDays(e),this.time)}minusDays(e){return this.plusDays(-e)}plusHours(e){if(e===0)return this;let t=(0, Z.intDiv)(e,A.LocalTime.HOURS_PER_DAY),n=e%A.LocalTime.HOURS_PER_DAY,r=n*A.LocalTime.NANOS_PER_HOUR+this.time.toNanoOfDay(),i=t+(0, Z.floorDiv)(r,A.LocalTime.NANOS_PER_DAY);return o.of(this.date.plusDays(i),this.time.plusHours(n))}minusHours(e){return this.plusHours(-e)}plusMinutes(e){if(e===0)return this;let t=(0, Z.intDiv)(e,A.LocalTime.MINUTES_PER_DAY),n=e%A.LocalTime.MINUTES_PER_DAY,r=n*A.LocalTime.NANOS_PER_MINUTE+this.time.toNanoOfDay(),i=t+(0, Z.floorDiv)(r,A.LocalTime.NANOS_PER_DAY);return o.of(this.date.plusDays(i),this.time.plusMinutes(n))}minusMinutes(e){return this.plusMinutes(-e)}plusSeconds(e){if(e===0)return this;let t=(0, Z.intDiv)(e,A.LocalTime.SECONDS_PER_DAY),n=e%A.LocalTime.SECONDS_PER_DAY,r=n*A.LocalTime.NANOS_PER_SECOND+this.time.toNanoOfDay(),i=t+(0, Z.floorDiv)(r,A.LocalTime.NANOS_PER_DAY);return o.of(this.date.plusDays(i),this.time.plusSeconds(n))}minusSeconds(e){return this.plusSeconds(-e)}plusMillis(e){if(e===0)return this;let t=(0, Z.intDiv)(e,A.LocalTime.MILLIS_PER_DAY),n=e%A.LocalTime.MILLIS_PER_DAY,r=n*A.LocalTime.NANOS_PER_MILLI+this.time.toNanoOfDay(),i=t+(0, Z.floorDiv)(r,A.LocalTime.NANOS_PER_DAY);return o.of(this.date.plusDays(i),this.time.plusMillis(n))}minusMillis(e){return this.plusMillis(-e)}plusMicros(e){if(e===0)return this;let t=(0, Z.intDiv)(e,A.LocalTime.MICROS_PER_DAY),n=e%A.LocalTime.MICROS_PER_DAY,r=n*A.LocalTime.NANOS_PER_MICRO+this.time.toNanoOfDay(),i=t+(0, Z.floorDiv)(r,A.LocalTime.NANOS_PER_DAY);return o.of(this.date.plusDays(i),this.time.plusMicros(n))}minusMicros(e){return this.plusMicros(-e)}plusNanos(e){if(e===0)return this;let t=(0, Z.intDiv)(e,A.LocalTime.NANOS_PER_DAY),n=e%A.LocalTime.NANOS_PER_DAY,r=n+this.time.toNanoOfDay(),i=t+(0, Z.floorDiv)(r,A.LocalTime.NANOS_PER_DAY);return o.of(this.date.plusDays(i),this.time.plusNanos(n))}minusNanos(e){return this.plusNanos(-e)}equals(e){return this===e?true:this.date.equals(e.date)&&this.time.equals(e.time)}isAfter(e){return this.compare(e)>0}isAfterOrEqual(e){return this.compare(e)>=0}isBefore(e){return this.compare(e)<0}isBeforeOrEqual(e){return this.compare(e)<=0}static isValid(e){try{o.parse(e);}catch{return false}return true}compare(e){let t=this.date.compare(e.date);return t!==0?t:this.time.compare(e.time)}toInstant(e){let t=this.date.toEpochDay(),n=(0, Z.multiplyExact)(t,A.LocalTime.SECONDS_PER_DAY),r=(0, Z.subtractExact)((0, Z.addExact)(n,this.time.toSecondOfDay()),14*A.LocalTime.SECONDS_PER_HOUR),i=(0, Z.addExact)(r,26*A.LocalTime.SECONDS_PER_HOUR),a=o.of(this.date,A.LocalTime.of(this.time.getHour(),this.time.getMinute(),this.time.getSecond())),s=new Date(r*A.LocalTime.MILLIS_PER_SECOND),p=o.fromZonedDate(s,e),c=Math.min(o.getTimeZoneMultiple(s,e.getId()),o.getTimeZoneMultiple(new Date(i*A.LocalTime.MILLIS_PER_SECOND),e.getId()));for(;!p.equals(a)&&(s.setTime((0, Z.addExact)(s.getTime(),c*A.LocalTime.MILLIS_PER_SECOND)),p=o.fromZonedDate(s,e),!p.isAfter(a)););let l=(0, Z.intDiv)(s.getTime(),A.LocalTime.MILLIS_PER_SECOND),u=this.time.getNano();return tl.Instant.ofEpochSecond(l,u)}static getTimeZoneMultiple(e,t){let n=Math.abs(o.getTimeZoneOffset(e,t));return n%A.LocalTime.SECONDS_PER_HOUR===0?A.LocalTime.SECONDS_PER_HOUR:n%(A.LocalTime.SECONDS_PER_HOUR/2)===0?A.LocalTime.SECONDS_PER_HOUR/2:A.LocalTime.SECONDS_PER_HOUR/4}static getTimeZoneOffset(e,t){let r=new Intl.DateTimeFormat("sv-SE",{timeZone:t,calendar:"iso8601",timeZoneName:"short"}).format(e).match(/GMT([+-]\d+)(?::(\d+))?/),i=Number.parseInt(r?.[1]??"0",10),a=Number.parseInt(r?.[2]??"0",10);return i*A.LocalTime.SECONDS_PER_HOUR+a*A.LocalTime.SECONDS_PER_MINUTE}toString(){return `${this.date.toString()}T${this.time.toString()}`}toJSON(){return this.toString()}};Un.LocalDateTime=Ea;});var Ht=be(qn=>{Object.defineProperty(qn,"__esModule",{value:true});qn.Instant=void 0;var nl=Aa(),rl=Fn(),il=Ra(),j=Wn(),_=Gt(),me=class o{constructor(e,t){this.nanos=0,this.seconds=e,this.nanos=t;}static now(e=nl.DefaultClockProvider.getClock()){return e.getInstant()}static fromDate(e){return o.ofEpochMilli(e.getTime())}static ofEpochMilli(e){if(!Number.isSafeInteger(e))throw new Error("The timestamp must be a safe integer.");let t=(0, _.floorDiv)(e,j.LocalTime.MILLIS_PER_SECOND),r=(0, _.floorMod)(e,j.LocalTime.MILLIS_PER_SECOND)*j.LocalTime.NANOS_PER_MILLI;return o.ofEpochSecond(t,r)}static ofEpochSecond(e,t=0){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t))throw new Error("The timestamp must be a safe integer.");if(e===0&&t===0)return o.EPOCH;if(e<o.MIN_SECOND||e>o.MAX_SECOND)throw new Error(`The value ${e} is out of the range [${o.MIN_SECOND} - ${o.MAX_SECOND}] of instant.`);let n=e,r=t;return t!==0&&(n=(0, _.addExact)(n,(0, _.floorDiv)(t,j.LocalTime.NANOS_PER_SECOND)),r=(0, _.floorMod)(t,j.LocalTime.NANOS_PER_SECOND)),new o(n,r)}static parse(e){let n=e.match(o.PATTERN)?.groups;if(n==null)throw new Error(`Unrecognized UTC ISO-8601 date-time string "${e}".`);let r=rl.LocalDate.of(Number.parseInt(n.year,10),Number.parseInt(n.month,10),Number.parseInt(n.day,10)).toEpochDay(),i=j.LocalTime.of(Number.parseInt(n.hour,10),Number.parseInt(n.minute??"0",10),Number.parseInt(n.second??"0",10),Number.parseInt(n.fraction?.padEnd(9,"0")??"0",10)).toNanoOfDay();return o.ofEpochSecond((0, _.multiplyExact)(r,j.LocalTime.SECONDS_PER_DAY),i)}static compareAscending(e,t){return e.compare(t)}static compareDescending(e,t){return t.compare(e)}getSeconds(){return this.seconds}getNano(){return this.nanos}toEpochMillis(){if(this.seconds<0&&this.nanos>0){let n=(0, _.multiplyExact)(this.seconds+1,j.LocalTime.MILLIS_PER_SECOND),r=(0, _.intDiv)(this.nanos,j.LocalTime.NANOS_PER_MILLI)-j.LocalTime.MILLIS_PER_SECOND;return (0, _.addExact)(n,r)}let e=(0, _.multiplyExact)(this.seconds,j.LocalTime.MILLIS_PER_SECOND),t=(0, _.intDiv)(this.nanos,j.LocalTime.NANOS_PER_MILLI);return (0, _.addExact)(e,t)}toDate(){return new Date(this.toEpochMillis())}toString(){let e=this.seconds%12622780800,t=il.LocalDateTime.ofEpochSecond(e,this.nanos),n=t.getYear()+(0, _.intDiv)(this.seconds,146097*86400)*400,r="";n<0?r="-":n>9999&&(r="+");let a=r+Math.abs(n).toString().padStart(4,"0")+t.toString().slice(4);return t.getSecond()===0&&t.getNano()===0&&(a+=":00"),a+="Z",a}toJSON(){return this.toString()}equals(e){return this.seconds===e.seconds&&this.nanos===e.nanos}plusDays(e){if(e===0)return this;let t=(0, _.multiplyExact)(e,j.LocalTime.SECONDS_PER_DAY);return this.plusSeconds(t)}minusDays(e){if(e===0)return this;let t=(0, _.multiplyExact)(e,j.LocalTime.SECONDS_PER_DAY);return this.minusSeconds(t)}plusHours(e){if(e===0)return this;let t=(0, _.multiplyExact)(e,j.LocalTime.SECONDS_PER_HOUR);return this.plusSeconds(t)}minusHours(e){if(e===0)return this;let t=(0, _.multiplyExact)(e,j.LocalTime.SECONDS_PER_HOUR);return this.minusSeconds(t)}plusMinutes(e){if(e===0)return this;let t=(0, _.multiplyExact)(e,j.LocalTime.SECONDS_PER_MINUTE);return this.plusSeconds(t)}minusMinutes(e){if(e===0)return this;let t=(0, _.multiplyExact)(e,j.LocalTime.SECONDS_PER_MINUTE);return this.minusSeconds(t)}plusSeconds(e){return e===0?this:o.ofEpochSecond((0, _.addExact)(this.seconds,e),this.nanos)}minusSeconds(e){return e===0?this:o.ofEpochSecond((0, _.subtractExact)(this.seconds,e),this.nanos)}plusMillis(e){if(e===0)return this;let t=(0, _.intDiv)(e,j.LocalTime.MILLIS_PER_SECOND),n=(0, _.addExact)(this.seconds,t),r=e%j.LocalTime.MILLIS_PER_SECOND,i=this.nanos+r*j.LocalTime.NANOS_PER_MILLI;return o.ofEpochSecond(n,i)}minusMillis(e){return this.plusMillis(-e)}plusMicros(e){if(e===0)return this;let t=(0, _.intDiv)(e,j.LocalTime.MICROS_PER_SECOND),n=(0, _.addExact)(this.seconds,t),r=e%j.LocalTime.MICROS_PER_SECOND,i=this.nanos+r*j.LocalTime.NANOS_PER_MICRO;return o.ofEpochSecond(n,i)}minusMicros(e){return this.plusMicros(-e)}plusNanos(e){if(e===0)return this;let t=(0, _.intDiv)(e,j.LocalTime.NANOS_PER_SECOND),n=(0, _.addExact)(this.seconds,t),r=e%j.LocalTime.NANOS_PER_SECOND,i=this.nanos+r;return o.ofEpochSecond(n,i)}minusNanos(e){return this.plusNanos(-e)}isAfter(e){return this.compare(e)>0}isAfterOrEqual(e){return this.compare(e)>=0}isBefore(e){return this.compare(e)<0}static isValid(e){try{o.parse(e);}catch{return false}return true}isBeforeOrEqual(e){return this.compare(e)<=0}compare(e){return this.seconds!==e.seconds?this.seconds-e.seconds:this.nanos-e.nanos}};qn.Instant=me;me.EPOCH=new me(0,0);me.MIN_SECOND=-31619087596800;me.MIN=new me(me.MIN_SECOND,0);me.MAX_SECOND=31494784780799;me.MAX=new me(me.MAX_SECOND,999999999);me.PATTERN=/^(?<year>[+-]?\d{4,19})-(?<month>\d{2})-(?<day>\d{2})T(?<hour>\d{2})(?::(?<minute>\d{2})(:(?<second>\d{2})(?:.(?<fraction>\d{1,9}))?)?)?Z$/;});var bs=be(Hn=>{Object.defineProperty(Hn,"__esModule",{value:true});Hn.Weekday=void 0;var Ss;(function(o){o.SUNDAY="SUNDAY",o.MONDAY="MONDAY",o.TUESDAY="TUESDAY",o.WEDNESDAY="WEDNESDAY",o.THURSDAY="THURSDAY",o.FRIDAY="FRIDAY",o.SATURDAY="SATURDAY";})(Ss||(Hn.Weekday=Ss={}));});var Is=be(Gn=>{Object.defineProperty(Gn,"__esModule",{value:true});Gn.TimeInterval=void 0;var ht=Ht(),Oa=class o{constructor(e,t){this.start=e,this.end=t;}static all(){return new o(ht.Instant.MIN,ht.Instant.MAX)}static between(e,t){if(t.isBefore(e))throw new Error("The end instant must be equal or after start instant.");return new o(e,t)}static parse(e){let t=e.split("/");if(t.length!==2||t[0]===""||t[1]==="")throw new Error(`Malformed time interval "${e}".`);return o.between(ht.Instant.parse(t[0]),ht.Instant.parse(t[1]))}static startingAt(e){return o.all().withStart(e)}static endingAt(e){return o.all().withEnd(e)}withStart(e){return o.between(e,this.end)}withEnd(e){return o.between(this.start,e)}getStart(){return this.start}getEnd(){return this.end}isEmpty(){return this.start.equals(this.end)}isUnboundedStart(){return this.start.equals(ht.Instant.MIN)}isUnboundedEnd(){return this.end.equals(ht.Instant.MAX)}encloses(e){return this.start.isBeforeOrEqual(e.start)&&this.end.isAfterOrEqual(e.end)}abuts(e){return this.start.equals(e.end)||this.end.equals(e.start)}isConnected(e){return this.equals(e)||this.start.isBeforeOrEqual(e.end)&&this.end.isAfterOrEqual(e.start)}overlaps(e){return this.equals(e)||this.start.isBefore(e.end)&&this.end.isAfter(e.start)}intersection(e){if(!this.isConnected(e))throw new Error("The intervals are not connected.");return this.start.isAfterOrEqual(e.start)&&this.end.isBefore(e.end)?this:e.start.isAfterOrEqual(this.start)&&e.end.isBeforeOrEqual(this.end)?e:o.between(this.start.isAfterOrEqual(e.start)?this.start:e.start,this.end.isBeforeOrEqual(e.end)?this.end:e.end)}union(e){if(!this.isConnected(e))throw new Error("The intervals are not connected.");return this.start.isAfterOrEqual(e.start)&&this.end.isBefore(e.end)?e:e.start.isAfterOrEqual(this.start)&&e.end.isBeforeOrEqual(this.end)?this:o.between(this.start.isAfterOrEqual(e.start)?e.start:this.start,this.end.isBeforeOrEqual(e.end)?e.end:this.end)}span(e){return o.between(this.start.isAfterOrEqual(e.start)?e.start:this.start,this.end.isBeforeOrEqual(e.end)?e.end:this.end)}isAfter(e){return this.start.isAfterOrEqual(e.end)&&!this.equals(e)}isBefore(e){return this.end.isBeforeOrEqual(e.start)&&!this.equals(e)}static isValid(e){try{o.parse(e);}catch{return false}return true}startsBefore(e){return this.start.isBefore(e)}startsAtOrBefore(e){return this.start.isBeforeOrEqual(e)}startsAfter(e){return this.start.isAfter(e)}startsAtOrAfter(e){return this.start.isAfterOrEqual(e)}endsBefore(e){return this.end.isBefore(e)}endsAtOrBefore(e){return this.end.isBeforeOrEqual(e)}endsAfter(e){return this.end.isAfter(e)}endsAtOrAfter(e){return this.end.isAfterOrEqual(e)}contains(e){return this.start.isBeforeOrEqual(e)&&this.end.isAfter(e)}equals(e){return e instanceof o&&this.start.equals(e.start)&&this.end.equals(e.end)}toString(){return `${this.start.toString()}/${this.end.toString()}`}toJSON(){return this.toString()}};Gn.TimeInterval=Oa;});var Kt=be(X=>{Object.defineProperty(X,"__esModule",{value:true});X.TimeInterval=X.TimeZone=X.LocalDateTime=X.LocalTime=X.LocalDate=X.Weekday=X.Instant=void 0;var ol=Ht();Object.defineProperty(X,"Instant",{enumerable:true,get:function(){return ol.Instant}});var al=bs();Object.defineProperty(X,"Weekday",{enumerable:true,get:function(){return al.Weekday}});var sl=Fn();Object.defineProperty(X,"LocalDate",{enumerable:true,get:function(){return sl.LocalDate}});var pl=Wn();Object.defineProperty(X,"LocalTime",{enumerable:true,get:function(){return pl.LocalTime}});var cl=Ra();Object.defineProperty(X,"LocalDateTime",{enumerable:true,get:function(){return cl.LocalDateTime}});var ll=Pa();Object.defineProperty(X,"TimeZone",{enumerable:true,get:function(){return ll.TimeZone}});var ul=Is();Object.defineProperty(X,"TimeInterval",{enumerable:true,get:function(){return ul.TimeInterval}});});var ms=yt(us()),{program:yd,createCommand:hd,createArgument:Sd,createOption:bd,CommanderError:Id,InvalidArgumentError:Fe,InvalidOptionArgumentError:xd,Command:ds,Argument:gs,Option:se,Help:vd}=ms.default;var ft=yt(Kt()),zc=yt(ka());var Kn=class{constructor(e){this.configuration=e;}prompt(e){return this.interact({type:e.type==="password"?"invisible":"text",message:e.message,initial:e.default,validate:e.validate})}select(e){let t=e.default!==void 0?e.options.findIndex(n=>n.value===e.default):-1;return this.interact({type:e.options.length>10?"autocomplete":"select",instructions:false,message:e.message,choices:e.options.map((n,r)=>({title:n.label,value:`${r}`,disabled:n.disabled})),initial:t===-1?void 0:t}).then(n=>e.options[Number.parseInt(n,10)].value)}selectMultiple(e){return this.interact({type:e.options.length>10?"autocompleteMultiselect":"multiselect",hint:"<space> to select. <a> to toggle all. <enter> to submit.",message:e.message,instructions:false,min:e.min,max:e.max,choices:e.options.map((t,n)=>({title:t.label,value:`${n}`,disabled:t.disabled,selected:t.selected}))}).then(t=>t.map(n=>e.options[Number.parseInt(n,10)].value))}confirm(e){return this.interact({type:"confirm",message:e.message,initial:e.default??false})}wait(e){let t={enter:"[enter]",space:"[space]"},n={[t.enter]:"",[t.space]:" "},r=`Press <${e.key}> to continue`,i=e.key!==void 0?n[e.key]??e.key:void 0,a=false;return this.interact({type:"invisible",message:e.message,validate:s=>i===void 0||s===i?true:r,onState:function(p){if(!a){if(p.value===""){this.error&&e.key!==t.enter&&this.bell();return}i===void 0||p.value===i?(a=true,this.submit()):(this.bell(),this.reset(),i!==void 0&&(this.error=true,this.errorMsg=r));}}})}async interact(e,t){this.configuration.onInteractionStart?.();let{output:n,onAbort:r}=this.configuration,i={name:"value",...e,stdin:this.configuration.input,stdout:this.configuration.output,onState:function(s){e.onState?.apply(this,[s]),s.aborted&&(n.write("\x1B[?25h"),n.write(`
4
4
  `),r());}};try{return await ml(i,t).then(a=>a.value)}finally{this.configuration.onInteractionEnd?.();}}};var nt=dl(),Zt={neutral:"cyan",info:"blue",error:"red",warning:"yellow",success:"green"},Sl={neutral:nt?"\u279C":">",info:nt?"\u2139":"i",error:nt?"\u2718":"\xD7",warning:nt?"\u26A0":"\u203C",success:nt?"\u2714":"\u221A"};function ee(o,e={}){let t=e.basic===true?o:bl(o);if(nt||(t=strip(t)),e.text!==void 0&&(t=rt[Zt[e.text]](t)),e.icon!==void 0){let{semantics:n,symbol:r}=e.icon;t=r!==void 0?`${rt[Zt[n]](r[nt?"unicode":"ascii"])} ${t}`:`${rt[Zt[n]](Sl[n])} ${t}`;}return t}function bl(o){return render(o,{fragment:e=>e.children.join(""),text:e=>e.content,bold:e=>rt.bold(e.children),italic:e=>rt.italic(e.children),strike:e=>rt.strikethrough(e.children),code:e=>rt.cyan(e.content),link:e=>fl(e.children,e.href,{fallback:(t,n)=>`${t} (${n})`}),image:e=>unescape(e.source),paragraph:e=>`${e.children.join("")}
5
5
 
@@ -1734,7 +1734,7 @@ ${n}`)}toString(){return this.code}static formatName(e,t=true){let n=e.replace(/
1734
1734
  `),this.wrapElement(c,t,r),g.jsxText(`
1735
1735
  `)]:[...p.slice(0,s),this.wrapElement(c,t,r),...p.slice(s)],{result:0,node:e}}return g.isJSXText(e)||g.isJSXExpressionContainer(e)||g.isJSXSpreadChild(e)||g.isJSXElement(e)||g.isJSXFragment(e)?{result:0,node:this.wrapElement(e,t,r)}:{result:1,node:e}}wrapElement(e,t,n){return e.extra?.parenthesized===true&&(e.extra.parenthesized=false),g.jsxElement(g.jsxOpeningElement(g.jsxIdentifier(t??this.configuration.wrapper.component),this.getProviderProps(n)),g.jsxClosingElement(g.jsxIdentifier(t??this.configuration.wrapper.component)),[g.jsxText(`
1736
1736
  `),e,g.jsxText(`
1737
- `)])}getProviderProps(e){return hr({...this.configuration.wrapper.props,...e?.props})}containsElement(e,t){let n=false;return traverseFast(e,r=>{!n&&g.isJSXOpeningElement(r)&&g.isJSXIdentifier(r.name)&&r.name.name===t&&(n=true);}),n}findComponentDeclaration(e,t){let n=null;return traverse(e,{VariableDeclaration:r=>{if(!g.isProgram(r.parent))return r.skip();for(let i of r.node.declarations)if(g.isVariableDeclarator(i)&&g.isIdentifier(i.id)&&i.id.name===t)return n=i,r.stop();return r.skip()},FunctionDeclaration:r=>{if(!g.isProgram(r.parent))return r.skip();let{id:i}=r.node;return g.isIdentifier(i)&&i.name===t?(n=r.node,r.stop()):r.skip()}}),n}findTargetChildren(e,t){let n=null,{configuration:r}=this;return r.targets?.variable===void 0&&r.targets?.component===void 0?null:(traverse(e,{enter:function(a){let{node:s}=a;if(s===t)return a.traverse({JSXExpressionContainer:p=>{let{expression:c}=p.node;if(r.targets?.variable!==void 0&&g.isIdentifier(c)&&c.name===r.targets.variable){let l=p.parent;return n={parent:l,index:l.children.indexOf(p.node)},p.stop()}},JSXElement:p=>{let{openingElement:c}=p.node;if(r.targets?.component!==void 0&&g.isJSXOpeningElement(c)&&g.isJSXIdentifier(c.name)&&c.name.name===r.targets.component&&p.parent!==null){let l=p.parent;n={parent:l,index:l.children.indexOf(p.node)};}}}),a.stop()}}),n)}static findReturnStatement(e){let t=null;return traverseFast(e,n=>{t===null&&g.isReturnStatement(n)&&(t=n);}),t}};var We=class{constructor(e){this.codemod=e.codemod;}async apply(e,t){let n=Sr.parse(e,{parser:{parse:parse}}),r=await this.codemod.apply(n,t);return r.modified?{modified:true,result:Sr.print(r.result,{reuseWhitespace:false}).code}:{modified:false,result:e}}};function Va(o,e){let t=typeof o=="string"?Je(o,["jsx","typescript"]):o,n=false;return traverse(t,{ExportAllDeclaration:r=>{let{node:i}=r;return !g.isStringLiteral(i.source)||!Wa(i.source,e.moduleName)||(n=true),r.skip()},ExportNamedDeclaration:r=>{let{node:i}=r;if(!g.isStringLiteral(i.source)||!Wa(i.source,e.moduleName))return r.skip();if(e.importName===void 0)return n=true,r.skip();for(let a of i.specifiers)if(g.isExportSpecifier(a)&&Wa(a.local,e.importName))return n=true,r.skip();return r.skip()}}),n}function Wa(o,e){let t=g.isIdentifier(o)?o.name:o.value;return typeof e=="string"?t===e:e.test(t)}function br(o,e){let t=[],n=false,r=false;if(traverse(o,{ExportAllDeclaration:s=>{let{node:p}=s;if(p.source.value!==e.moduleName)return s.skip();let c=p.exportKind??"value";if(e.exportName===void 0&&e.importName===void 0){if(c==="value"||c==="type"&&e.type==="type")return n=true,s.stop();if(c==="type"&&e.type==="value")return p.exportKind="value",n=true,r=true,s.stop()}else if((e.exportName===void 0||e.exportName===e.importName)&&(c==="value"||c==="type"&&e.type==="type"))return n=true,s.stop();return s.skip()},ExportNamedDeclaration:s=>{let{node:p}=s,c=p.source??null;if(c===null||c.value!==e.moduleName)return s.skip();t.push({declaration:p});let l=p.exportKind??"value";for(let u of p.specifiers){if(g.isExportNamespaceSpecifier(u)&&e.importName===void 0&&u.exported.name===e.exportName)return n=true,e.type==="value"&&l==="type"&&(p.exportKind="value",r=true),s.stop();if(e.importName===void 0||!g.isExportSpecifier(u)||Ua(u.local)!==e.importName||e.exportName!==void 0&&Ua(u.exported)!==e.exportName)continue;let f=u.exportKind??"value";if(l===e.type||l==="value"&&(f==="value"||u.exportKind===e.type))return n=true,s.stop();t.unshift({declaration:p,specifier:u});}return s.skip()}}),n)return r;let{body:i}=o.program;if(e.importName===void 0){if(e.exportName===void 0)for(let p of t){let{declaration:c}=p,l=c.exportKind??"value",u=c.specifiers.filter(f=>!g.isExportSpecifier(f)||f.local.name!==Ua(f.exported)||e.type==="type"&&l!=="type"&&f.exportKind!=="type");u.length===0?i.splice(i.indexOf(c),1):c.specifiers=u;}let s=e.exportName===void 0?g.exportAllDeclaration(g.stringLiteral(e.moduleName)):g.exportNamedDeclaration(null,[g.exportNamespaceSpecifier(g.identifier(e.exportName))],g.stringLiteral(e.moduleName));return e.type==="type"&&(s.exportKind="type"),i.push(s),true}for(let s of t){let{declaration:p}=s;if(p.exportKind==="type"&&e.type==="value"){p.exportKind="value";for(let c of p.specifiers)g.isExportSpecifier(c)&&c!==s.specifier&&(c.exportKind="type");return s.specifier===void 0&&p.specifiers.push(g.exportSpecifier(g.identifier(e.importName),g.identifier(e.exportName??e.importName))),true}}for(let{declaration:s}of t){let p=s.exportKind??"value";if(p==="value"||p===e.type){let c=g.exportSpecifier(g.identifier(e.importName),g.identifier(e.exportName??e.importName));return p!==e.type&&(c.exportKind="type"),s.specifiers.push(c),true}}let a=g.exportNamedDeclaration(null,[g.exportSpecifier(g.identifier(e.importName),g.identifier(e.exportName??e.importName))],g.stringLiteral(e.moduleName));return e.type==="type"&&(a.exportKind="type"),i.push(a),true}function Ua(o){return g.isIdentifier(o)?o.name:o.value}var Ir=class o{constructor(e){this.configuration=e;}apply(e){let{body:t}=e.program,n=Va(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.configName}),r=Va(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareName}),i=n?null:o.findConfig(e);if(r){if(n||i!==null)return Promise.resolve({modified:false,result:e});let u=br(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.configName});return Promise.resolve({modified:u,result:e})}let a=kt(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareFactoryName}),s=kt(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareName}),p=[];if(a!==null&&p.push(a),s!==null&&p.push(s),p.length>0&&o.isCalled(e,p))return Promise.resolve({modified:false,result:e});let c=i===null?null:kt(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.matcherName}),l=o.refactorMiddleware(e,a??this.configuration.import.middlewareFactoryName,i!==null&&i.matcher?i.name:void 0);if(l===null){if(i===null){let u=br(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareName}),f=br(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.configName});return Promise.resolve({modified:u||f,result:e})}l=g.exportDefaultDeclaration(g.callExpression(g.identifier(a??this.configuration.import.middlewareFactoryName),[g.objectExpression([g.objectProperty(g.identifier("matcher"),g.memberExpression(g.identifier(i.name),g.identifier(c??this.configuration.import.matcherName)))])])),t.push(l);}if(i!==null){this.configureMatcher(i.object,c??this.configuration.import.matcherLocalName);let u=t.indexOf(i.root),f=t.indexOf(l);if(u>f){t.splice(f,0,...t.splice(u,1));for(let y of o.findReferencesFrom(i.root,e.program)){let k=t.indexOf(y);k>f&&t.splice(f,0,...t.splice(k,1));}}}return a===null&&fe(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareFactoryName}),i?.matcher===true&&c===null&&fe(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.matcherName,localName:this.configuration.import.matcherLocalName}),Promise.resolve({modified:true,result:e})}configureMatcher(e,t){let n=false;for(let r of e.properties)if(g.isObjectProperty(r)&&g.isIdentifier(r.key)&&r.key.name==="matcher"){if(g.isStringLiteral(r.value)){r.value=g.arrayExpression([r.value,g.identifier(t)]),n=true;break}if(g.isArrayExpression(r.value)){let{elements:i}=r.value;i.some(a=>g.isIdentifier(a)&&a.name===t)||(i.push(g.identifier(t)),n=true);break}if(g.isIdentifier(r.value)){if(r.value.name===t)break;r.value=g.arrayExpression([g.spreadElement(g.conditionalExpression(g.callExpression(g.memberExpression(g.identifier("Array"),g.identifier("isArray")),[r.value]),r.value,g.arrayExpression([r.value]))),g.identifier(t)]),n=true;}}return n}static refactorMiddleware(e,t,n){let r=null;return traverse(e,{ExportNamedDeclaration:i=>{let{node:a}=i,{declaration:s,specifiers:p=[]}=a;if(g.isFunctionDeclaration(s))return g.isFunctionDeclaration(a.declaration)&&g.isIdentifier(a.declaration.id)&&a.declaration.id.name==="middleware"?(i.replaceWith(g.exportNamedDeclaration(g.variableDeclaration("const",[g.variableDeclarator(g.identifier("middleware"),o.wrapMiddleware(g.isFunctionDeclaration(a.declaration)?o.createFunctionExpression(a.declaration):a.declaration,t,n))]),[])),r=o.getRootNode(i),i.stop()):i.skip();if(g.isVariableDeclaration(s)){for(let c of s.declarations)if(g.isVariableDeclarator(c)&&g.isIdentifier(c.id)&&c.id.name==="middleware"){let l=c.init??null;if(l!==null)return c.init=o.wrapMiddleware(l,t,n),r=o.getRootNode(i),i.stop()}}for(let c of p)if(g.isExportSpecifier(c)&&g.isIdentifier(c.exported)&&g.isIdentifier(c.local)&&["middleware","default"].includes(c.exported.name))return r=o.replaceMiddlewareDeclaration(e,c.local.name,t,n),i.stop();return i.skip()},ExportDefaultDeclaration:i=>{let{node:a}=i,{declaration:s}=a;return g.isArrowFunctionExpression(s)?(i.replaceWith(g.exportDefaultDeclaration(o.wrapMiddleware(s,t,n))),r=o.getRootNode(i),i.stop()):g.isFunctionDeclaration(s)?(i.replaceWith(g.exportDefaultDeclaration(o.wrapMiddleware(o.createFunctionExpression(s,true),t,n))),r=o.getRootNode(i),i.stop()):g.isIdentifier(s)?(r=o.replaceMiddlewareDeclaration(e,s.name,t,n),i.stop()):i.skip()}}),r}static replaceMiddlewareDeclaration(e,t,n,r){let i=null;return traverse(e,{VariableDeclarator:a=>{let{node:s}=a;if(g.isIdentifier(s.id)&&s.id.name===t){let p=s.init??null;return p!==null&&(s.init=o.wrapMiddleware(p,n,r),i=o.getRootNode(a)),a.stop()}return a.skip()},FunctionDeclaration:a=>{let{node:s}=a;return g.isIdentifier(s.id)&&s.id.name===t?(a.replaceWith(o.wrapFunctionDeclaration(s,n,r,g.isIdentifier(s.id)?s.id.name:void 0)),i=o.getRootNode(a),a.stop()):a.skip()}}),i}static isCalled(e,t){let n=false;return traverse(e,{CallExpression:r=>{let{node:i}=r;return g.isIdentifier(i.callee)&&t.includes(i.callee.name)?(n=true,r.stop()):r.skip()}}),n}static findConfig(e){let t=null;return traverse(e,{ExportNamedDeclaration:n=>{let{declaration:r,specifiers:i=[]}=n.node;if(g.isVariableDeclaration(r)){for(let a of r.declarations)if(g.isVariableDeclarator(a)&&g.isIdentifier(a.id)&&a.id.name==="config"){let s=g.isIdentifier(a.init)?o.findVariableDeclarator(e,a.init.name):{name:"config",root:o.getRootNode(n),declaration:a};if(s===null||s.declaration.init===null)return n.stop();if(g.isObjectExpression(s.declaration.init))return t={name:s.name,root:s.root,object:s.declaration.init,matcher:o.hasMatcherProperty(s.declaration.init)},n.stop()}}for(let a of i)if(g.isExportSpecifier(a)&&g.isIdentifier(a.exported)&&g.isIdentifier(a.local)&&a.exported.name==="config"){let s=o.findVariableDeclarator(e,a.local.name);return s!==null&&g.isObjectExpression(s.declaration.init)&&(t={name:s.name,root:s.root,object:s.declaration.init,matcher:o.hasMatcherProperty(s.declaration.init)}),n.stop()}return n.skip()}}),t}static hasMatcherProperty(e){for(let t of e.properties)if(g.isObjectProperty(t)&&g.isIdentifier(t.key)&&t.key.name==="matcher")return true;return false}static findVariableDeclarator(e,t){let n=null;return traverse(e,{VariableDeclarator:r=>{if(!g.isProgram(r.parentPath.parent))return r.skip();let{node:i}=r;return g.isVariableDeclarator(i)&&g.isIdentifier(i.id)&&i.id.name===t?(g.isIdentifier(i.init)?n=o.findVariableDeclarator(e,i.init.name):n={name:t,root:o.getRootNode(r),declaration:i},r.stop()):r.skip()}}),n}static wrapMiddleware(e,t,n){return g.callExpression(g.identifier(t),[n!==void 0?g.objectExpression([g.objectProperty(g.identifier("matcher"),g.memberExpression(g.identifier(n),g.identifier("matcher"))),g.objectProperty(g.identifier("next"),e)]):e])}static wrapFunctionDeclaration(e,t,n,r="middleware"){return g.variableDeclaration("const",[g.variableDeclarator(g.identifier(r),o.wrapMiddleware(o.createFunctionExpression(e),t,n))])}static findReferencesFrom(e,t){let n=new Set;traverse(t,{enter:i=>{let{node:a}=i;if(a===e)return i.traverse({Identifier:function(p){let c=p.node;return o.isVariableReference(p.parent,c)&&n.add(c.name),p.skip()}}),i.stop()}});let r=[];return traverse(t,{VariableDeclarator:i=>{if(!g.isProgram(i.parentPath.parent))return i.skip();let{node:a}=i;return g.isIdentifier(a.id)&&n.has(a.id.name)&&r.push(o.getRootNode(i)),i.skip()},FunctionDeclaration:i=>{if(!g.isProgram(i.parent))return;let{node:a}=i;return g.isIdentifier(a.id)&&n.has(a.id.name)&&r.push(o.getRootNode(i)),i.skip()},ClassDeclaration:i=>{if(!g.isProgram(i.parent))return;let{node:a}=i;return g.isIdentifier(a.id)&&n.has(a.id.name)&&r.push(o.getRootNode(i)),i.skip()}}),[...new Set(r.flatMap(i=>[i,...o.findReferencesFrom(i,t)]))]}static isVariableReference(e,t){return g.isVariableDeclarator(e)?e.init===t:g.isClassProperty(e)||g.isObjectProperty(e)||g.isProperty(e)?e.value===t:g.isMemberExpression(e)?e.object===t:g.isCallExpression(e)||g.isNewExpression(e)?e.callee===t:g.isExpression(e)}static createFunctionExpression(e,t=false){return g.functionExpression(t?e.id:null,e.params,e.body,e.generator,e.async)}static getRootNode(e){let t=e;for(;t.parentPath!==null&&!g.isProgram(t.parent);)t=t.parentPath;return t.node}};var Ve=class{constructor(e,t){this.codemod=t,this.formatter=e;}async apply(e,t){if(this.codemod===void 0)return await this.formatter.format([e]),{modified:true,result:e};let n=await this.codemod.apply(e,t);return n.modified&&await this.formatter.format([e]),n}};var Ue=class{constructor({fileSystem:e,codemod:t}){this.fileSystem=e,this.codemod=t;}async apply(e,t){let n="";if(await this.fileSystem.exists(e))try{n=await this.fileSystem.readTextFile(e);}catch(i){throw new Ze("Failed to read file.",{cause:i,details:[`File: file://${e.replace(/\\/g,"/")}`]})}let r=await this.codemod.apply(n,t);if(r.modified)try{await this.fileSystem.writeTextFile(e,r.result,{overwrite:!0});}catch(i){throw new Ze("Failed to write file",{cause:i,details:[`File: file://${e.replace(/\\/g,"/")}`]})}return {modified:r.modified,result:e}}};var xr=class{constructor(e){this.configuration=e;}apply(e,t={}){let n=t.typescript??false,{body:r}=e.program,i=fe(e,{type:"value",moduleName:this.configuration.provider.module,importName:this.configuration.provider.component}),a=n?fe(e,{type:"type",moduleName:"react",importName:"PropsWithChildren"}):null,s=n?fe(e,{type:"type",moduleName:"react",importName:"ReactNode"}):null,p=g.objectPattern([g.objectProperty(g.identifier("children"),g.identifier("children"))]);a!==null&&(p.typeAnnotation=g.tsTypeAnnotation(g.tsTypeReference(g.identifier(a.localName))));let c=g.functionDeclaration(g.identifier("RootLayout"),[p],g.blockStatement([g.returnStatement(g.parenthesizedExpression(g.jsxElement(g.jsxOpeningElement(g.jsxIdentifier("html"),[g.jsxAttribute(g.jsxIdentifier("lang"),g.stringLiteral("en"))]),g.jsxClosingElement(g.jsxIdentifier("html")),[g.jsxText(`
1737
+ `)])}getProviderProps(e){return hr({...this.configuration.wrapper.props,...e?.props})}containsElement(e,t){let n=false;return traverseFast(e,r=>{!n&&g.isJSXOpeningElement(r)&&g.isJSXIdentifier(r.name)&&r.name.name===t&&(n=true);}),n}findComponentDeclaration(e,t){let n=null;return traverse(e,{VariableDeclaration:r=>{if(!g.isProgram(r.parent))return r.skip();for(let i of r.node.declarations)if(g.isVariableDeclarator(i)&&g.isIdentifier(i.id)&&i.id.name===t)return n=i,r.stop();return r.skip()},FunctionDeclaration:r=>{if(!g.isProgram(r.parent))return r.skip();let{id:i}=r.node;return g.isIdentifier(i)&&i.name===t?(n=r.node,r.stop()):r.skip()}}),n}findTargetChildren(e,t){let n=null,{configuration:r}=this;return r.targets?.variable===void 0&&r.targets?.component===void 0?null:(traverse(e,{enter:function(a){let{node:s}=a;if(s===t)return a.traverse({JSXExpressionContainer:p=>{let{expression:c}=p.node;if(r.targets?.variable!==void 0&&g.isIdentifier(c)&&c.name===r.targets.variable){let l=p.parent;return n={parent:l,index:l.children.indexOf(p.node)},p.stop()}},JSXElement:p=>{let{openingElement:c}=p.node;if(r.targets?.component!==void 0&&g.isJSXOpeningElement(c)&&g.isJSXIdentifier(c.name)&&c.name.name===r.targets.component&&p.parent!==null){let l=p.parent;n={parent:l,index:l.children.indexOf(p.node)};}}}),a.stop()}}),n)}static findReturnStatement(e){let t=null;return traverseFast(e,n=>{t===null&&g.isReturnStatement(n)&&(t=n);}),t}};var We=class{constructor(e){this.codemod=e.codemod;}async apply(e,t){let n=Sr.parse(e,{parser:{parse:parse$1}}),r=await this.codemod.apply(n,t);return r.modified?{modified:true,result:Sr.print(r.result,{reuseWhitespace:false}).code}:{modified:false,result:e}}};function Va(o,e){let t=typeof o=="string"?Je(o,["jsx","typescript"]):o,n=false;return traverse(t,{ExportAllDeclaration:r=>{let{node:i}=r;return !g.isStringLiteral(i.source)||!Wa(i.source,e.moduleName)||(n=true),r.skip()},ExportNamedDeclaration:r=>{let{node:i}=r;if(!g.isStringLiteral(i.source)||!Wa(i.source,e.moduleName))return r.skip();if(e.importName===void 0)return n=true,r.skip();for(let a of i.specifiers)if(g.isExportSpecifier(a)&&Wa(a.local,e.importName))return n=true,r.skip();return r.skip()}}),n}function Wa(o,e){let t=g.isIdentifier(o)?o.name:o.value;return typeof e=="string"?t===e:e.test(t)}function br(o,e){let t=[],n=false,r=false;if(traverse(o,{ExportAllDeclaration:s=>{let{node:p}=s;if(p.source.value!==e.moduleName)return s.skip();let c=p.exportKind??"value";if(e.exportName===void 0&&e.importName===void 0){if(c==="value"||c==="type"&&e.type==="type")return n=true,s.stop();if(c==="type"&&e.type==="value")return p.exportKind="value",n=true,r=true,s.stop()}else if((e.exportName===void 0||e.exportName===e.importName)&&(c==="value"||c==="type"&&e.type==="type"))return n=true,s.stop();return s.skip()},ExportNamedDeclaration:s=>{let{node:p}=s,c=p.source??null;if(c===null||c.value!==e.moduleName)return s.skip();t.push({declaration:p});let l=p.exportKind??"value";for(let u of p.specifiers){if(g.isExportNamespaceSpecifier(u)&&e.importName===void 0&&u.exported.name===e.exportName)return n=true,e.type==="value"&&l==="type"&&(p.exportKind="value",r=true),s.stop();if(e.importName===void 0||!g.isExportSpecifier(u)||Ua(u.local)!==e.importName||e.exportName!==void 0&&Ua(u.exported)!==e.exportName)continue;let f=u.exportKind??"value";if(l===e.type||l==="value"&&(f==="value"||u.exportKind===e.type))return n=true,s.stop();t.unshift({declaration:p,specifier:u});}return s.skip()}}),n)return r;let{body:i}=o.program;if(e.importName===void 0){if(e.exportName===void 0)for(let p of t){let{declaration:c}=p,l=c.exportKind??"value",u=c.specifiers.filter(f=>!g.isExportSpecifier(f)||f.local.name!==Ua(f.exported)||e.type==="type"&&l!=="type"&&f.exportKind!=="type");u.length===0?i.splice(i.indexOf(c),1):c.specifiers=u;}let s=e.exportName===void 0?g.exportAllDeclaration(g.stringLiteral(e.moduleName)):g.exportNamedDeclaration(null,[g.exportNamespaceSpecifier(g.identifier(e.exportName))],g.stringLiteral(e.moduleName));return e.type==="type"&&(s.exportKind="type"),i.push(s),true}for(let s of t){let{declaration:p}=s;if(p.exportKind==="type"&&e.type==="value"){p.exportKind="value";for(let c of p.specifiers)g.isExportSpecifier(c)&&c!==s.specifier&&(c.exportKind="type");return s.specifier===void 0&&p.specifiers.push(g.exportSpecifier(g.identifier(e.importName),g.identifier(e.exportName??e.importName))),true}}for(let{declaration:s}of t){let p=s.exportKind??"value";if(p==="value"||p===e.type){let c=g.exportSpecifier(g.identifier(e.importName),g.identifier(e.exportName??e.importName));return p!==e.type&&(c.exportKind="type"),s.specifiers.push(c),true}}let a=g.exportNamedDeclaration(null,[g.exportSpecifier(g.identifier(e.importName),g.identifier(e.exportName??e.importName))],g.stringLiteral(e.moduleName));return e.type==="type"&&(a.exportKind="type"),i.push(a),true}function Ua(o){return g.isIdentifier(o)?o.name:o.value}var Ir=class o{constructor(e){this.configuration=e;}apply(e){let{body:t}=e.program,n=Va(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.configName}),r=Va(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareName}),i=n?null:o.findConfig(e);if(r){if(n||i!==null)return Promise.resolve({modified:false,result:e});let u=br(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.configName});return Promise.resolve({modified:u,result:e})}let a=kt(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareFactoryName}),s=kt(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareName}),p=[];if(a!==null&&p.push(a),s!==null&&p.push(s),p.length>0&&o.isCalled(e,p))return Promise.resolve({modified:false,result:e});let c=i===null?null:kt(e,{moduleName:this.configuration.import.module,importName:this.configuration.import.matcherName}),l=o.refactorMiddleware(e,a??this.configuration.import.middlewareFactoryName,i!==null&&i.matcher?i.name:void 0);if(l===null){if(i===null){let u=br(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareName}),f=br(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.configName});return Promise.resolve({modified:u||f,result:e})}l=g.exportDefaultDeclaration(g.callExpression(g.identifier(a??this.configuration.import.middlewareFactoryName),[g.objectExpression([g.objectProperty(g.identifier("matcher"),g.memberExpression(g.identifier(i.name),g.identifier(c??this.configuration.import.matcherName)))])])),t.push(l);}if(i!==null){this.configureMatcher(i.object,c??this.configuration.import.matcherLocalName);let u=t.indexOf(i.root),f=t.indexOf(l);if(u>f){t.splice(f,0,...t.splice(u,1));for(let y of o.findReferencesFrom(i.root,e.program)){let k=t.indexOf(y);k>f&&t.splice(f,0,...t.splice(k,1));}}}return a===null&&fe(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.middlewareFactoryName}),i?.matcher===true&&c===null&&fe(e,{type:"value",moduleName:this.configuration.import.module,importName:this.configuration.import.matcherName,localName:this.configuration.import.matcherLocalName}),Promise.resolve({modified:true,result:e})}configureMatcher(e,t){let n=false;for(let r of e.properties)if(g.isObjectProperty(r)&&g.isIdentifier(r.key)&&r.key.name==="matcher"){if(g.isStringLiteral(r.value)){r.value=g.arrayExpression([r.value,g.identifier(t)]),n=true;break}if(g.isArrayExpression(r.value)){let{elements:i}=r.value;i.some(a=>g.isIdentifier(a)&&a.name===t)||(i.push(g.identifier(t)),n=true);break}if(g.isIdentifier(r.value)){if(r.value.name===t)break;r.value=g.arrayExpression([g.spreadElement(g.conditionalExpression(g.callExpression(g.memberExpression(g.identifier("Array"),g.identifier("isArray")),[r.value]),r.value,g.arrayExpression([r.value]))),g.identifier(t)]),n=true;}}return n}static refactorMiddleware(e,t,n){let r=null;return traverse(e,{ExportNamedDeclaration:i=>{let{node:a}=i,{declaration:s,specifiers:p=[]}=a;if(g.isFunctionDeclaration(s))return g.isFunctionDeclaration(a.declaration)&&g.isIdentifier(a.declaration.id)&&a.declaration.id.name==="middleware"?(i.replaceWith(g.exportNamedDeclaration(g.variableDeclaration("const",[g.variableDeclarator(g.identifier("middleware"),o.wrapMiddleware(g.isFunctionDeclaration(a.declaration)?o.createFunctionExpression(a.declaration):a.declaration,t,n))]),[])),r=o.getRootNode(i),i.stop()):i.skip();if(g.isVariableDeclaration(s)){for(let c of s.declarations)if(g.isVariableDeclarator(c)&&g.isIdentifier(c.id)&&c.id.name==="middleware"){let l=c.init??null;if(l!==null)return c.init=o.wrapMiddleware(l,t,n),r=o.getRootNode(i),i.stop()}}for(let c of p)if(g.isExportSpecifier(c)&&g.isIdentifier(c.exported)&&g.isIdentifier(c.local)&&["middleware","default"].includes(c.exported.name))return r=o.replaceMiddlewareDeclaration(e,c.local.name,t,n),i.stop();return i.skip()},ExportDefaultDeclaration:i=>{let{node:a}=i,{declaration:s}=a;return g.isArrowFunctionExpression(s)?(i.replaceWith(g.exportDefaultDeclaration(o.wrapMiddleware(s,t,n))),r=o.getRootNode(i),i.stop()):g.isFunctionDeclaration(s)?(i.replaceWith(g.exportDefaultDeclaration(o.wrapMiddleware(o.createFunctionExpression(s,true),t,n))),r=o.getRootNode(i),i.stop()):g.isIdentifier(s)?(r=o.replaceMiddlewareDeclaration(e,s.name,t,n),i.stop()):i.skip()}}),r}static replaceMiddlewareDeclaration(e,t,n,r){let i=null;return traverse(e,{VariableDeclarator:a=>{let{node:s}=a;if(g.isIdentifier(s.id)&&s.id.name===t){let p=s.init??null;return p!==null&&(s.init=o.wrapMiddleware(p,n,r),i=o.getRootNode(a)),a.stop()}return a.skip()},FunctionDeclaration:a=>{let{node:s}=a;return g.isIdentifier(s.id)&&s.id.name===t?(a.replaceWith(o.wrapFunctionDeclaration(s,n,r,g.isIdentifier(s.id)?s.id.name:void 0)),i=o.getRootNode(a),a.stop()):a.skip()}}),i}static isCalled(e,t){let n=false;return traverse(e,{CallExpression:r=>{let{node:i}=r;return g.isIdentifier(i.callee)&&t.includes(i.callee.name)?(n=true,r.stop()):r.skip()}}),n}static findConfig(e){let t=null;return traverse(e,{ExportNamedDeclaration:n=>{let{declaration:r,specifiers:i=[]}=n.node;if(g.isVariableDeclaration(r)){for(let a of r.declarations)if(g.isVariableDeclarator(a)&&g.isIdentifier(a.id)&&a.id.name==="config"){let s=g.isIdentifier(a.init)?o.findVariableDeclarator(e,a.init.name):{name:"config",root:o.getRootNode(n),declaration:a};if(s===null||s.declaration.init===null)return n.stop();if(g.isObjectExpression(s.declaration.init))return t={name:s.name,root:s.root,object:s.declaration.init,matcher:o.hasMatcherProperty(s.declaration.init)},n.stop()}}for(let a of i)if(g.isExportSpecifier(a)&&g.isIdentifier(a.exported)&&g.isIdentifier(a.local)&&a.exported.name==="config"){let s=o.findVariableDeclarator(e,a.local.name);return s!==null&&g.isObjectExpression(s.declaration.init)&&(t={name:s.name,root:s.root,object:s.declaration.init,matcher:o.hasMatcherProperty(s.declaration.init)}),n.stop()}return n.skip()}}),t}static hasMatcherProperty(e){for(let t of e.properties)if(g.isObjectProperty(t)&&g.isIdentifier(t.key)&&t.key.name==="matcher")return true;return false}static findVariableDeclarator(e,t){let n=null;return traverse(e,{VariableDeclarator:r=>{if(!g.isProgram(r.parentPath.parent))return r.skip();let{node:i}=r;return g.isVariableDeclarator(i)&&g.isIdentifier(i.id)&&i.id.name===t?(g.isIdentifier(i.init)?n=o.findVariableDeclarator(e,i.init.name):n={name:t,root:o.getRootNode(r),declaration:i},r.stop()):r.skip()}}),n}static wrapMiddleware(e,t,n){return g.callExpression(g.identifier(t),[n!==void 0?g.objectExpression([g.objectProperty(g.identifier("matcher"),g.memberExpression(g.identifier(n),g.identifier("matcher"))),g.objectProperty(g.identifier("next"),e)]):e])}static wrapFunctionDeclaration(e,t,n,r="middleware"){return g.variableDeclaration("const",[g.variableDeclarator(g.identifier(r),o.wrapMiddleware(o.createFunctionExpression(e),t,n))])}static findReferencesFrom(e,t){let n=new Set;traverse(t,{enter:i=>{let{node:a}=i;if(a===e)return i.traverse({Identifier:function(p){let c=p.node;return o.isVariableReference(p.parent,c)&&n.add(c.name),p.skip()}}),i.stop()}});let r=[];return traverse(t,{VariableDeclarator:i=>{if(!g.isProgram(i.parentPath.parent))return i.skip();let{node:a}=i;return g.isIdentifier(a.id)&&n.has(a.id.name)&&r.push(o.getRootNode(i)),i.skip()},FunctionDeclaration:i=>{if(!g.isProgram(i.parent))return;let{node:a}=i;return g.isIdentifier(a.id)&&n.has(a.id.name)&&r.push(o.getRootNode(i)),i.skip()},ClassDeclaration:i=>{if(!g.isProgram(i.parent))return;let{node:a}=i;return g.isIdentifier(a.id)&&n.has(a.id.name)&&r.push(o.getRootNode(i)),i.skip()}}),[...new Set(r.flatMap(i=>[i,...o.findReferencesFrom(i,t)]))]}static isVariableReference(e,t){return g.isVariableDeclarator(e)?e.init===t:g.isClassProperty(e)||g.isObjectProperty(e)||g.isProperty(e)?e.value===t:g.isMemberExpression(e)?e.object===t:g.isCallExpression(e)||g.isNewExpression(e)?e.callee===t:g.isExpression(e)}static createFunctionExpression(e,t=false){return g.functionExpression(t?e.id:null,e.params,e.body,e.generator,e.async)}static getRootNode(e){let t=e;for(;t.parentPath!==null&&!g.isProgram(t.parent);)t=t.parentPath;return t.node}};var Ve=class{constructor(e,t){this.codemod=t,this.formatter=e;}async apply(e,t){if(this.codemod===void 0)return await this.formatter.format([e]),{modified:true,result:e};let n=await this.codemod.apply(e,t);return n.modified&&await this.formatter.format([e]),n}};var Ue=class{constructor({fileSystem:e,codemod:t}){this.fileSystem=e,this.codemod=t;}async apply(e,t){let n="";if(await this.fileSystem.exists(e))try{n=await this.fileSystem.readTextFile(e);}catch(i){throw new Ze("Failed to read file.",{cause:i,details:[`File: file://${e.replace(/\\/g,"/")}`]})}let r=await this.codemod.apply(n,t);if(r.modified)try{await this.fileSystem.writeTextFile(e,r.result,{overwrite:!0});}catch(i){throw new Ze("Failed to write file",{cause:i,details:[`File: file://${e.replace(/\\/g,"/")}`]})}return {modified:r.modified,result:e}}};var xr=class{constructor(e){this.configuration=e;}apply(e,t={}){let n=t.typescript??false,{body:r}=e.program,i=fe(e,{type:"value",moduleName:this.configuration.provider.module,importName:this.configuration.provider.component}),a=n?fe(e,{type:"type",moduleName:"react",importName:"PropsWithChildren"}):null,s=n?fe(e,{type:"type",moduleName:"react",importName:"ReactNode"}):null,p=g.objectPattern([g.objectProperty(g.identifier("children"),g.identifier("children"))]);a!==null&&(p.typeAnnotation=g.tsTypeAnnotation(g.tsTypeReference(g.identifier(a.localName))));let c=g.functionDeclaration(g.identifier("RootLayout"),[p],g.blockStatement([g.returnStatement(g.parenthesizedExpression(g.jsxElement(g.jsxOpeningElement(g.jsxIdentifier("html"),[g.jsxAttribute(g.jsxIdentifier("lang"),g.stringLiteral("en"))]),g.jsxClosingElement(g.jsxIdentifier("html")),[g.jsxText(`
1738
1738
  `),g.jsxElement(g.jsxOpeningElement(g.jsxIdentifier("body"),[]),g.jsxClosingElement(g.jsxIdentifier("body")),[g.jsxText(`
1739
1739
  `),g.jsxElement(g.jsxOpeningElement(g.jsxIdentifier(i.localName),[]),g.jsxClosingElement(g.jsxIdentifier(i.localName)),[g.jsxText(`
1740
1740
  `),g.jsxExpressionContainer(g.identifier("children")),g.jsxText(`
@@ -1777,7 +1777,7 @@ ${s}`,{reason:"invalid_input"})}this.resolving.push(r.toString());let a=new Ot({
1777
1777
  ${f}`,{reason:"invalid_input",url:t,violations:a.violations})}let{options:s,actions:p,...c}=a.data,l=r.get("actions",JsonArrayNode),u=this.parseOptions(r,s,t);return {url:t,value:{...c,...u!==void 0?{options:u}:{},actions:l.elements.map(f=>({resolve:y=>this.resolve(f,y,t)}))}}}parseOptions(e,t,n){if(t===void 0)return;let r=e.get("options",JsonObjectNode);return Object.fromEntries(Object.entries(t).map(([i,a])=>{if(a.default===void 0)return [i,a];let s=r.get(i,JsonObjectNode).get("default");return [i,{...a,resolveDefault:p=>this.resolve(s,p,n)}]}))}resolve(e,t,n,r=""){return e instanceof JsonArrayNode?e.elements.map((i,a)=>this.resolve(i,t,n,`${r}[${a}]`)):e instanceof JsonObjectNode?ce.transient(async()=>{let i=Object.fromEntries(await Promise.all(e.properties.map(async a=>{let s=await this.interpolate(a.key,t,n,r);if(typeof s!="string"&&typeof s!="number"){let c=a.key.location.start;throw new ve("Unexpected object key type.",{url:n,reason:"invalid_input",violations:[{path:r,message:`Expected object key to resolve to string or number at line ${c.line}, column ${c.column} but got ${d.describeType(s)}.`}]})}let p=r===""?`${s}`:`${r}.${s}`;return [s,ce.transient(()=>this.resolve(a.value,t,n,p))]})));return Sn.set(i,{url:n,start:e.location.start,end:e.location.end}),i}):e instanceof JsonPrimitiveNode&&typeof e.value=="string"?ce.transient(()=>this.interpolate(e,t,n,r)):e.toJSON()}interpolate(e,t,n,r){let i=gi.parse(e);if(i.length===1){let a=i[0];return a.type==="literal"?a.source:this.evaluate(o.createExpressionNode(a),t,n,r)}return Promise.all(i.map(async a=>{if(a.type==="literal")return a.source;let s=o.createExpressionNode(a),p=await this.evaluate(s,t,n,r);if(p!==null&&!["string","number","boolean"].includes(typeof p)){let c=e.location.start;throw new ve("Unexpected expression result.",{reason:"invalid_input",url:n,violations:[{path:r,message:`Expected expression \`${a.expression}\` to resolve to null, string, number, or boolean value at line ${c.line}, column ${c.column}, but got ${d.describeType(p)}.`}]})}return `${p??""}`})).then(a=>a.join(""))}async evaluate(e,t,n,r){let i=(e instanceof JsonIdentifierNode?e.token.value:e.value).trim();try{return await this.evaluator.evaluate(i,{variables:t,functions:{import:(a,s)=>{if(typeof a!="string"){let p=e.location.start;throw new z("Invalid argument for function `import`.",{reason:"invalid_input",details:[`The \`url\` argument of the \`import\` function must be a string, but got ${d.describeType(a)} at line ${p.line}, column ${p.column}.`]})}if(s!==void 0&&(typeof s!="object"||s===null||Array.isArray(s))){let p=e.location.start;throw new z("Invalid argument for function `import`.",{reason:"invalid_input",details:[`The \`properties\` argument of the \`import\` function must be an object, but got ${d.describeType(a)} at line ${p.line}, column ${p.column}.`]})}return this.import(Tt(a,n),s===void 0?t:$t.merge(t,{this:Promise.resolve(t.this).then(p=>typeof p=="object"&&p!==null&&!Array.isArray(p)?$t.merge(p,s):s)}),n,r)}}})}catch(a){let s=e.location.start;throw new ve("Failed to evaluate expression.",{reason:"invalid_input",url:n,cause:a,violations:[{path:r,message:`Evaluation of \`${i}\` at line ${s.line}, column ${s.column} failed because ${d.formatCause(a)}`}]})}}async import(e,t,n,r){if(e.protocol==="file:"&&n.protocol!=="file:")throw new ve("Unsafe import URL.",{reason:"precondition",url:e,violations:[{path:r,message:"File URL is not allowed from remote sources for security reasons."}]});if(this.loading.includes(e.toString())){let p=[...this.loading,e.href].map((c,l)=>` ${l+1}. ${c}`).join(`
1778
1778
  `);throw new ve(`Circular dependency detected while loading templates:
1779
1779
 
1780
- ${p}`,{reason:"invalid_input",url:e,violations:[{path:r,message:"Imported template creates a circular dependency."}]})}let{url:i,value:a}=await this.fileProvider.get(e),s;try{s=o.cleanJson(JsonParser.parse(a));}catch(p){throw new ve("Failed to parse referenced JSON.",{reason:"invalid_input",cause:p,url:i,violations:[{path:r,message:d.formatMessage(p)}]})}this.loading.push(i.toString());try{return this.resolve(s,t,i,r)}finally{this.loading.pop();}}static createExpressionNode(e){return new JsonPrimitiveNode({value:e.expression,location:e.location,token:new JsonTokenNode({type:JsonTokenType.STRING,value:e.source,location:e.location})})}static cleanJson(e){if(e instanceof JsonPrimitiveNode)return e;if(e instanceof JsonArrayNode){for(let t of e.elements)this.cleanJson(t);return e}if(e instanceof JsonObjectNode)for(let t of e.properties){let n=t.key.toJSON();n==="$schema"?e.delete(n):this.cleanJson(t.value);}return e}};var Ja=Symbol("any-property"),mc=Symbol("any-index"),In=Symbol("passthrough"),_t=Symbol("resolve"),w=class o extends Y{async validate(e){let t=this.findPassthroughPaths(this.schema),n;try{n=await this.resolveOptions(e,t);}catch(r){if(r instanceof ve)return {valid:false,violations:r.violations};throw r}return super.validate(n).then(r=>(r.valid&&o.restoreSymbols(n,r.data),r))}async resolveOptions(e,t,n=[]){if(typeof e!="object"||e===null||o.isPassthroughPath(n,t))return e;if(e instanceof Promise)return this.resolveOptions(await e,t,n);if(Array.isArray(e)){let r=new Array(e.length),i=new Array(e.length);for(let[a,s]of e.entries()){let p=[...n,a];o.isPassthroughPath(p,t)?i[a]=s:r[a]=this.resolveOptions(await s,t,p);}for(let[a,s]of (await Promise.all(r)).entries())s!==void 0&&(i[a]=s);return i}return {...e,...Object.fromEntries(await Promise.all(Object.entries(e).map(async([r,i])=>{let a=[...n,r];return o.isPassthroughPath(a,t)?[r,i]:[r,await this.resolveOptions(await i,t,a)]})))}}static isPassthroughPath(e,t){for(let n of t)if(n.length===e.length+1)for(let[r,i]of n.entries()){let a=typeof e[r]=="number"?mc:Ja;if(r<e.length?i!==e[r]&&i!==a:i!==_t&&i!==In)break;if(r===n.length-1)return i===In}return false}findPassthroughPaths(e,t=[]){if(e instanceof ZodPromise)return [[...t,In]];if(e instanceof ZodOptional)return this.findPassthroughPaths(e.unwrap(),t);if(e instanceof ZodTuple)return [[...t,_t],...e.items.flatMap((n,r)=>this.findPassthroughPaths(n,[...t,r]))];if(e instanceof ZodArray)return [[...t,_t],...this.findPassthroughPaths(e.element,[...t,mc])];if(e instanceof ZodRecord)return [[...t,_t],...this.findPassthroughPaths(e.valueSchema,[...t,Ja])];if(e instanceof ZodObject){let n=[[...t,_t],...Object.entries(e.shape).flatMap(([r,i])=>this.findPassthroughPaths(i,[...t,r]))];return e._def.unknownKeys==="passthrough"&&n.push([...t,Ja,In]),n}if(e instanceof ZodEffects){let n=e.innerType();return n instanceof ZodAny?[[...t,In]]:this.findPassthroughPaths(n,t)}return e instanceof ZodPipeline?this.findPassthroughPaths(e._def.out,t):e instanceof ZodUnion||e instanceof ZodDiscriminatedUnion?e.options.flatMap(n=>this.findPassthroughPaths(n,t)):[[...t,_t]]}static restoreSymbols(e,t){if(Array.isArray(e)&&Array.isArray(t)){for(let[n,r]of e.entries())n<t.length&&o.restoreSymbols(r,t[n]);return}if(!(!uc(e)||!uc(t))){for(let n of Object.getOwnPropertySymbols(e))Object.assign(t,{[n]:e[n]});for(let[n,r]of Object.entries(e))n in t&&o.restoreSymbols(r,t[n]);}}};var Ru=z$1.strictObject({action:z$1.instanceof(Promise),else:z$1.instanceof(Promise).optional(),finally:z$1.instanceof(Promise).optional(),help:z$1.strictObject({message:z$1.string().min(1).optional(),links:z$1.array(z$1.strictObject({url:z$1.string().url(),label:z$1.string().min(1)})).optional(),suggestions:z$1.array(z$1.string().min(1)).optional()}).optional()}),yi=class extends w{constructor(){super(Ru);}};var Ou=z$1.strictObject({name:z$1.string().min(1),version:z$1.string().min(1).optional(),optional:z$1.boolean().optional()}),Tu=z$1.strictObject({dependencies:z$1.array(Ou),help:z$1.strictObject({message:z$1.string().min(1).optional(),links:z$1.array(z$1.strictObject({url:z$1.string().url(),label:z$1.string().min(1)})).optional(),suggestions:z$1.array(z$1.string().min(1)).optional()}).optional(),result:z$1.record(z$1.string().min(1)).optional()}),hi=class extends w{constructor(){super(Tu);}};var Du=z$1.strictObject({source:z$1.string().min(1),filter:z$1.string().min(1).optional(),destination:z$1.string().min(1),mapping:z$1.record(z$1.string().min(1),z$1.string().min(1)).optional(),overwrite:z$1.boolean().optional(),result:z$1.strictObject({destination:z$1.string().min(1).optional()}).optional()}),Si=class extends w{constructor(){super(Du);}};var Mu=z$1.strictObject({dependencies:z$1.array(z$1.string().min(1)).min(1),development:z$1.boolean().optional()}),Ii=class extends w{constructor(){super(Mu);}};var Nu=z$1.strictObject({pattern:z$1.string().min(1),caseSensitive:z$1.boolean().optional()}),dc=z$1.union([Nu,z$1.strictObject({type:z$1.enum(["and","or"]),matchers:z$1.array(z$1.lazy(()=>dc)).min(1)})]),$u=z$1.strictObject({path:z$1.string().min(1),matcher:dc.optional(),limit:z$1.number().int().positive().optional(),depth:z$1.number().int().nonnegative().optional(),result:z$1.string()}),xi=class extends w{constructor(){super($u);}};var zu=z$1.strictObject({files:z$1.array(z$1.strictObject({path:z$1.string(),replacements:z$1.array(z$1.strictObject({pattern:z$1.string().refine(o=>{try{return new RegExp(o),!0}catch{return {message:"Invalid regular expression pattern"}}}),caseSensitive:z$1.boolean().optional(),value:z$1.union([z$1.string(),z$1.number()])})).min(1)})).min(1)}),vi=class extends w{constructor(){super(zu);}};var _u=z$1.strictObject({slots:z$1.array(z$1.string().min(1)).min(1),example:z$1.boolean().optional()}),Pi=class extends w{constructor(){super(_u);}};var Lu=z$1.strictObject({components:z$1.array(z$1.string().min(1)).min(1)}),Ci=class extends w{constructor(){super(Lu);}};var Fu=z$1.strictObject({name:z$1.string().min(1),criteria:z$1.string().min(1)}),gt=z$1.strictObject({title:z$1.string().optional(),description:z$1.string().optional()}),ju=gt.extend({type:z$1.literal("boolean"),label:z$1.strictObject({true:z$1.string(),false:z$1.string()}).optional(),default:z$1.boolean().optional()}),Wu=z$1.strictObject({label:z$1.string().optional(),description:z$1.string().optional(),default:z$1.boolean().optional(),position:z$1.number().optional()}),Vu=gt.extend({type:z$1.literal("text"),minimumLength:z$1.number().optional(),maximumLength:z$1.number().optional(),format:z$1.string().optional(),pattern:z$1.string().optional(),choices:z$1.record(Wu).optional()}),Uu=gt.extend({type:z$1.literal("number"),integer:z$1.boolean().optional(),minimum:z$1.number().optional(),maximum:z$1.number().optional()}),qu=z$1.lazy(()=>z$1.strictObject({type:z$1.lazy(()=>Sc),label:z$1.string().optional(),description:z$1.string().optional(),optional:z$1.boolean().optional(),private:z$1.boolean().optional(),position:z$1.number().optional()})),Ya=gt.extend({type:z$1.literal("structure"),attributes:z$1.record(z$1.string(),qu)}),Hu=gt.extend({type:z$1.literal("list"),items:z$1.lazy(()=>Sc),itemLabel:z$1.string().optional(),minimumLength:z$1.number().optional(),maximumLength:z$1.number().optional()}),Gu=z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.null()]),Ba=z$1.lazy(()=>z$1.union([Gu,z$1.array(Ba),z$1.record(Ba)])),yc=gt.extend({type:z$1.literal("reference"),id:z$1.string(),properties:z$1.record(z$1.string(),Ba).optional()}),hc=gt.extend({type:z$1.literal("union"),types:z$1.record(z$1.string(),z$1.discriminatedUnion("type",[Ya,yc]))}),Sc=z$1.discriminatedUnion("type",[ju,Vu,Uu,Ya,Hu,hc,yc]),Ku=z$1.discriminatedUnion("type",[Ya,hc]),Zu=z$1.strictObject({name:z$1.string().min(1),description:z$1.string().min(1).optional(),schema:Ku}),Ju=z$1.union([z$1.strictObject({type:z$1.literal("static"),value:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),expression:z$1.string(),nullable:z$1.literal(false),default:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),expression:z$1.string(),nullable:z$1.literal(true),default:z$1.string().optional()})]),Qu=z$1.union([z$1.strictObject({type:z$1.literal("static"),value:z$1.number()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(false),default:z$1.number(),expression:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(true),default:z$1.number().optional(),expression:z$1.string()})]),Bu=z$1.union([z$1.strictObject({type:z$1.literal("static"),value:z$1.boolean()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(false),default:z$1.boolean(),expression:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(true),default:z$1.boolean().optional(),expression:z$1.string()})]),Yu=z$1.strictObject({type:z$1.literal("text"),value:Ju}),Xu=z$1.strictObject({type:z$1.literal("number"),value:Qu}),em=z$1.strictObject({type:z$1.literal("boolean"),value:Bu}),bc=z$1.strictObject({type:z$1.literal("structure"),name:z$1.string().optional(),attributes:z$1.record(z$1.string(),z$1.lazy(()=>Ic))}),tm=z$1.strictObject({type:z$1.literal("list"),items:z$1.array(z$1.lazy(()=>Ic))}),Ic=z$1.discriminatedUnion("type",[Yu,Xu,em,bc,tm]),xc=z$1.record(z$1.string(),bc),nm=z$1.strictObject({name:z$1.string().min(1),component:z$1.string().min(1),content:xc}),vc=z$1.record(z$1.string(),xc),rm=z$1.strictObject({audiences:z$1.array(z$1.string()),content:vc}),wc=z$1.strictObject({default:vc,segmented:z$1.array(rm)}),im=z$1.strictObject({name:z$1.string(),content:wc,baseline:z$1.boolean().optional(),allocation:z$1.number().min(0).max(1)}),om=z$1.strictObject({name:z$1.string(),draft:z$1.boolean().optional(),audiences:z$1.array(z$1.string()),slots:z$1.array(z$1.string()),experiment:z$1.strictObject({name:z$1.string(),goalId:z$1.string().optional(),crossDevice:z$1.boolean().optional(),traffic:z$1.number().min(0).max(1),variants:z$1.array(im)}).optional(),content:wc}),am=z$1.record(z$1.string().min(1),z$1.string().min(1)),gc=z$1.record(z$1.number().nonnegative(),z$1.string().min(1)),fc=z$1.record(z$1.string().min(1),z$1.strictObject({id:z$1.string().min(1).optional(),version:z$1.string().min(1).optional()})),sm=z$1.strictObject({resources:z$1.strictObject({audiences:z$1.record(z$1.string().min(1),Fu).optional(),components:z$1.record(z$1.string().min(1),Zu).optional(),slots:z$1.record(z$1.string().min(1),nm).optional(),experiences:z$1.array(om).optional()}),result:z$1.strictObject({audiences:am.optional(),components:fc.optional(),slots:fc.optional(),experiences:gc.optional(),experiments:gc.optional()}).optional()}),ki=class extends w{constructor(){super(sm);}};var pm=z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.null()]),Xa=z$1.lazy(()=>z$1.union([pm,z$1.array(Xa),z$1.record(Xa)])),cm=z$1.strictObject({template:z$1.string().min(1),options:z$1.record(z$1.string().min(1),Xa).optional()}),Ai=class extends w{constructor(){super(cm);}};var Ei=class{constructor({formatter:e}){this.formatter=e;}async execute(e,t){let{output:n}=t,r=n.notify("Formatting code");try{await this.formatter.format(e.files);}catch(i){throw x.fromCause(i)}finally{r.stop();}}};var lm=z$1.strictObject({files:z$1.array(z$1.string().min(1)).min(1)}),Ri=class extends w{constructor(){super(lm);}};var Lt=class{constructor(e){this.discriminator=e.discriminator,this.mapping=e.mapping;}async get(){let e=await this.discriminator(),t=this.mapping[e];if(t===void 0)throw new H(`No value found for discriminator "${String(e)}".`,{reason:"not_supported"});return t instanceof Function?t():t.get()}};var Oi=class{constructor(e){this.runner=e;}execute(e,t){return e.condition?this.run(e.then,t):e.else!==void 0?this.run(e.else,t):Promise.resolve()}run(e,t){return this.runner.execute({actions:e},t)}};var um=z$1.strictObject({condition:z$1.boolean(),then:z$1.instanceof(Promise),else:z$1.instanceof(Promise).optional()}),Di=class extends w{constructor(){super(um);}};var Mi=class{execute(e,t){let n=t.output,r=e.semantics??"neutral";return e.title===void 0?n.log(e.message,r):n.announce({semantics:r,title:e.title,message:e.message}),Promise.resolve()}};var mm=z$1.strictObject({semantics:z$1.enum(["neutral","info","error","warning","success"]).optional(),title:z$1.string().optional(),message:z$1.string()}),$i=class extends w{constructor(){super(mm);}};var zi=class{execute(e){let{message:t,...n}=e;throw new x(t,{...n,reason:"precondition"})}};var dm=z$1.strictObject({title:z$1.string().min(1).optional(),message:z$1.string().min(1),links:z$1.array(z$1.strictObject({label:z$1.string().min(1),url:z$1.string().url()})).optional(),suggestions:z$1.array(z$1.string().min(1)).optional(),details:z$1.array(z$1.string().min(1)).optional()}),_i=class extends w{constructor(){super(dm);}};var Li=class{constructor({url:e,provider:t}){this.url=e,this.provider=t;}get(){return this.provider.get(this.url)}};var xn=class{constructor(e){this.data=e;}get(){return Promise.resolve(this.data)}};var Fi=class{constructor({packageManager:e,parsers:t,factory:n}){this.packageManager=e,this.parsers=t,this.factory=n;}async get(){let e=await this.packageManager.getScripts();for(let[t,n]of Object.entries(e))for(let r of this.parsers){let i=r.parse(n);if(i!==null)return this.factory.create({...i,command:await this.packageManager.getScriptCommand(t)})}throw new H("No server found.")}};var ji=class{parse(e){if(!e.includes("next dev"))return null;let t=e.match(/(?:-p|--port)\s*(\d+)/),n=e.match(/(?:-H|--hostname)\s*(\S+)/),r=t!==null?Number.parseInt(t[1],10):null,i=n!==null?n[1]:"localhost";return {protocol:e.includes("-https")?"https":"http",host:i,...r!==null?{port:r}:{},defaultPort:3e3}}};var Wi=class{parse(e){if(!e.includes("vite"))return null;let t=e.match(/--port\s*(\d+)/),n=e.match(/--host\s*(\S+)/),r=t!==null?Number.parseInt(t[1],10):null;return {protocol:"http",host:n!==null?n[1]:"localhost",...r!==null?{port:r}:{},defaultPort:5173}}};var Vi=class{parse(e){if(!e.includes("parcel"))return null;let t=e.match(/(?:-p|--port)\s*(\d+)/),n=e.match(/--host\s*(\S+)/),r=t!==null?Number.parseInt(t[1],10):null,i=n!==null?n[1]:"localhost";return {protocol:e.includes("--https")?"https":"http",host:i,...r!==null?{port:r}:{},defaultPort:1234}}};var Ui=class{parse(e){if(!e.includes("react-scripts start"))return null;let t=e.match(/PORT=(\d+)/),n=e.match(/HOST=(\S+)/),r=e.match(/HTTPS=(\S+)/),i=t!==null?Number.parseInt(t[1],10):null,a=n!==null?n[1]:"localhost";return {protocol:r!==null&&r[1]==="true"?"https":"http",host:a,...i!==null?{port:i}:{},defaultPort:5173}}};var qi=class{async execute(e,t){let{input:n}=t,r=n===void 0?this.getDefaultValue(e):await this.prompt(e,n);if(r===void 0)throw new x("Action requires user input.",{reason:"precondition",suggestions:["Retry in interactive mode"]});e.result!==void 0&&t.set(e.result,r);}getDefaultValue(e){switch(e.type){case "confirmation":return e.default;case "choice":return e.default;case "multi-choice":{let t=e.options.flatMap(n=>n.selected===true?[n.value]:[]);return t.length===0?void 0:t}case "text":return e.default;default:return}}prompt(e,t){switch(e.type){case "confirmation":return t.confirm(e);case "choice":return t.select(e);case "multi-choice":return t.selectMultiple(e);case "text":{let{required:n=false,...r}=e;return t.prompt({...r,validate:i=>n&&i===""?"This value is required.":true})}case "keypress":return t.wait(e)}}};var gm=z$1.strictObject({type:z$1.literal("confirmation"),message:z$1.string(),default:z$1.boolean().optional(),result:z$1.string()}),ts=z$1.string(),fm=z$1.preprocess(o=>typeof o=="string"?{value:o,label:o}:o,z$1.strictObject({value:ts,label:z$1.string().min(1).optional(),disabled:z$1.boolean().optional()})).transform(o=>({...o,label:o.label??o.value.toString()})),ym=z$1.strictObject({type:z$1.literal("choice"),message:z$1.string(),options:z$1.array(fm),default:ts.optional(),result:z$1.string()}),hm=z$1.preprocess(o=>typeof o=="string"?{value:o,label:o}:o,z$1.strictObject({value:ts,label:z$1.string().min(1).optional(),selected:z$1.boolean().optional(),disabled:z$1.boolean().optional()})).transform(o=>({...o,label:o.label??o.value.toString()})),Sm=z$1.strictObject({type:z$1.literal("multi-choice"),message:z$1.string(),min:z$1.number().optional(),max:z$1.number().optional(),options:z$1.array(hm),result:z$1.string()}),bm=z$1.strictObject({type:z$1.literal("text"),message:z$1.string(),default:z$1.string().optional(),required:z$1.boolean().optional(),result:z$1.string()}),Im=z$1.strictObject({type:z$1.literal("keypress"),message:z$1.string(),key:z$1.union([z$1.literal("enter"),z$1.literal("space"),z$1.string().length(1)]).optional(),result:z$1.string().optional()}),xm=z$1.discriminatedUnion("type",[gm,ym,Sm,bm,Im]),Hi=class extends w{constructor(){super(xm);}};var Gi=class{constructor({serverProvider:e}){this.provider=e;}async execute(e,t){let{output:n}=t,r=n.notify("Checking server"),i;try{i=await this.startServer(r);}finally{r.stop();}e.result?.url!==void 0&&t.set(e.result.url,i.url.toString()),e.result?.owned!==void 0&&t.set(e.result.owned,i.owned);}async startServer(e){let t=await this.provider.get();if(t===null)throw new d("No server detected.");let n=await t.getStatus();return n.running?{url:n.url,owned:false}:(e.update("Starting server"),{url:await t.start(),owned:true})}};var vm=z$1.strictObject({result:z$1.strictObject({url:z$1.string().optional(),owned:z$1.string().optional()}).optional()}),Zi=class extends w{constructor(){super(vm);}};var Ji=class{constructor(e){this.actions=e;}async execute(e,t){for(let n of Array.isArray(e.actions)?e.actions:[e.actions])try{await this.run(n,t);}catch(r){throw x.fromCause(r,{tracing:[{name:n.name,source:Sn.get(n)??void 0}]})}}run({name:e,...t},n){let r=this.actions[e];if(r===void 0)throw new x(`Unsupported action \`${e}\`.`,{reason:"invalid_input"});return r.execute(t,n)}};var Pc=z$1.object({name:z$1.string().min(1)}).passthrough(),wm=z$1.strictObject({actions:z$1.union([Pc,z$1.array(Pc)])}),Qi=class extends w{constructor(){super(wm);}};var Bi=class{async execute(e,t){let{output:n}=t;await n.open(e.url);}};var Pm=z$1.strictObject({url:z$1.string().url()}),Yi=class extends w{constructor(){super(Pm);}};var Cm=z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.null()]),ns=z$1.lazy(()=>z$1.union([Cm,z$1.array(ns),z$1.record(ns)])),km=z$1.strictObject({variables:z$1.record(z$1.string(),ns)}),Xi=class extends w{constructor(){super(km);}};var eo=class{execute(e,t){for(let[n,r]of Object.entries(e.variables))t.set(n,r);return Promise.resolve()}};var to=class{constructor({serverProvider:e}){this.provider=e;}async execute(e,t){let{output:n}=t,r=n.notify("Stopping server"),i=await this.provider.get();if(i===null)throw new d("No server detected.");try{await i.stop();}finally{r.stop();}}};var Em=z$1.strictObject({}),no=class extends w{constructor(){super(Em);}};var Ft=class o extends d{constructor(e,t){super(e,t),Object.setPrototypeOf(this,o.prototype);}};var ro=class{constructor(e){this.configuration=e;}async getStatus(){let e=await this.findAddress();return e===null?{running:false}:{running:true,url:e}}async start(){let{commandExecutor:e,command:t,workingDirectory:n,processObserver:r}=this.configuration;try{this.execution=await e.run(t,{workingDirectory:n.get()});}catch(s){throw new Ft("Failed to start server.",{cause:s})}let i=()=>this.stop();if(this.execution.onExit(()=>{this.execution=void 0,r.off("exit",i);}),!this.execution.running)throw new Ft("Failed to start server.");r.on("exit",i);let a=await this.waitStart();if(a===null)throw new Ft("Server is unreachable.");return a}async stop(){await this?.execution?.kill("SIGINT"),this.execution=void 0;}async waitStart(){let{startupCheckDelay:e,startupTimeout:t}=this.configuration,n=new AbortController;setTimeout(()=>n.abort(),t).unref();let i=()=>new Promise(a=>{setTimeout(a,e);});do{let a=await this.findAddress(n);if(a!==null)return a;await i();}while(!n.signal.aborted);return null}async findAddress(e){let{lookupTimeout:t,lookupMaxPorts:n,server:{protocol:r,host:i,port:a,defaultPort:s}}=this.configuration,p=a??s,c=a??s+n-1,l=new AbortController;e!==void 0&&e.signal.addEventListener("abort",()=>l.abort()),setTimeout(()=>l.abort(),t).unref();let f=new URL(`${r}://${i}`);for(let y=p;y<=c;y++){try{return f.port=y.toString(),await fetch(f,{method:"HEAD",signal:l.signal}),f}catch{}if(l.signal.aborted)break}return null}};var io=class{constructor(e){this.configuration=e;}create(e){return new ro({...this.configuration,command:e.command,server:{protocol:e.protocol,host:e.host,defaultPort:e.defaultPort,port:e.port}})}};var Rm=z$1.strictObject({path:z$1.string()}),oo=class extends w{constructor(){super(Rm);}};var ao=class{constructor({fileSystem:e,rootDirectory:t,currentDirectory:n}){this.fileSystem=e,this.rootDirectory=t,this.currentDirectory=n;}execute(e){let t=this.fileSystem.isAbsolutePath(e.path)?e.path:this.fileSystem.joinPaths(this.currentDirectory.get(),e.path);if(!this.fileSystem.isSubPath(this.rootDirectory,t))throw new x("Cannot change to a directory outside the current working directory.",{reason:"precondition",details:[`Working directory: ${this.rootDirectory}`,`Target directory: ${t}`]});return this.currentDirectory.setCurrentDirectory(t),Promise.resolve()}};var so=class o{static{this.INPUT_MAP={"[space]":" ","[enter]":`
1780
+ ${p}`,{reason:"invalid_input",url:e,violations:[{path:r,message:"Imported template creates a circular dependency."}]})}let{url:i,value:a}=await this.fileProvider.get(e),s;try{s=o.cleanJson(JsonParser.parse(a));}catch(p){throw new ve("Failed to parse referenced JSON.",{reason:"invalid_input",cause:p,url:i,violations:[{path:r,message:d.formatMessage(p)}]})}this.loading.push(i.toString());try{return this.resolve(s,t,i,r)}finally{this.loading.pop();}}static createExpressionNode(e){return new JsonPrimitiveNode({value:e.expression,location:e.location,token:new JsonTokenNode({type:JsonTokenType.STRING,value:e.source,location:e.location})})}static cleanJson(e){if(e instanceof JsonPrimitiveNode)return e;if(e instanceof JsonArrayNode){for(let t of e.elements)this.cleanJson(t);return e}if(e instanceof JsonObjectNode)for(let t of e.properties){let n=t.key.toJSON();n==="$schema"?e.delete(n):this.cleanJson(t.value);}return e}};var Ja=Symbol("any-property"),mc=Symbol("any-index"),In=Symbol("passthrough"),_t=Symbol("resolve"),w=class o extends Y{async validate(e){let t=this.findPassthroughPaths(this.schema),n;try{n=await this.resolveOptions(e,t);}catch(r){if(r instanceof ve)return {valid:false,violations:r.violations};throw r}return super.validate(n).then(r=>(r.valid&&o.restoreSymbols(n,r.data),r))}async resolveOptions(e,t,n=[]){if(typeof e!="object"||e===null||o.isPassthroughPath(n,t))return e;if(e instanceof Promise)return this.resolveOptions(await e,t,n);if(Array.isArray(e)){let r=new Array(e.length),i=new Array(e.length);for(let[a,s]of e.entries()){let p=[...n,a];o.isPassthroughPath(p,t)?i[a]=s:r[a]=this.resolveOptions(await s,t,p);}for(let[a,s]of (await Promise.all(r)).entries())s!==void 0&&(i[a]=s);return i}return {...e,...Object.fromEntries(await Promise.all(Object.entries(e).map(async([r,i])=>{let a=[...n,r];return o.isPassthroughPath(a,t)?[r,i]:[r,await this.resolveOptions(await i,t,a)]})))}}static isPassthroughPath(e,t){for(let n of t)if(n.length===e.length+1)for(let[r,i]of n.entries()){let a=typeof e[r]=="number"?mc:Ja;if(r<e.length?i!==e[r]&&i!==a:i!==_t&&i!==In)break;if(r===n.length-1)return i===In}return false}findPassthroughPaths(e,t=[]){if(e instanceof ZodPromise)return [[...t,In]];if(e instanceof ZodOptional)return this.findPassthroughPaths(e.unwrap(),t);if(e instanceof ZodTuple)return [[...t,_t],...e.items.flatMap((n,r)=>this.findPassthroughPaths(n,[...t,r]))];if(e instanceof ZodArray)return [[...t,_t],...this.findPassthroughPaths(e.element,[...t,mc])];if(e instanceof ZodRecord)return [[...t,_t],...this.findPassthroughPaths(e.valueSchema,[...t,Ja])];if(e instanceof ZodObject){let n=[[...t,_t],...Object.entries(e.shape).flatMap(([r,i])=>this.findPassthroughPaths(i,[...t,r]))];return e._def.unknownKeys==="passthrough"&&n.push([...t,Ja,In]),n}if(e instanceof ZodEffects){let n=e.innerType();return n instanceof ZodAny?[[...t,In]]:this.findPassthroughPaths(n,t)}return e instanceof ZodPipeline?this.findPassthroughPaths(e._def.out,t):e instanceof ZodUnion||e instanceof ZodDiscriminatedUnion?e.options.flatMap(n=>this.findPassthroughPaths(n,t)):[[...t,_t]]}static restoreSymbols(e,t){if(Array.isArray(e)&&Array.isArray(t)){for(let[n,r]of e.entries())n<t.length&&o.restoreSymbols(r,t[n]);return}if(!(!uc(e)||!uc(t))){for(let n of Object.getOwnPropertySymbols(e))Object.assign(t,{[n]:e[n]});for(let[n,r]of Object.entries(e))n in t&&o.restoreSymbols(r,t[n]);}}};var Ru=z$1.strictObject({action:z$1.instanceof(Promise),else:z$1.instanceof(Promise).optional(),finally:z$1.instanceof(Promise).optional(),help:z$1.strictObject({message:z$1.string().min(1).optional(),links:z$1.array(z$1.strictObject({url:z$1.string().url(),label:z$1.string().min(1)})).optional(),suggestions:z$1.array(z$1.string().min(1)).optional()}).optional()}),yi=class extends w{constructor(){super(Ru);}};var Ou=z$1.strictObject({name:z$1.string().min(1),version:z$1.string().min(1).optional(),optional:z$1.boolean().optional()}),Tu=z$1.strictObject({dependencies:z$1.array(Ou),help:z$1.strictObject({message:z$1.string().min(1).optional(),links:z$1.array(z$1.strictObject({url:z$1.string().url(),label:z$1.string().min(1)})).optional(),suggestions:z$1.array(z$1.string().min(1)).optional()}).optional(),result:z$1.record(z$1.string().min(1)).optional()}),hi=class extends w{constructor(){super(Tu);}};var Du=z$1.strictObject({source:z$1.string().min(1),filter:z$1.string().min(1).optional(),destination:z$1.string().min(1),mapping:z$1.record(z$1.string().min(1),z$1.string().min(1)).optional(),overwrite:z$1.boolean().optional(),result:z$1.strictObject({destination:z$1.string().min(1).optional()}).optional()}),Si=class extends w{constructor(){super(Du);}};var Mu=z$1.strictObject({dependencies:z$1.array(z$1.string().min(1)).min(1),development:z$1.boolean().optional()}),Ii=class extends w{constructor(){super(Mu);}};var Nu=z$1.strictObject({pattern:z$1.string().min(1),caseSensitive:z$1.boolean().optional()}),dc=z$1.union([Nu,z$1.strictObject({type:z$1.enum(["and","or"]),matchers:z$1.array(z$1.lazy(()=>dc)).min(1)})]),$u=z$1.strictObject({path:z$1.string().min(1),matcher:dc.optional(),limit:z$1.number().int().positive().optional(),depth:z$1.number().int().nonnegative().optional(),result:z$1.string()}),xi=class extends w{constructor(){super($u);}};var zu=z$1.strictObject({files:z$1.array(z$1.strictObject({path:z$1.string(),replacements:z$1.array(z$1.strictObject({pattern:z$1.string().refine(o=>{try{return new RegExp(o),!0}catch{return {message:"Invalid regular expression pattern"}}}),caseSensitive:z$1.boolean().optional(),value:z$1.union([z$1.string(),z$1.number()])})).min(1)})).min(1)}),vi=class extends w{constructor(){super(zu);}};var _u=z$1.strictObject({slots:z$1.array(z$1.string().min(1)).min(1),example:z$1.boolean().optional()}),Pi=class extends w{constructor(){super(_u);}};var Lu=z$1.strictObject({components:z$1.array(z$1.string().min(1)).min(1)}),Ci=class extends w{constructor(){super(Lu);}};var Fu=z$1.strictObject({name:z$1.string().min(1),criteria:z$1.string().min(1)}),gt=z$1.strictObject({title:z$1.string().optional(),description:z$1.string().optional()}),ju=gt.extend({type:z$1.literal("boolean"),label:z$1.strictObject({true:z$1.string(),false:z$1.string()}).optional(),default:z$1.boolean().optional()}),Wu=z$1.strictObject({label:z$1.string().optional(),description:z$1.string().optional(),default:z$1.boolean().optional(),position:z$1.number().optional()}),Vu=gt.extend({type:z$1.literal("text"),minimumLength:z$1.number().optional(),maximumLength:z$1.number().optional(),format:z$1.string().optional(),pattern:z$1.string().optional(),choices:z$1.record(Wu).optional()}),Uu=gt.extend({type:z$1.literal("number"),integer:z$1.boolean().optional(),minimum:z$1.number().optional(),maximum:z$1.number().optional()}),qu=z$1.lazy(()=>z$1.strictObject({type:z$1.lazy(()=>Sc),label:z$1.string().optional(),description:z$1.string().optional(),optional:z$1.boolean().optional(),private:z$1.boolean().optional(),position:z$1.number().optional()})),Ya=gt.extend({type:z$1.literal("structure"),attributes:z$1.record(z$1.string(),qu)}),Hu=gt.extend({type:z$1.literal("list"),items:z$1.lazy(()=>Sc),itemLabel:z$1.string().optional(),minimumLength:z$1.number().optional(),maximumLength:z$1.number().optional()}),Gu=z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.null()]),Ba=z$1.lazy(()=>z$1.union([Gu,z$1.array(Ba),z$1.record(Ba)])),yc=gt.extend({type:z$1.literal("reference"),id:z$1.string(),properties:z$1.record(z$1.string(),Ba).optional()}),hc=gt.extend({type:z$1.literal("union"),types:z$1.record(z$1.string(),z$1.discriminatedUnion("type",[Ya,yc]))}),Sc=z$1.discriminatedUnion("type",[ju,Vu,Uu,Ya,Hu,hc,yc]),Ku=z$1.discriminatedUnion("type",[Ya,hc]),Zu=z$1.strictObject({name:z$1.string().min(1),description:z$1.string().min(1).optional(),schema:Ku}),Ju=z$1.union([z$1.strictObject({type:z$1.literal("static"),value:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),expression:z$1.string(),nullable:z$1.literal(false),default:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),expression:z$1.string(),nullable:z$1.literal(true),default:z$1.string().optional()})]),Qu=z$1.union([z$1.strictObject({type:z$1.literal("static"),value:z$1.number()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(false),default:z$1.number(),expression:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(true),default:z$1.number().optional(),expression:z$1.string()})]),Bu=z$1.union([z$1.strictObject({type:z$1.literal("static"),value:z$1.boolean()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(false),default:z$1.boolean(),expression:z$1.string()}),z$1.strictObject({type:z$1.literal("dynamic"),nullable:z$1.literal(true),default:z$1.boolean().optional(),expression:z$1.string()})]),Yu=z$1.strictObject({type:z$1.literal("text"),value:Ju}),Xu=z$1.strictObject({type:z$1.literal("number"),value:Qu}),em=z$1.strictObject({type:z$1.literal("boolean"),value:Bu}),bc=z$1.strictObject({type:z$1.literal("structure"),name:z$1.string().optional(),attributes:z$1.record(z$1.string(),z$1.lazy(()=>Ic))}),tm=z$1.strictObject({type:z$1.literal("list"),items:z$1.array(z$1.lazy(()=>Ic))}),Ic=z$1.discriminatedUnion("type",[Yu,Xu,em,bc,tm]),xc=z$1.record(z$1.string(),bc),nm=z$1.strictObject({name:z$1.string().min(1),component:z$1.string().min(1),content:xc}),vc=z$1.record(z$1.string(),xc),rm=z$1.strictObject({audiences:z$1.array(z$1.string()),content:vc}),wc=z$1.strictObject({default:vc,segmented:z$1.array(rm)}),im=z$1.strictObject({name:z$1.string(),content:wc,baseline:z$1.boolean().optional(),allocation:z$1.number().min(0)}),om=z$1.strictObject({name:z$1.string(),draft:z$1.boolean().optional(),audiences:z$1.array(z$1.string()),slots:z$1.array(z$1.string()),experiment:z$1.strictObject({name:z$1.string(),goalId:z$1.string().optional(),crossDevice:z$1.boolean().optional(),traffic:z$1.number().min(0).max(1),variants:z$1.array(im)}).optional(),content:wc}),am=z$1.record(z$1.string().min(1),z$1.string().min(1)),gc=z$1.record(z$1.number().nonnegative(),z$1.string().min(1)),fc=z$1.record(z$1.string().min(1),z$1.strictObject({id:z$1.string().min(1).optional(),version:z$1.string().min(1).optional()})),sm=z$1.strictObject({resources:z$1.strictObject({audiences:z$1.record(z$1.string().min(1),Fu).optional(),components:z$1.record(z$1.string().min(1),Zu).optional(),slots:z$1.record(z$1.string().min(1),nm).optional(),experiences:z$1.array(om).optional()}),result:z$1.strictObject({audiences:am.optional(),components:fc.optional(),slots:fc.optional(),experiences:gc.optional(),experiments:gc.optional()}).optional()}),ki=class extends w{constructor(){super(sm);}};var pm=z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.null()]),Xa=z$1.lazy(()=>z$1.union([pm,z$1.array(Xa),z$1.record(Xa)])),cm=z$1.strictObject({template:z$1.string().min(1),options:z$1.record(z$1.string().min(1),Xa).optional()}),Ai=class extends w{constructor(){super(cm);}};var Ei=class{constructor({formatter:e}){this.formatter=e;}async execute(e,t){let{output:n}=t,r=n.notify("Formatting code");try{await this.formatter.format(e.files);}catch(i){throw x.fromCause(i)}finally{r.stop();}}};var lm=z$1.strictObject({files:z$1.array(z$1.string().min(1)).min(1)}),Ri=class extends w{constructor(){super(lm);}};var Lt=class{constructor(e){this.discriminator=e.discriminator,this.mapping=e.mapping;}async get(){let e=await this.discriminator(),t=this.mapping[e];if(t===void 0)throw new H(`No value found for discriminator "${String(e)}".`,{reason:"not_supported"});return t instanceof Function?t():t.get()}};var Oi=class{constructor(e){this.runner=e;}execute(e,t){return e.condition?this.run(e.then,t):e.else!==void 0?this.run(e.else,t):Promise.resolve()}run(e,t){return this.runner.execute({actions:e},t)}};var um=z$1.strictObject({condition:z$1.boolean(),then:z$1.instanceof(Promise),else:z$1.instanceof(Promise).optional()}),Di=class extends w{constructor(){super(um);}};var Mi=class{execute(e,t){let n=t.output,r=e.semantics??"neutral";return e.title===void 0?n.log(e.message,r):n.announce({semantics:r,title:e.title,message:e.message}),Promise.resolve()}};var mm=z$1.strictObject({semantics:z$1.enum(["neutral","info","error","warning","success"]).optional(),title:z$1.string().optional(),message:z$1.string()}),$i=class extends w{constructor(){super(mm);}};var zi=class{execute(e){let{message:t,...n}=e;throw new x(t,{...n,reason:"precondition"})}};var dm=z$1.strictObject({title:z$1.string().min(1).optional(),message:z$1.string().min(1),links:z$1.array(z$1.strictObject({label:z$1.string().min(1),url:z$1.string().url()})).optional(),suggestions:z$1.array(z$1.string().min(1)).optional(),details:z$1.array(z$1.string().min(1)).optional()}),_i=class extends w{constructor(){super(dm);}};var Li=class{constructor({url:e,provider:t}){this.url=e,this.provider=t;}get(){return this.provider.get(this.url)}};var xn=class{constructor(e){this.data=e;}get(){return Promise.resolve(this.data)}};var Fi=class{constructor({packageManager:e,parsers:t,factory:n}){this.packageManager=e,this.parsers=t,this.factory=n;}async get(){let e=await this.packageManager.getScripts();for(let[t,n]of Object.entries(e))for(let r of this.parsers){let i=r.parse(n);if(i!==null)return this.factory.create({...i,command:await this.packageManager.getScriptCommand(t)})}throw new H("No server found.")}};var ji=class{parse(e){if(!e.includes("next dev"))return null;let t=e.match(/(?:-p|--port)\s*(\d+)/),n=e.match(/(?:-H|--hostname)\s*(\S+)/),r=t!==null?Number.parseInt(t[1],10):null,i=n!==null?n[1]:"localhost";return {protocol:e.includes("-https")?"https":"http",host:i,...r!==null?{port:r}:{},defaultPort:3e3}}};var Wi=class{parse(e){if(!e.includes("vite"))return null;let t=e.match(/--port\s*(\d+)/),n=e.match(/--host\s*(\S+)/),r=t!==null?Number.parseInt(t[1],10):null;return {protocol:"http",host:n!==null?n[1]:"localhost",...r!==null?{port:r}:{},defaultPort:5173}}};var Vi=class{parse(e){if(!e.includes("parcel"))return null;let t=e.match(/(?:-p|--port)\s*(\d+)/),n=e.match(/--host\s*(\S+)/),r=t!==null?Number.parseInt(t[1],10):null,i=n!==null?n[1]:"localhost";return {protocol:e.includes("--https")?"https":"http",host:i,...r!==null?{port:r}:{},defaultPort:1234}}};var Ui=class{parse(e){if(!e.includes("react-scripts start"))return null;let t=e.match(/PORT=(\d+)/),n=e.match(/HOST=(\S+)/),r=e.match(/HTTPS=(\S+)/),i=t!==null?Number.parseInt(t[1],10):null,a=n!==null?n[1]:"localhost";return {protocol:r!==null&&r[1]==="true"?"https":"http",host:a,...i!==null?{port:i}:{},defaultPort:5173}}};var qi=class{async execute(e,t){let{input:n}=t,r=n===void 0?this.getDefaultValue(e):await this.prompt(e,n);if(r===void 0)throw new x("Action requires user input.",{reason:"precondition",suggestions:["Retry in interactive mode"]});e.result!==void 0&&t.set(e.result,r);}getDefaultValue(e){switch(e.type){case "confirmation":return e.default;case "choice":return e.default;case "multi-choice":{let t=e.options.flatMap(n=>n.selected===true?[n.value]:[]);return t.length===0?void 0:t}case "text":return e.default;default:return}}prompt(e,t){switch(e.type){case "confirmation":return t.confirm(e);case "choice":return t.select(e);case "multi-choice":return t.selectMultiple(e);case "text":{let{required:n=false,...r}=e;return t.prompt({...r,validate:i=>n&&i===""?"This value is required.":true})}case "keypress":return t.wait(e)}}};var gm=z$1.strictObject({type:z$1.literal("confirmation"),message:z$1.string(),default:z$1.boolean().optional(),result:z$1.string()}),ts=z$1.string(),fm=z$1.preprocess(o=>typeof o=="string"?{value:o,label:o}:o,z$1.strictObject({value:ts,label:z$1.string().min(1).optional(),disabled:z$1.boolean().optional()})).transform(o=>({...o,label:o.label??o.value.toString()})),ym=z$1.strictObject({type:z$1.literal("choice"),message:z$1.string(),options:z$1.array(fm),default:ts.optional(),result:z$1.string()}),hm=z$1.preprocess(o=>typeof o=="string"?{value:o,label:o}:o,z$1.strictObject({value:ts,label:z$1.string().min(1).optional(),selected:z$1.boolean().optional(),disabled:z$1.boolean().optional()})).transform(o=>({...o,label:o.label??o.value.toString()})),Sm=z$1.strictObject({type:z$1.literal("multi-choice"),message:z$1.string(),min:z$1.number().optional(),max:z$1.number().optional(),options:z$1.array(hm),result:z$1.string()}),bm=z$1.strictObject({type:z$1.literal("text"),message:z$1.string(),default:z$1.string().optional(),required:z$1.boolean().optional(),result:z$1.string()}),Im=z$1.strictObject({type:z$1.literal("keypress"),message:z$1.string(),key:z$1.union([z$1.literal("enter"),z$1.literal("space"),z$1.string().length(1)]).optional(),result:z$1.string().optional()}),xm=z$1.discriminatedUnion("type",[gm,ym,Sm,bm,Im]),Hi=class extends w{constructor(){super(xm);}};var Gi=class{constructor({serverProvider:e}){this.provider=e;}async execute(e,t){let{output:n}=t,r=n.notify("Checking server"),i;try{i=await this.startServer(r);}finally{r.stop();}e.result?.url!==void 0&&t.set(e.result.url,i.url.toString()),e.result?.owned!==void 0&&t.set(e.result.owned,i.owned);}async startServer(e){let t=await this.provider.get();if(t===null)throw new d("No server detected.");let n=await t.getStatus();return n.running?{url:n.url,owned:false}:(e.update("Starting server"),{url:await t.start(),owned:true})}};var vm=z$1.strictObject({result:z$1.strictObject({url:z$1.string().optional(),owned:z$1.string().optional()}).optional()}),Zi=class extends w{constructor(){super(vm);}};var Ji=class{constructor(e){this.actions=e;}async execute(e,t){for(let n of Array.isArray(e.actions)?e.actions:[e.actions])try{await this.run(n,t);}catch(r){throw x.fromCause(r,{tracing:[{name:n.name,source:Sn.get(n)??void 0}]})}}run({name:e,...t},n){let r=this.actions[e];if(r===void 0)throw new x(`Unsupported action \`${e}\`.`,{reason:"invalid_input"});return r.execute(t,n)}};var Pc=z$1.object({name:z$1.string().min(1)}).passthrough(),wm=z$1.strictObject({actions:z$1.union([Pc,z$1.array(Pc)])}),Qi=class extends w{constructor(){super(wm);}};var Bi=class{async execute(e,t){let{output:n}=t;await n.open(e.url);}};var Pm=z$1.strictObject({url:z$1.string().url()}),Yi=class extends w{constructor(){super(Pm);}};var Cm=z$1.union([z$1.string(),z$1.number(),z$1.boolean(),z$1.null()]),ns=z$1.lazy(()=>z$1.union([Cm,z$1.array(ns),z$1.record(ns)])),km=z$1.strictObject({variables:z$1.record(z$1.string(),ns)}),Xi=class extends w{constructor(){super(km);}};var eo=class{execute(e,t){for(let[n,r]of Object.entries(e.variables))t.set(n,r);return Promise.resolve()}};var to=class{constructor({serverProvider:e}){this.provider=e;}async execute(e,t){let{output:n}=t,r=n.notify("Stopping server"),i=await this.provider.get();if(i===null)throw new d("No server detected.");try{await i.stop();}finally{r.stop();}}};var Em=z$1.strictObject({}),no=class extends w{constructor(){super(Em);}};var Ft=class o extends d{constructor(e,t){super(e,t),Object.setPrototypeOf(this,o.prototype);}};var ro=class{constructor(e){this.configuration=e;}async getStatus(){let e=await this.findAddress();return e===null?{running:false}:{running:true,url:e}}async start(){let{commandExecutor:e,command:t,workingDirectory:n,processObserver:r}=this.configuration;try{this.execution=await e.run(t,{workingDirectory:n.get()});}catch(s){throw new Ft("Failed to start server.",{cause:s})}let i=()=>this.stop();if(this.execution.onExit(()=>{this.execution=void 0,r.off("exit",i);}),!this.execution.running)throw new Ft("Failed to start server.");r.on("exit",i);let a=await this.waitStart();if(a===null)throw new Ft("Server is unreachable.");return a}async stop(){await this?.execution?.kill("SIGINT"),this.execution=void 0;}async waitStart(){let{startupCheckDelay:e,startupTimeout:t}=this.configuration,n=new AbortController;setTimeout(()=>n.abort(),t).unref();let i=()=>new Promise(a=>{setTimeout(a,e);});do{let a=await this.findAddress(n);if(a!==null)return a;await i();}while(!n.signal.aborted);return null}async findAddress(e){let{lookupTimeout:t,lookupMaxPorts:n,server:{protocol:r,host:i,port:a,defaultPort:s}}=this.configuration,p=a??s,c=a??s+n-1,l=new AbortController;e!==void 0&&e.signal.addEventListener("abort",()=>l.abort()),setTimeout(()=>l.abort(),t).unref();let f=new URL(`${r}://${i}`);for(let y=p;y<=c;y++){try{return f.port=y.toString(),await fetch(f,{method:"HEAD",signal:l.signal}),f}catch{}if(l.signal.aborted)break}return null}};var io=class{constructor(e){this.configuration=e;}create(e){return new ro({...this.configuration,command:e.command,server:{protocol:e.protocol,host:e.host,defaultPort:e.defaultPort,port:e.port}})}};var Rm=z$1.strictObject({path:z$1.string()}),oo=class extends w{constructor(){super(Rm);}};var ao=class{constructor({fileSystem:e,rootDirectory:t,currentDirectory:n}){this.fileSystem=e,this.rootDirectory=t,this.currentDirectory=n;}execute(e){let t=this.fileSystem.isAbsolutePath(e.path)?e.path:this.fileSystem.joinPaths(this.currentDirectory.get(),e.path);if(!this.fileSystem.isSubPath(this.rootDirectory,t))throw new x("Cannot change to a directory outside the current working directory.",{reason:"precondition",details:[`Working directory: ${this.rootDirectory}`,`Target directory: ${t}`]});return this.currentDirectory.setCurrentDirectory(t),Promise.resolve()}};var so=class o{static{this.INPUT_MAP={"[space]":" ","[enter]":`
1781
1781
  `,"[down]":"\x1B[A","[up]":"\x1B[B","[left]":"\x1B[C","[right]":"\x1B[D","[backspace]":"\b"};}constructor(e){this.configuration=e;}async execute(e,t){let{input:n,output:r}=t,{sourceChecker:i}=this.configuration,s=await(await this.getPackageManager(e.runner)).getPackageCommand(e.package,e.arguments),p=[s.name.split(/[\\/]/).pop(),...s.arguments??[]].join(" ");if(!await i.test(t.baseUrl)){if(n===void 0)throw new x("Action requires explicit user confirmation.",{reason:"precondition",details:["Retry in interactive mode."]});if(r.warn(`This template will run the command \`${p}\``),!await n.confirm({message:"Continue?",default:true}))throw new x("Permission to run command denied.",{reason:"precondition",details:[`Command: ${p}`]})}let c=r.notify(`Running \`${p}\``);try{await this.executeCommand(s,e.interactions);}catch(l){throw x.fromCause(l)}finally{c.stop();}}getPackageManager(e){return e===void 0?this.configuration.packageManager:this.configuration.packageManagerProvider.get(e)}async executeCommand(e,t=[]){let{workingDirectory:n,commandExecutor:r,commandTimeout:i}=this.configuration,a=await r.run(e,{workingDirectory:n.get(),timeout:i}),s=[...t];s.length===0&&await a.endWriting();let p="";for await(let u of a.output){p+=Om(u);for(let[f,y]of s.entries())if(y.pattern===true?new RegExp(y.when).test(p):p.includes(y.when)){p="",y.always!==true&&s.splice(f,1);for(let I of y.then??[])await a.write(o.INPUT_MAP[I]??I);y.final===true&&(await a.endWriting(),s.length=0);break}}let c=-1,l;try{c=await a.wait();}catch(u){l=u;}if(c!==0)throw new x(`Command failed with output:
1782
1782
 
1783
1783
  ${p}`,{reason:"unexpected_result",cause:l})}};var Tm=z$1.strictObject({package:z$1.string(),arguments:z$1.array(z$1.string()).optional(),runner:z$1.string().optional(),interactions:z$1.array(z$1.object({when:z$1.string(),pattern:z$1.boolean().optional(),always:z$1.boolean().optional(),then:z$1.array(z$1.string()).min(1).optional(),final:z$1.boolean().optional()}).superRefine((o,e)=>{if(o.then===void 0&&o.final===void 0&&e.addIssue({code:z$1.ZodIssueCode.custom,message:"Either `then` or `final` must be defined"}),o.final===true&&o.always===true&&e.addIssue({code:z$1.ZodIssueCode.custom,path:["always"],message:"Final interactions must have `always` set to `false`"}),o.pattern===true)try{new RegExp(o.when);}catch{e.addIssue({code:z$1.ZodIssueCode.custom,path:["pattern"],message:"The `when` field must be a valid regular expression"});}})).min(1).optional().refine(o=>o===void 0||o.some(e=>e.final===true),{message:"At least one interaction must have `final` set to `true`"})}),po=class extends w{constructor(){super(Tm);}};var Se=class o extends d{constructor(e,t){super(e,t),Object.setPrototypeOf(this,o.prototype);}};var tt=class{constructor(e){this.projectDirectory=e.projectDirectory,this.fileSystem=e.fileSystem,this.agent=e.agent,this.packageValidator=e.packageValidator;}isInstalled(){return this.agent.isInstalled()}isProject(){return this.fileSystem.exists(this.getProjectManifestPath())}addDependencies(e,t){return this.agent.addDependencies(e,t)}installDependencies(){return this.agent.installDependencies()}getPackageCommand(e,t=[]){return this.agent.getPackageCommand(e,t)}getScriptCommand(e,t=[]){return this.agent.getScriptCommand(e,t)}async hasDirectDependency(e,t){let n=await this.readManifest(this.getProjectManifestPath());if(n===null)return false;let r=n.dependencies?.[e]??n.devDependencies?.[e];return r===void 0?false:t===void 0||Ac.satisfies(r,t)}async hasDependency(e,t){let n=await this.getDependency(e);return n===null?false:t===void 0||n.version!==null&&Ac.satisfies(n.version,t)}async getDependency(e){let t=this.getPackageManifestPath(e),n=await this.readManifest(t);return n===null?null:{name:n.name,version:n.version??null,directory:this.fileSystem.getDirectoryName(t),metadata:n}}async getScripts(){let e=await this.readManifest(this.getProjectManifestPath());return e===null?{}:e.scripts??{}}async addScript(e,t){let n=this.getProjectManifestPath();if(!await this.fileSystem.exists(n))throw new Se("Package file not found in the project.",{reason:"precondition",details:[`File: ${n}`]});let r=await this.fileSystem.readTextFile(n),i=JsonParser.parse(r,JsonObjectNode);if(i.has("scripts")){let a=i.get("scripts",JsonObjectNode),s=t;if(a.has(e)){let c=a.get(e).toJSON();if(typeof c=="string"&&c.includes(t))return;s=`${c} && ${t}`;}a.set(e,s);}else i.set("scripts",{[e]:t});await this.fileSystem.writeTextFile(n,i.toString(),{overwrite:true});}getPackageManifestPath(e){return this.fileSystem.joinPaths(this.projectDirectory.get(),"node_modules",e,"package.json")}getProjectManifestPath(){return this.fileSystem.joinPaths(this.projectDirectory.get(),"package.json")}async readManifest(e){if(!await this.fileSystem.exists(e))return null;let t;try{t=JSON.parse(await this.fileSystem.readTextFile(e));}catch{return null}let n=await this.packageValidator.validate(t);return n.valid?n.data:null}};var ze=class{constructor(e){this.projectDirectory=e.projectDirectory,this.commandRunner=e.commandExecutor,this.executableLocator=e.executableLocator;}isInstalled(){return this.installed===void 0&&(this.installed=this.getExecutable(this.getCommandName()).then(e=>e!==null)),this.installed}addDependencies(e,t=false){return this.run(this.createAddDependencyCommand(e,t))}installDependencies(){return this.run(this.createInstallDependenciesCommand())}getPackageCommand(e,t){return this.createPackageCommand(e,t)}getScriptCommand(e,t){return this.createScriptCommand(e,t)}async run(e,t={}){if(!await this.isInstalled())throw new Se(`Package manager \`${this.getCommandName()}\` is not installed.`);if(await(await this.commandRunner.run(e,{...t,workingDirectory:this.projectDirectory.get()})).wait()!==0)throw new Se(`Failed to run \`${e.name}\` command.`)}getExecutable(e){return this.executableLocator.locate(e)}};var co=class extends ze{getCommandName(){return "npm"}createPackageCommand(e,t=[]){return Promise.resolve(this.getCommand("npx",["--yes",e,...t]))}createScriptCommand(e,t=[]){return Promise.resolve(this.getCommand(this.getCommandName(),["run",e,...t.length>0?["--",...t]:[]]))}createAddDependencyCommand(e,t){return this.getCommand(this.getCommandName(),["install",...t?["--save-dev"]:[],...e])}createInstallDependenciesCommand(){return this.getCommand(this.getCommandName(),["install"])}getCommand(e,t=[]){return {name:e,arguments:t}}};var lo=class extends ze{getCommandName(){return "yarn"}createPackageCommand(e,t=[]){return Promise.resolve(this.getCommand("npx",["--yes",e,...t]))}createScriptCommand(e,t=[]){return Promise.resolve(this.getCommand(this.getCommandName(),["run",e,...t]))}createAddDependencyCommand(e,t){return this.getCommand(this.getCommandName(),["add",...t?["--dev"]:[],...e])}createInstallDependenciesCommand(){return this.getCommand(this.getCommandName(),["install"])}getCommand(e,t=[]){return {name:e,arguments:t}}};var uo=class extends ze{getCommandName(){return "bun"}createPackageCommand(e,t=[]){return Promise.resolve(this.getCommand(["x",e,...t]))}createScriptCommand(e,t=[]){return Promise.resolve(this.getCommand(["run",e,...t]))}createAddDependencyCommand(e,t){return this.getCommand(["install",...t?["--dev"]:[],...e])}createInstallDependenciesCommand(){return this.getCommand(["install"])}getCommand(e=[]){return {name:this.getCommandName(),arguments:e}}};var mo=class extends ze{getCommandName(){return "pnpm"}createPackageCommand(e,t=[]){return Promise.resolve(this.getCommand(["dlx",e,...t]))}createScriptCommand(e,t=[]){return Promise.resolve(this.getCommand(["run",e,...t]))}createAddDependencyCommand(e,t){return this.getCommand(["install",...t?["--save-dev"]:[],...e])}createInstallDependenciesCommand(){return this.getCommand(["install"])}getCommand(e=[]){return {name:this.getCommandName(),arguments:e}}};var go=class{constructor({projectDirectory:e,fileSystem:t,tsConfigLoader:n}){this.projectDirectory=e,this.fileSystem=t,this.tsConfigLoader=n;}async getImportPath(e,t){let n=this.projectDirectory.get(),r=this.fileSystem.isAbsolutePath(t)?t:this.fileSystem.joinPaths(n,t),i=this.fileSystem.isAbsolutePath(e)?e:this.fileSystem.joinPaths(n,e),a=await this.tsConfigLoader.load(n,{sourcePaths:[r]}),s=/\.m(?:js|ts)?$/.test(i)?i:i.replace(/\.(ts|js)x?$/,"");if(a!==null&&this.fileSystem.isSubPath(n,s)){let c=this.fileSystem.getRelativePath(n,s),l=0,u=null;for(let[f,y]of Object.entries(a.paths)){let k=this.fileSystem.normalizeSeparators(f.replace(/\*$/,""));for(let I of y){let M=I.replace(/\*$/,""),h=this.fileSystem.getRelativePath(n,this.fileSystem.joinPaths(a.baseUrl,M));if(c.startsWith(h)){let O=M.length;if(O>l){l=O;let N=c.slice(h.length).replace(/^[\\/]+/,"");u=k+N;}}}}if(u!==null)return Promise.resolve(u.replace(/\\+/g,"/"))}let p=this.fileSystem.getRelativePath(this.fileSystem.joinPaths(r,".."),s);return Promise.resolve(p.replace(/\\/g,"/"))}};var Mm=z$1.object({extends:z$1.string().optional(),references:z$1.array(z$1.object({path:z$1.string()})).optional(),include:z$1.array(z$1.string()).optional(),compilerOptions:z$1.object({baseUrl:z$1.string().optional(),paths:z$1.record(z$1.array(z$1.string())).optional()}).optional()}),fo=class extends Y{constructor(){super(Mm);}};var wn=class{constructor(e){this.provider=e;}get manager(){return Promise.resolve(this.provider.get()).catch(e=>{throw e instanceof H?new Se(e.message,e.help):e})}async isInstalled(){return (await this.manager).isInstalled()}async isProject(){return (await this.manager).isProject()}async hasDependency(e,t){return (await this.manager).hasDependency(e,t)}async hasDirectDependency(e,t){return (await this.manager).hasDirectDependency(e,t)}async getDependency(e){return (await this.manager).getDependency(e)}async addDependencies(e,t){return (await this.manager).addDependencies(e,t)}async installDependencies(){return (await this.manager).installDependencies()}async getScripts(){return (await this.manager).getScripts()}async addScript(e,t){return (await this.manager).addScript(e,t)}async getScriptCommand(e,t){return (await this.manager).getScriptCommand(e,t)}async getPackageCommand(e,t){return (await this.manager).getPackageCommand(e,t)}};var yo=class{constructor(e){this.map=e;}supports(e){return this.map.has(e)}get(e){let t=this.map.get(e);if(t===void 0)throw new H(`No value found for key \`${e}\`.`,{reason:"not_found"});return Promise.resolve(t)}};var ho=class{isInstalled(){return Promise.resolve(false)}addDependencies(){return this.fail()}installDependencies(){return this.fail()}getPackageCommand(){return this.fail()}getScriptCommand(){return this.fail()}fail(){throw new Se("The package manager is not installed")}};var jt=class{constructor(e,t){this.provider=e,this.fallback=t;}async get(...e){let t=await this.provider.get(...e)??null;return t!==null?t:this.fallback.get(...e)}};var Oe=class{constructor(e){this.callback=e;}get(...e){return this.callback(...e)}};var Wt=class{constructor(e){this.candidates=e.candidates;}async get(...e){for(let{condition:t,value:n}of this.candidates)try{if(await t.test(...e))return typeof n=="object"&&n!==null&&"get"in n?n.get(...e):n}catch{}return null}};var Pn=class{constructor({fileSystem:e,files:t}){this.fileSystem=e,this.files=t;}async test(){return (await Promise.all(this.files.map(t=>this.fileSystem.exists(t)))).some(t=>t)}};var Cn=class{constructor({packageManager:e,dependencies:t}){this.packageManager=e,this.dependencies=t;}async test(){return (await Promise.all(this.dependencies.map(t=>this.packageManager.hasDirectDependency(t)))).some(t=>t)}};var So=class{constructor({packageManager:e}){this.packageManager=e;}test(){return this.packageManager.isProject()}};var _e=class o extends d{constructor(e,t){super(e,t),Object.setPrototypeOf(this,o.prototype);}};var bo=class{constructor(){this.open=true;this.queue=[];}async*[Symbol.asyncIterator](){let e=await this.next();for(;e.done!==true;)yield e.value,e=await this.next();}next(){return this.queue.length>0?Promise.resolve({done:false,value:this.queue.shift()}):this.open?new Promise(e=>{this.resolve=()=>{this.resolve=void 0,this.queue.length===0?e({done:true,value:void 0}):e({done:false,value:this.queue.shift()});};}):Promise.resolve({done:true,value:void 0})}push(e){this.queue.push(e),this.resolve?.();}close(){this.open=false,this.resolve?.();}};var Io=class o{constructor({currentDirectory:e,windows:t=false}){this.currentDirectory=e,this.isWindows=t;}run(e,t={}){let n=t.timeout!==void 0?AbortSignal.timeout(t.timeout):void 0,r=this.prepareCommand(e),i=spawn(r.name,r.arguments,{stdio:["pipe","pipe","pipe"],shell:r.shell,cwd:t?.workingDirectory??this.currentDirectory?.get(),signal:n}),a=[];i.on("error",l=>{for(let u of a)u(n?.aborted===true?new _e("Command timed out.",{reason:"precondition",cause:l}):new _e(`Failed to run command: ${d.formatCause(l)}`,{cause:l}));});let s=new bo;i.stdout.on("data",l=>{s.push(l.toString());}),i.stderr.on("data",l=>{s.push(l.toString());});let p=null,c=[];return i.on("exit",l=>{s.close(),p=l??1;for(let u of c)u(p);}),Promise.resolve({output:s,get running(){return p===null},onExit:l=>(c.push(l),()=>{let u=c.indexOf(l);u!==-1&&c.splice(u,1);}),write:l=>new Promise((u,f)=>{i.stdin.write(l,y=>{y===null?u():f(y);});}),endWriting:()=>new Promise(l=>{if(p!==null){l();return}i.stdin.end(l);}),read:async()=>{let l="";for await(let u of s)l+=u;return l},wait:()=>new Promise((l,u)=>{if(p!==null){l(p);return}a.push(u),i.on("exit",f=>{l(f??1);});}),kill:l=>new Promise((u,f)=>{if(p!==null){u();return}i.stdout.destroy(),i.stderr.destroy(),i.stdin.destroy(),i.kill(l)?(u(),p=1):f(new _e("Failed to kill the subprocess."));})})}runSync(e,t={}){let n=t.timeout!==void 0?AbortSignal.timeout(t.timeout):void 0,r=this.prepareCommand(e),i=spawnSync(r.name,r.arguments,{stdio:["ignore","pipe","pipe"],cwd:t?.workingDirectory??this.currentDirectory?.get(),shell:r.shell,signal:n});if(i.error!==void 0){let{error:p}=i;throw n?.aborted===true?new _e("Command timed out.",{reason:"precondition",cause:p}):new _e(`Failed to run command: ${d.formatCause(p)}`,{cause:p})}let a=i.stdout.toString(),s=i.stderr.toString();return a!==""&&s!==""&&(a=`${a}
@@ -1839,8 +1839,8 @@ ${t.join(`
1839
1839
  ${this.getPreferences(e.protocol).join(`
1840
1840
  `)}`;await this.fileSystem.writeTextFile(n,s,{overwrite:true});let p=o.parseHandlers(a);p.schemes[e.protocol]={ask:true,action:2,handlers:[{name:e.name,path:this.configuration.appPath}]},await this.fileSystem.writeTextFile(r,JSON.stringify(p),{overwrite:true});}async unregister(e){if(!await this.isRegistered(e))return;let t=await this.getProfilePath();if(t===null)return;let n=this.getUserPreferencesFilePath(t),r=this.getHandlersFilePath(t),[i,a]=await Promise.all([await this.fileSystem.readTextFile(n).catch(()=>""),this.fileSystem.readTextFile(r).catch(()=>"")]),s=i.split(`
1841
1841
  `).filter(c=>!this.getPreferences(e).includes(c)).join(`
1842
- `);await this.fileSystem.writeTextFile(n,s,{overwrite:true});let p=o.parseHandlers(a);p.schemes[e]!==void 0&&(delete p.schemes[e],await this.fileSystem.writeTextFile(r,JSON.stringify(p),{overwrite:true}));}getUserPreferencesFilePath(e){return this.fileSystem.joinPaths(e,"user.js")}getHandlersFilePath(e){return this.fileSystem.joinPaths(e,"handlers.json")}async getProfilePath(){let e=this.getPath("profiles.ini");if(!await this.fileSystem.exists(e))return null;let t=Object.values(parse$1(await this.fileSystem.readTextFile(e))),n=[],r=[];for(let a of t)a.Default!==void 0&&n.push(a.Default),a.Path!==void 0&&(a.Default==="1"?r.unshift(a.Path):r.push(a.Path));if(r.length===0)return null;let i=r[0];for(let a of r)if(n.includes(a)){i=a;break}return this.getPath(i)}getPath(e){return this.fileSystem.joinPaths(this.profileDirectory,e)}getPreferences(e){return o.PREFERENCES.map(t=>t.replace(/%protocol%/g,e))}static parseHandlers(e){let t;try{t=JSON.parse(e);}catch{return {schemes:{}}}return typeof t!="object"||t===null?{schemes:{}}:!("schemes"in t)||typeof t.schemes!="object"||t.schemes===null?{...t,schemes:{}}:t}};var ha=class{constructor(e){this.config=e;}async execute(e){let{protocolRegistryProvider:t,io:{output:n}}=this.config,r=await t.get();if(r===null){["optionally-enable","optionally-update"].includes(e.operation)||n.alert("Deep linking is not available on your platform.");return}try{await this.apply(r,e);}catch(i){n.alert(`Deep link error: ${d.formatCause(i)}`);}}apply(e,t){let{io:{output:n}}=this.config;switch(t.operation){case "optionally-enable":return this.optionallyEnable(e,n);case "optionally-update":return this.optionallyUpdate(e,n);case "disable":return this.disable(e,false,n);case "enable":return this.enable(e,false,n)}}async optionallyEnable(e,t){let{protocolHandler:n,io:{input:r}}=this.config;if(!await e.isRegistered(n.protocol)&&await r?.confirm({message:"Turn on deep links to streamline your experience?",default:false})===true)return this.enable(e,true,t)}async enable(e,t,n){let{cliPackage:r,packageManager:i,protocolHandler:a}=this.config;if(!t&&await e.isRegistered(a.protocol)){n?.inform("Deep links are already enabled");return}let s=n?.notify("Enabling deep links");try{let p=await i.getPackageCommand(r,["open","$url"]);await e.register({...a,command:`${p.name} ${(p.arguments??[]).join(" ")}`}),s?.confirm("Deep links enabled");}finally{s?.stop();}}async disable(e,t,n){let{protocolHandler:r}=this.config;if(!t&&!await e.isRegistered(r.protocol)){n?.inform("Deep links are not enabled");return}let i=n?.notify("Disabling deep links");try{await e.unregister(r.protocol),i?.confirm("Deep links disabled");}finally{i?.stop();}}async optionallyUpdate(e,t){let{protocolHandler:n}=this.config;if(!await e.isRegistered(n.protocol))return this.optionallyEnable(e,t);let r=t?.notify("Updating deep links");try{await this.disable(e,!0),await this.enable(e,!0),r?.confirm("Deep links updated");}finally{r?.stop();}}};var Sa=class o{constructor({fileSystem:e,tsconfigValidator:t}){this.fileSystem=e,this.tsConfigValidator=t;}async load(e,t={}){let{fileNames:n=["tsconfig.json","jsconfig.json"]}=t,r=await this.fileSystem.getRealPath(e),i=await this.locateConfig(e,n,true);if(i===null)return null;let a=await this.resolveConfig({rootDirectory:r,configPath:i,fileNames:n,targetDirectories:(t.sourcePaths??[]).map(s=>this.fileSystem.isAbsolutePath(s)?s:this.fileSystem.joinPaths(r,s))});return a===null?null:{rootConfigPath:a.rootConfigPath,matchedConfigPath:a.matchedConfigPath,baseUrl:this.fileSystem.joinPaths(this.fileSystem.getDirectoryName(a.matchedConfigPath),a.compilerOptions?.baseUrl??"."),paths:a.compilerOptions?.paths??{}}}async locateConfig(e,t,n=false){for(let i of t){let a=this.fileSystem.joinPaths(e,i);if(await this.fileSystem.exists(a))return a}if(!n)return null;let r=this.fileSystem.getDirectoryName(e);return r===e?null:this.locateConfig(r,t)}async resolveConfig(e){let{configPath:t,fileNames:n,rootDirectory:r,targetDirectories:i}=e,a=await this.parseConfig(t);if(a?.extends!==void 0){let s=await this.locateParentConfig(r,this.fileSystem.getDirectoryName(t),a.extends);if(s!==null){let p=await this.resolveConfig({...e,configPath:s});p!==null&&(a=o.mergeConfig(a,p));}}if(a?.references!==void 0&&i.length>0){let{references:s,...p}=a;for(let c of a.references){let l=this.fileSystem.joinPaths(this.fileSystem.getDirectoryName(t),c.path),u=l.endsWith(".json")?l:await this.locateConfig(l,n);if(u===null)continue;let f=await this.resolveConfig({...e,configPath:u});if(f?.include!==void 0)for(let y of i){let k=this.fileSystem.joinPaths("./",this.fileSystem.getRelativePath(this.fileSystem.getDirectoryName(u),y));for(let I of f.include){let M=new Minimatch(I,{partial:true,magicalBraces:true});if(!M.hasMagic()&&!I.includes(".")&&(M=new Minimatch(`${I.replace(/\/?$/,"")}/**/*`,{partial:true})),M.match(k))return o.mergeConfig({...f,rootConfigPath:a.rootConfigPath},p)}}}}return a}async locateParentConfig(e,t,n){let r=n;r.endsWith(".json")||(r+=".json");let i=this.fileSystem.joinPaths(t,r);if(await this.fileSystem.exists(i))return i;let a=this.fileSystem.joinPaths(e,"node_modules",r);return await this.fileSystem.exists(a)?a:null}async parseConfig(e){let t;try{t=JsonParser.parse(await this.fileSystem.readTextFile(e)).toJSON();}catch{return null}let n=await this.tsConfigValidator.validate(t);return n.valid?{rootConfigPath:e,matchedConfigPath:e,...n.data}:null}static mergeConfig(e,t){return {...t,...e,compilerOptions:{...t.compilerOptions,...e.compilerOptions}}}};var ba=class{constructor({commandExecutor:e,executableLocator:t}){this.executableLocator=t,this.commandExecutor=e;}async run(e,t={}){let n=await this.executableLocator.locate(e.name);if(n===null)throw new _e(`Unable to locate executable for command \`${e.name}\`.`);return this.commandExecutor.run({...e,name:n},t)}};var Ia=class o{constructor(e){this.instances=new Map;this.configuration=e,this.skipPrompts=e.skipPrompts,this.initialDirectory=e.directories.current??e.process.getCurrentDirectory(),this.workingDirectory=new Go(this.initialDirectory);}static{this.READ_ONLY_COMMANDS=new Set([Tn,rn,on,At,Et,tn,nn,pn,Qt]);}static fromDefaults(e){let t=sd("com.croct.cli"),n=new Xo;return new o({program:e.program??(()=>{throw new d("CLI is running in standalone mode.")}),process:e.process??n,quiet:e.quiet??false,debug:e.debug??false,interactive:e.interactive??!pd.isCI,version:e.version??"0.0.0",apiKey:e.apiKey,skipPrompts:e.skipPrompts??false,adminTokenDuration:e.adminTokenDuration??7*ft.LocalTime.SECONDS_PER_DAY,apiKeyTokenDuration:e.apiKeyTokenDuration??30*ft.LocalTime.SECONDS_PER_MINUTE,cliTokenDuration:e.cliTokenDuration??90*ft.LocalTime.SECONDS_PER_DAY,cliTokenFreshPeriod:e.cliTokenFreshPeriod??15*ft.LocalTime.SECONDS_PER_DAY,cliTokenIssuer:e.cliTokenIssuer??"croct.com",deepLinkProtocol:e.deepLinkProtocol??"croct",templateRegistryUrl:e.templateRegistryUrl??new URL("github:/croct-tech/templates/templates/registry.json5"),adminUrl:e.adminUrl??new URL("https://app.croct.com"),adminTokenParameter:e.adminTokenParameter??"accessToken",adminGraphqlEndpoint:e?.adminGraphqlEndpoint??new URL("https://app.croct.com/graphql"),directories:{current:e.directories?.current??n.getCurrentDirectory(),config:e.directories?.config??t.config(),cache:e.directories?.cache??t.cache(),data:e.directories?.data??t.data(),home:e.directories?.home??homedir()},verificationLinkDestination:{accountActivation:e.verificationLinkDestination?.accountActivation??"./cli",passwordReset:e.verificationLinkDestination?.passwordReset??"./cli"},emailSubject:{passwordReset:e.emailSubject?.passwordReset??"Forgot password",accountActivation:e.emailSubject?.accountActivation??"Welcome to Croct"}})}welcome(e){return this.execute(new Tn({version:this.configuration.version,configurationProvider:this.getCliConfigurationProvider(),deepLinkInstaller:t=>this.deepLink({operation:t?"optionally-update":"optionally-enable"})}),e)}deepLink(e){return this.execute(new ha({packageManager:this.getNodePackageManager(),protocolRegistryProvider:this.getProtocolRegistryProvider(),configurationProvider:this.getCliConfigurationProvider(),cliPackage:"croct@latest",protocolHandler:{id:"com.croct.cli",name:"croct-cli",protocol:this.configuration.deepLinkProtocol},io:{input:this.getInput(),output:this.getOutput()}}),e)}open(e){return this.execute(new Mo({program:this.configuration.program,protocol:this.configuration.deepLinkProtocol,configurationProvider:this.getCliConfigurationProvider(),workingDirectory:new Ko(this.configuration.process),fileSystem:this.getFileSystem(),io:{input:this.getInput(),output:this.getOutput()}}),e)}init(e){return this.execute(new rr({sdkProvider:this.getSdkProvider(),platformProvider:this.getPlatformProvider(),configurationManager:this.getConfigurationManager(),skipConfirmation:new Ao(new Rn(new An(new Pn({fileSystem:this.getFileSystem(),files:[".git"]})))),api:{user:this.getUserApi(),organization:this.getOrganizationApi(),workspace:this.getWorkspaceApi()},form:{organization:new pr({input:this.getFormInput(),output:this.getOutput(),userApi:this.getUserApi()}),workspace:new cr({input:this.getFormInput(),output:this.getOutput(),organizationApi:this.getOrganizationApi()}),application:new lr({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),slot:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()})},io:{input:this.getInput(),output:this.getOutput()}}),e)}install(e){return this.execute(new rn({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),io:{input:this.getInput(),output:this.getOutput()}}),e)}upgrade(e){return this.execute(new on({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),form:{slotForm:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),componentForm:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()})},io:{input:this.getInput(),output:this.getOutput()}}),e)}addSlot(e){return this.execute(new At({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),workspaceApi:this.getWorkspaceApi(),slotForm:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}removeSlot(e){return this.execute(new tn({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),slotForm:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}addComponent(e){return this.execute(new Et({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),componentForm:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}removeComponent(e){return this.execute(new nn({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),componentForm:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}login(e){return this.execute(new ir({authenticator:this.getAuthenticator()}),e)}logout(){return this.execute(new Qt({authenticator:this.getAuthenticator(),output:this.getOutput()}),{})}admin(e){return this.execute(new fr({output:this.getOutput(),pageForm:new Cr({input:this.getFormInput()}),configurationManager:this.getConfigurationManager(),userApi:this.getUserApi(),adminUrl:this.configuration.adminUrl,adminTokenParameter:this.configuration.adminTokenParameter,adminTokenDuration:this.configuration.adminTokenDuration}),e)}createTemplate(e){return this.execute(new pn({configurationManager:this.getConfigurationManager(),fileSystem:this.getFileSystem(),templateForm:new Vr({input:this.getFormInput(),form:{component:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),slot:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),experience:new Ur({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),audience:new qr({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()})}}),io:{input:this.getInput(),output:this.getOutput()}}),e)}useTemplate(e){return this.execute(this.getUseTemplateCommand(),e)}async getTemplateOptions(e){let t=this.getUseTemplateCommand(),r=this.getOutput().notify("Loading template");try{return await t.getOptions(e)}finally{r.stop();}}getUseTemplateCommand(){return new Hr({templateProvider:new Nt({provider:new mn(this.getTemplateProvider()),validator:new hn}),fileSystem:this.getFileSystem(),action:this.getImportAction(),io:{input:this.getInput(),output:this.getOutput()}})}createApiKey(e){return this.execute(new qo({fileSystem:this.getFileSystem(),configurationManager:this.getConfigurationManager(),api:{user:this.getUserApi(),workspace:this.getWorkspaceApi(),application:this.getApplicationApi()},io:{input:this.getFormInput(),output:this.getOutput()}}),e)}getFormInput(e){return this.getInput()??this.getNonInteractiveInput(e)}getNonInteractiveInput(e){return new En(new Ar(e??{message:"Input is not available in non-interactive mode."}))}getInput(){if(this.configuration.interactive)return this.share(this.getInput,()=>{let e=this.getOutput(),t=new Kn({input:this.configuration.process.getStandardInput(),output:this.configuration.process.getStandardOutput(),onAbort:()=>e.exit(),onInteractionStart:()=>e.suspend(),onInteractionEnd:()=>e.resume()});return this.skipPrompts?new En(t):t})}getNonInteractiveOutput(e=false){let{configuration:t}=this;return new Jt({output:t.process.getStandardOutput(),formatter:this.getLogFormatter(),interactive:false,quiet:e,onExit:()=>t.process.exit(),linkOpener:async n=>{await $c(n,{wait:true});}})}getHierarchicalLogger(){return this.share(this.getHierarchicalLogger,()=>new sa(this.getLogger()))}getLogger(){return this.share(this.getLogger,()=>{let e=new pa(this.getOutput());return this.configuration.debug?e:new FilteredLogger(e,LogLevel.WARNING)})}getOutput(){return this.share(this.getOutput,()=>{let{configuration:e}=this;return new Jt({output:e.process.getStandardOutput(),formatter:this.getLogFormatter(),interactive:this.configuration.interactive,quiet:this.configuration.quiet,onExit:()=>e.process.exit(),linkOpener:async t=>{await $c(t);}})})}getLogFormatter(){return this.share(this.getLogFormatter,()=>new Bo)}getTemplateProvider(){return this.share(this.getTemplateProvider,()=>{let e=n=>new et(...["template.json5","template.json"].map(r=>new Mt({dataProvider:n,registryProvider:new xn([{pattern:/^(https:\/\/(?:www\.)?github.com\/[^/]+\/[^/]+)\/?$/,destination:`$1/blob/main/${r}`},{pattern:/^(.+?:\/*[^/]+(\/+[^/.]+|\/[^/]+(?=\/))*)\/*$/,destination:`$1/${r}`}])}))),t=this.traceProvider({provider:this.getHttpProvider()});return this.traceProvider({label:"TemplateProvider",provider:new gn({resourceCache:new AutoSaveCache(new InMemoryCache),errorCache:new InMemoryCache,provider:new et(new Mt({dataProvider:this.traceProvider({label:"ResourceProvider",provider:e(new dt(new et(this.traceProvider({provider:new cn(t)}),this.traceProvider({provider:new ln(t)}))))}),registryProvider:this.traceProvider({label:"NpmRegistryProvider",provider:new na(new Nt({provider:ra.json(this.traceProvider({provider:this.getHttpProvider()})),validator:new ia}))})}),e(new dt(this.getFileProvider())))})})})}getFileProvider(){return this.share(this.getFileProvider,()=>{let e=this.traceProvider({provider:this.getHttpProvider()}),t=this.traceProvider({provider:new ai(this.getFileSystem())}),n=new et(t,this.traceProvider({provider:new cn(e)}),this.traceProvider({provider:new ln(e)}));return this.traceProvider({label:"FileProvider",provider:new et(t,this.traceProvider({provider:new Mt({baseUrl:new URL("./",this.configuration.templateRegistryUrl),dataProvider:this.traceProvider({label:"ResourceProvider",provider:n}),registryProvider:new Li({url:this.configuration.templateRegistryUrl,provider:this.traceProvider({label:"GlobalRegistryProvider",provider:new gn({errorCache:new InMemoryCache,resourceCache:new AutoSaveCache(new InMemoryCache),provider:new Nt({provider:new mn(new dt(n)),validator:new li})})})})})}))})})}traceProvider({provider:e,label:t}){return new aa({label:t,provider:e,logger:this.getHierarchicalLogger()})}getImportAction(){return this.share(this.getImportAction,()=>{let e=this.getFileSystem(),t={run:new F({action:new Xe(new Oe(()=>new Ji(t))),validator:new Qi}),try:new F({action:new Xe(new Oe(()=>new Yr(t.run))),validator:new yi}),test:new F({action:new Xe(new Oe(()=>new Oi(t.run))),validator:new Di}),repeat:new F({action:new Xe(new Oe(()=>new Eo(t.run))),validator:new Ro}),print:new F({action:new Mi,validator:new $i}),fail:new F({action:new zi,validator:new _i}),define:new F({action:new eo,validator:new Xi}),prompt:new F({action:new qi,validator:new Hi}),"change-directory":new F({action:new ao({fileSystem:e,rootDirectory:this.initialDirectory,currentDirectory:this.workingDirectory}),validator:new oo}),"open-link":new F({action:new Bi,validator:new Yi}),"start-server":new F({action:new Gi({serverProvider:this.getServerProvider()}),validator:new Zi}),"stop-server":new F({action:new to({serverProvider:this.getServerProvider()}),validator:new no}),"execute-package":new F({action:new so({packageManager:this.getPackageManager(),packageManagerProvider:this.getPackageManagerRegistry(),workingDirectory:this.workingDirectory,commandExecutor:this.getAsynchronousCommandExecutor(),commandTimeout:2*60*1e3,sourceChecker:{test:n=>n.protocol==="file:"||`${n}`.startsWith("https://github.com/croct-tech")}}),validator:new po}),"check-dependencies":new F({action:new oi({packageManager:this.getPackageManager()}),validator:new hi}),download:new F({action:new Gr({fileSystem:e,provider:this.getFileProvider(),codemod:new la({codemods:{"**/*.{js,jsx,ts,tsx}":new da(new ca({fileSystem:e,rootPath:this.workingDirectory,maxSearchDepth:10,importResolver:this.getNodeImportResolver(),importCodemod:new Ue({fileSystem:e,codemod:new We({languages:["typescript","jsx"],codemod:new ma})}),exportMatcher:{test:(n,{names:r})=>r.length===0?true:Dc(n).some(i=>r.includes(i))}}),new Ve(this.getJavaScriptFormatter()))}})}),validator:new Si}),"add-dependency":new F({action:new Kr({packageManager:this.getPackageManager()}),validator:new Ii}),"locate-file":new F({action:new Zr({projectDirectory:this.workingDirectory,fileSystem:e,matcherProvider:{get:async n=>{let r=e.joinPaths(this.workingDirectory.get(),".gitignore"),i=Po.fromPattern(n);if(await e.exists(r)){let a=await e.readTextFile(r);return new Co(new An(ko.fromPatterns(a)),i)}return i}}}),validator:new xi}),"replace-file-content":new F({action:new Jr({fileSystem:e}),validator:new vi}),initialize:new F({action:new ea({callback:()=>this.init({})}),validator:new ta}),"add-slot":new F({action:new Qr({installer:(n,r)=>{let i=this.getNonInteractiveOutput(true);return this.execute(new At({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),workspaceApi:this.getWorkspaceApi(),slotForm:new qe({input:this.getNonInteractiveInput(),output:i,workspaceApi:this.getWorkspaceApi()}),io:{output:i}}),{slots:n,example:r})}}),validator:new Pi}),"add-component":new F({action:new Br({installer:n=>{let r=this.getNonInteractiveOutput(true);return this.execute(new Et({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),componentForm:new Ye({input:this.getNonInteractiveInput(),output:r,workspaceApi:this.getWorkspaceApi()}),io:{output:r}}),{components:n})}}),validator:new Ci}),"create-resource":new F({action:new ti({configurationManager:this.getConfigurationManager(),matcher:new ri({workspaceApi:this.getWorkspaceApi()}),api:{user:this.getUserApi(),workspace:this.getWorkspaceApi(),organization:this.getOrganizationApi()},mappingForm:new ni({input:this.getFormInput({message:"Some resource IDs are in use and interactive mode is required to assign new ones.",suggestions:["Retry in interactive mode"]}),workspaceApi:this.getWorkspaceApi()})}),validator:new ki}),"format-code":new F({action:new Ei({formatter:this.getCodeFormatter()}),validator:new Ri}),import:new F({action:new Xe(new Oe(()=>new di({runner:t.run,templateProvider:new fi({evaluator:new ui({functions:rs}),validator:new hn,templateProvider:this.getTemplateProvider(),fileProvider:new dt(this.getFileProvider())}),variables:this.getActionVariables()}))),validator:new Ai})};return t.import})}getActionVariables(){let e=t=>new URL(t,this.configuration.adminUrl).toString();return {project:{features:ce.transient(async()=>{let{organization:t,workspace:n}=await this.getConfigurationManager().load(),{features:r}=await this.getWorkspaceApi().getFeatures({organizationSlug:t,workspaceSlug:n})??{};return r??{}}),quotas:ce.transient(async()=>{let{organization:t,workspace:n}=await this.getConfigurationManager().load(),{quotas:r}=await this.getWorkspaceApi().getFeatures({organizationSlug:t,workspaceSlug:n})??{};return r??{}}),organization:ce.transient(async()=>{let{organization:t}=await this.getConfigurationManager().load();return {slug:t,url:e(`organizations/${t}`)}}),workspace:ce.transient(async()=>{let{organization:t,workspace:n}=await this.getConfigurationManager().load();return {slug:n,url:e(`organizations/${t}/workspaces/${n}`)}}),application:ce.transient(async()=>{let{organization:t,workspace:n,applications:r}=await this.getConfigurationManager().load(),i=`organizations/${t}/workspaces/${n}/applications/`;return {development:{slug:r.development,url:e(i+r.development)},production:{slug:r.production,url:e(i+r.production)}}}),path:ce.transient(async()=>{let t=this.getSdk(),n=await this.getConfigurationManager().load();return t.getPaths(n)}),platform:ce.transient(async()=>await this.getPlatformProvider().get()??"unknown"),server:ce.transient(async()=>{let n=await this.getServerProvider().get();if(n===null)return null;try{let r=await n.getStatus();if(r.running)return {running:!0,url:r.url.toString()}}catch{}return {running:false}})}}}getHttpProvider(){return this.share(this.getHttpProvider,()=>new ii)}getAuthenticator(){return this.share(this.getAuthenticator,()=>{if(this.configuration.apiKey!==void 0)return new Ho({apiKey:this.configuration.apiKey,clock:this.getClock(),tokenDuration:this.configuration.apiKeyTokenDuration});let e=this.getFormInput(),t=new mr({input:e,output:this.getOutput(),userApi:this.getUserApi(true),form:{signIn:new dr({input:e,output:this.getOutput(),userApi:this.getUserApi(true),listener:this.getTokenListener(),tokenDuration:this.configuration.cliTokenDuration,emailLinkGenerator:{recovery:this.createEmailLinkGenerator(this.configuration.emailSubject.passwordReset),verification:this.createEmailLinkGenerator(this.configuration.emailSubject.accountActivation)},verificationLinkDestination:{accountActivation:this.configuration.verificationLinkDestination.accountActivation,passwordReset:this.configuration.verificationLinkDestination.passwordReset}}),signUp:new gr({input:e,output:this.getOutput(),userApi:this.getUserApi(true),listener:this.getTokenListener(),emailLinkGenerator:this.createEmailLinkGenerator(this.configuration.emailSubject.accountActivation),verificationLinkDestination:this.configuration.verificationLinkDestination.accountActivation})}}),n=this.getUserApi(true),r=new Zo({cacheKey:"token",cacheProvider:new Jo({clock:this.getClock(),clockSkewTolerance:5,tokenFreshPeriod:this.configuration.cliTokenFreshPeriod,tokenIssuer:()=>n.issueToken({duration:this.configuration.cliTokenDuration}),cacheProvider:new dn({fileSystem:this.getFileSystem(),directory:this.configuration.directories.config,useKeyAsFileName:true})}),authenticator:new Er({default:this.configuration.interactive?t:new kr({authenticator:t,instruction:{message:"Authentication required.",suggestions:["Run `login` to authenticate"],reason:"precondition"}}),credentials:t})});return this.configuration.interactive?new Wo({authenticator:r,invitationForm:new jo({output:this.getOutput(),input:e,userApi:this.getUserApi(true)})}):r})}getSdk(){return this.share(this.getSdk,()=>{let e=new jt(this.getSdkProvider(),new Oe(()=>{throw new H("No suitable SDK detected.",{reason:"not_supported",suggestions:["Make sure you are running the command in the project root directory."]})}));return new vo(e)})}getSdkProvider(){return this.share(this.getSdkProvider,()=>{let e=this.getJavaScriptFormatter(),t=this.getFileSystem(),n=this.getNodeImportResolver(),r={projectDirectory:this.workingDirectory,packageManager:this.getNodePackageManager(),fileSystem:t,formatter:e,workspaceApi:this.getWorkspaceApi(),tsConfigLoader:this.getTsConfigLoader()},i=Symbol("unknown");return new Lt({discriminator:async()=>await this.getPlatformProvider().get()??i,mapping:{javascript:()=>new Yn({...r,bundlers:["vite","parcel","tsup","rollup"]}),react:()=>new Xn({...r,importResolver:n,codemod:{provider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:true,wrapper:{module:"@croct/plug-react",component:"CroctProvider"},targets:{variable:"children"}})})}))},bundlers:[{package:"react-scripts",prefix:"process.env.REACT_APP_"},{package:"vite",prefix:"import.meta.env.VITE_"},{package:"parcel",prefix:"process.env."}]}),nextjs:()=>{let a={appId:{type:"reference",path:["process","env","NEXT_PUBLIC_CROCT_APP_ID"]},debug:{type:"comparison",operator:"===",left:{type:"reference",path:["process","env","NEXT_PUBLIC_CROCT_DEBUG"]},right:{type:"literal",value:"true"}}};return new nr({...r,userApi:this.getUserApi(),applicationApi:this.getApplicationApi(),importResolver:n,codemod:{middleware:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new Ir({import:{module:"@croct/plug-next/middleware",middlewareName:"middleware",middlewareFactoryName:"withCroct",configName:"config",matcherName:"matcher",matcherLocalName:"croctMatcher"}})})})),appRouterProvider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:false,fallbackCodemod:new xr({provider:{component:"CroctProvider",module:"@croct/plug-next/CroctProvider"}}),wrapper:{module:"@croct/plug-next/CroctProvider",component:"CroctProvider"},targets:{variable:"children"}})})})),pageRouterProvider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:false,fallbackCodemod:new en({provider:{component:"CroctProvider",module:"@croct/plug-next/CroctProvider"}}),wrapper:{module:"@croct/plug-next/CroctProvider",component:"CroctProvider"},targets:{component:"Component"}})})})),fallbackProvider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:false,fallbackCodemod:new en({provider:{component:"CroctProvider",module:"@croct/plug-react",props:a}}),wrapper:{module:"@croct/plug-react",component:"CroctProvider",props:a},targets:{component:"Component"}})})}))}})},[i]:()=>null}})})}getCodeFormatter(){return this.share(this.getCodeFormatter,()=>{let e=Symbol("unknown");return new xo(new Lt({discriminator:async()=>await this.getPlatformProvider().get()??e,mapping:{javascript:()=>this.getJavaScriptFormatter(),react:()=>this.getJavaScriptFormatter(),nextjs:()=>this.getJavaScriptFormatter(),[e]:()=>{throw new H("No code formatter detected.",{reason:"not_supported",suggestions:["Make sure you are running the command in the project root directory."]})}}}))})}share(e,t){let n=this.instances.get(e);if(n===void 0){let r=t();return this.instances.set(e,r),r}return n}getPackageManagerRegistry(){return this.share(this.getPackageManagerRegistry,()=>new yo(new Map(Object.entries(this.getPackageManagers()))))}getPackageManagers(){return this.getNodePackageManagers()}getPackageManager(){return this.share(this.getPackageManager,()=>new wn(new jt(this.getNodePackageManagerProvider(),new Oe(()=>{throw new H("No package manager detected.",{reason:"not_supported",suggestions:["Make sure you are running the command in the project root directory.","Initialize your project and retry the command."]})}))))}getNodePackageManager(){return this.share(this.getNodePackageManager,()=>{let e=this.getNodePackageManagers();return new wn(new jt(this.getNodePackageManagerProvider(),new xn(e.npm)))})}getNodePackageManagerProvider(){return this.share(this.getNodePackageManagerProvider,()=>{let e=this.getNodePackageManagers(),t=this.getFileSystem(),n={npm:["package-lock.json"],yarn:["yarn.lock"],bun:["bun.lock","bun.lockb"],pnpm:["pnpm-lock.yaml"]};return new kn(new Fo(new Wt({candidates:Object.entries(e).map(([r,i])=>({value:i,condition:new Lo({process:this.configuration.process,variable:"npm_config_user_agent",value:new RegExp(`^${r}`)})}))}),new Wt({candidates:Object.entries(e).map(([r,i])=>({value:i,condition:new Rn(new _o({packageManager:r,fileSystem:t,projectDirectory:this.workingDirectory}),new Pn({fileSystem:t,files:n[r]}))}))})),this.workingDirectory)})}getNodePackageManagers(){return this.share(this.getNodePackageManagers,()=>{let e=this.getFileSystem(),t={projectDirectory:this.workingDirectory,fileSystem:e,commandExecutor:this.getAsynchronousCommandExecutor(),executableLocator:this.getExecutableLocator()},n=new un,r={fileSystem:e,projectDirectory:this.workingDirectory,packageValidator:n};return {npm:new tt({...r,agent:new co(t)}),yarn:new tt({...r,agent:new lo(t)}),bun:new tt({...r,agent:new uo(t)}),pnpm:new tt({...r,agent:new mo(t)})}})}getNodeServerProvider(){return this.share(this.getNodeServerProvider,()=>new Fi({packageManager:this.getNodePackageManager(),factory:this.getServerFactory(),parsers:[new ji,new Wi,new Vi,new Ui]}))}getServerProvider(){return this.share(this.getServerProvider,()=>{let e=Symbol("unknown");return new Lt({discriminator:async()=>await this.getPlatformProvider().get()??e,mapping:{javascript:()=>this.getNodeServerProvider().get(),react:()=>this.getNodeServerProvider().get(),nextjs:()=>this.getNodeServerProvider().get(),[e]:()=>null}})})}getServerFactory(){return this.share(this.getServerFactory,()=>new wo(new io({commandExecutor:this.getAsynchronousCommandExecutor(),workingDirectory:this.workingDirectory,startupTimeout:2e4,startupCheckDelay:1500,lookupMaxPorts:30,lookupTimeout:2e3,processObserver:this.configuration.process})))}getJavaScriptFormatter(){return this.share(this.getJavaScriptFormatter,()=>new wr({commandExecutor:this.getAsynchronousCommandExecutor(),workingDirectory:this.workingDirectory,packageManager:this.getNodePackageManager(),fileSystem:this.getFileSystem(),timeout:1e4,tools:[{package:"eslint",bin:"eslint",args:e=>["--fix",...e]},{package:"prettier",args:e=>["--write",...e]},{package:"@biomejs/biome",bin:"biome",args:e=>["format","--write",...e]}]}))}getNodeImportResolver(){return this.share(this.getNodeImportResolver,()=>new go({fileSystem:this.getFileSystem(),tsConfigLoader:this.getTsConfigLoader(),projectDirectory:this.workingDirectory}))}getTsConfigLoader(){return this.share(this.getTsConfigLoader,()=>new Sa({fileSystem:this.getFileSystem(),tsconfigValidator:new fo}))}getAsynchronousCommandExecutor(){return this.share(this.getAsynchronousCommandExecutor,()=>new ba({executableLocator:this.getExecutableLocator(),commandExecutor:this.getCommandExecutor()}))}getSynchronousCommandExecutor(){return this.getCommandExecutor()}getCommandExecutor(){return this.share(this.getCommandExecutor,()=>new Io({currentDirectory:this.workingDirectory,windows:this.configuration.process.getPlatform()==="win32"}))}getExecutableLocator(){return this.share(this.getExecutableLocator,()=>{let{process:e}=this.configuration;return new zo({fileSystem:this.getFileSystem(),cache:new AutoSaveCache(new InMemoryCache),executablePaths:e.getEnvList("PATH")??[],executableExtensions:e.getEnvList("PATHEXT")??[]})})}getPlatformProvider(){return this.share(this.getPlatformProvider,()=>{let e=new tt({projectDirectory:this.workingDirectory,packageValidator:new un,fileSystem:this.getFileSystem(),agent:new ho});return new kn(new Wt({candidates:[{value:"nextjs",condition:new Cn({packageManager:e,dependencies:["next"]})},{value:"react",condition:new Cn({packageManager:e,dependencies:["react"]})},{value:"javascript",condition:new So({packageManager:e})}]}),this.workingDirectory)})}getConfigurationManager(){return this.share(this.getConfigurationManager,()=>{let e=this.getOutput(),t=new or({fileSystem:this.getFileSystem(),validator:new pi,projectDirectory:this.workingDirectory});return new $o({workingDirectory:this.workingDirectory,configurationProvider:this.getCliConfigurationProvider(),manager:new Xr(this.configuration.interactive&&!this.isReadOnlyMode()?new Pr({manager:t,initializer:{initialize:async()=>{await this.init({}),e.break();}}}):t)})})}getUserApi(e=false){return e?new Xt(this.getGraphqlClient(true)):this.share(this.getUserApi,()=>new Xt(this.getGraphqlClient()))}getOrganizationApi(){return this.share(this.getOrganizationApi,()=>new ar(this.getGraphqlClient(),this.getHierarchyResolver()))}getWorkspaceApi(){return this.share(this.getWorkspaceApi,()=>new sr(this.getGraphqlClient(),this.getHierarchyResolver()))}getApplicationApi(){return this.share(this.getApplicationApi,()=>new ur(this.getGraphqlClient(),this.getHierarchyResolver()))}getHierarchyResolver(){return this.share(this.getHierarchyResolver,()=>{let e=this.getFileSystem();return new ga(this.getGraphqlClient(),AdaptedCache.transformValues(new dn({fileSystem:e,directory:e.joinPaths(this.configuration.directories.cache,"hierarchy")}),AdaptedCache.jsonSerializer(),AdaptedCache.jsonDeserializer()))})}getGraphqlClient(e=false){return e?new Bt({endpoint:this.configuration.adminGraphqlEndpoint,tokenProvider:{getToken:()=>this.getAuthenticator().getToken()}}):this.share(this.getGraphqlClient,()=>{let t=this.getAuthenticator();return new Bt({endpoint:this.configuration.adminGraphqlEndpoint,tokenProvider:{getToken:async()=>await t.getToken()??t.login({method:"default"})}})})}getTokenListener(){return this.share(this.getTokenListener,()=>{let{configuration:e}=this;return new Dr({platform:e.process.getPlatform(),commandExecutor:this.getSynchronousCommandExecutor(),timeout:2e3,listener:new Qo({api:this.getUserApi(true),pollingInterval:1e3})})})}getFileSystem(){return this.share(this.getFileSystem,()=>new Tr({workingDirectory:this.workingDirectory,defaultEncoding:"utf-8"}))}createEmailLinkGenerator(e){let t=this.getEmailLinkGenerator(),n=this.getClock();return r=>t.generate({recipient:r,sender:"croct.com",subject:e,timestamp:ft.Instant.now(n).getSeconds()})}getEmailLinkGenerator(){return this.share(this.getEmailLinkGenerator,()=>new Mr({detector:new Nr(new $r,new zr),templates:{google:new _r,icloud:new Lr,microsoft:new Fr,proton:new jr,yahoo:new Wr}}))}getClock(){return zc.SystemClock.UTC}getProtocolRegistryProvider(){return this.share(this.getProtocolRegistryProvider,()=>new Oe(()=>{let e=this.getFileSystem(),{process:t}=this.configuration;switch(t.getPlatform()){case "darwin":{let n=e.joinPaths(this.configuration.directories.data,"apps");return new fa({output:this.getOutput(),macOsRegistry:new Oo({fileSystem:e,appDirectory:n,commandExecutor:this.getAsynchronousCommandExecutor()}),firefoxRegistry:ya.macOs({fileSystem:e,homeDirectory:this.configuration.directories.home,appPath:e.joinPaths(n,`${this.configuration.deepLinkProtocol}.app`)})})}case "win32":return new To({commandExecutor:this.getAsynchronousCommandExecutor()});case "linux":return new Do({fileSystem:e,homeDirectory:this.configuration.directories.home,commandExecutor:this.getAsynchronousCommandExecutor()});default:return null}}))}getCliConfigurationProvider(){return this.share(this.getCliConfigurationProvider,()=>{let e=this.getFileSystem();return new Uo({fileSystem:e,configurationProvider:new Vo({fileSystem:e,validator:new No,filePath:e.joinPaths(this.configuration.directories.config,"config.json")})})})}async execute(e,t){if(this.isReadOnlyMode()&&!o.READ_ONLY_COMMANDS.has(e.constructor))return this.reportError(new d("This command does not support API key authentication.",{reason:"precondition",suggestions:["Run the command without specifying an API key."]}));try{await e.execute(t);}catch(n){let r=o.handleError(n);return n instanceof Error&&r instanceof Error&&(r.stack=n.stack),this.reportError(r)}}isReadOnlyMode(){return this.configuration.apiKey!==void 0}reportError(e){let t=this.getOutput();return t.report(o.handleError(e)),t.exit()}static handleError(e){switch(true){case e instanceof re:if(e.isAccessDenied())return new d("Your user lacks the necessary permissions to complete this operation.",{reason:"access_denied",details:e.problems.map(t=>t.detail??t.title),suggestions:["Contact your organization or workspace administrator for assistance."],cause:e});break;case e instanceof x:if(e.tracing.length>0){let t=e.tracing.map(({name:n,source:r},i)=>{let a=r!==void 0?` at ${o.getSourceLocation(r)}`:"";return `${" ".repeat(i+1)}\u21B3 \`${n}\`${a}`}).join(`
1842
+ `);await this.fileSystem.writeTextFile(n,s,{overwrite:true});let p=o.parseHandlers(a);p.schemes[e]!==void 0&&(delete p.schemes[e],await this.fileSystem.writeTextFile(r,JSON.stringify(p),{overwrite:true}));}getUserPreferencesFilePath(e){return this.fileSystem.joinPaths(e,"user.js")}getHandlersFilePath(e){return this.fileSystem.joinPaths(e,"handlers.json")}async getProfilePath(){let e=this.getPath("profiles.ini");if(!await this.fileSystem.exists(e))return null;let t=Object.values(parse(await this.fileSystem.readTextFile(e))),n=[],r=[];for(let a of t)a.Default!==void 0&&n.push(a.Default),a.Path!==void 0&&(a.Default==="1"?r.unshift(a.Path):r.push(a.Path));if(r.length===0)return null;let i=r[0];for(let a of r)if(n.includes(a)){i=a;break}return this.getPath(i)}getPath(e){return this.fileSystem.joinPaths(this.profileDirectory,e)}getPreferences(e){return o.PREFERENCES.map(t=>t.replace(/%protocol%/g,e))}static parseHandlers(e){let t;try{t=JSON.parse(e);}catch{return {schemes:{}}}return typeof t!="object"||t===null?{schemes:{}}:!("schemes"in t)||typeof t.schemes!="object"||t.schemes===null?{...t,schemes:{}}:t}};var ha=class{constructor(e){this.config=e;}async execute(e){let{protocolRegistryProvider:t,io:{output:n}}=this.config,r=await t.get();if(r===null){["optionally-enable","optionally-update"].includes(e.operation)||n.alert("Deep linking is not available on your platform.");return}try{await this.apply(r,e);}catch(i){n.alert(`Deep link error: ${d.formatCause(i)}`);}}apply(e,t){let{io:{output:n}}=this.config;switch(t.operation){case "optionally-enable":return this.optionallyEnable(e,n);case "optionally-update":return this.optionallyUpdate(e,n);case "disable":return this.disable(e,false,n);case "enable":return this.enable(e,false,n)}}async optionallyEnable(e,t){let{protocolHandler:n,io:{input:r}}=this.config;if(!await e.isRegistered(n.protocol)&&await r?.confirm({message:"Turn on deep links to streamline your experience?",default:false})===true)return this.enable(e,true,t)}async enable(e,t,n){let{cliPackage:r,packageManager:i,protocolHandler:a}=this.config;if(!t&&await e.isRegistered(a.protocol)){n?.inform("Deep links are already enabled");return}let s=n?.notify("Enabling deep links");try{let p=await i.getPackageCommand(r,["open","$url"]);await e.register({...a,command:`${p.name} ${(p.arguments??[]).join(" ")}`}),s?.confirm("Deep links enabled");}finally{s?.stop();}}async disable(e,t,n){let{protocolHandler:r}=this.config;if(!t&&!await e.isRegistered(r.protocol)){n?.inform("Deep links are not enabled");return}let i=n?.notify("Disabling deep links");try{await e.unregister(r.protocol),i?.confirm("Deep links disabled");}finally{i?.stop();}}async optionallyUpdate(e,t){let{protocolHandler:n}=this.config;if(!await e.isRegistered(n.protocol))return this.optionallyEnable(e,t);let r=t?.notify("Updating deep links");try{await this.disable(e,!0),await this.enable(e,!0),r?.confirm("Deep links updated");}finally{r?.stop();}}};var Sa=class o{constructor({fileSystem:e,tsconfigValidator:t}){this.fileSystem=e,this.tsConfigValidator=t;}async load(e,t={}){let{fileNames:n=["tsconfig.json","jsconfig.json"]}=t,r=await this.fileSystem.getRealPath(e),i=await this.locateConfig(e,n,true);if(i===null)return null;let a=await this.resolveConfig({rootDirectory:r,configPath:i,fileNames:n,targetDirectories:(t.sourcePaths??[]).map(s=>this.fileSystem.isAbsolutePath(s)?s:this.fileSystem.joinPaths(r,s))});return a===null?null:{rootConfigPath:a.rootConfigPath,matchedConfigPath:a.matchedConfigPath,baseUrl:this.fileSystem.joinPaths(this.fileSystem.getDirectoryName(a.matchedConfigPath),a.compilerOptions?.baseUrl??"."),paths:a.compilerOptions?.paths??{}}}async locateConfig(e,t,n=false){for(let i of t){let a=this.fileSystem.joinPaths(e,i);if(await this.fileSystem.exists(a))return a}if(!n)return null;let r=this.fileSystem.getDirectoryName(e);return r===e?null:this.locateConfig(r,t)}async resolveConfig(e){let{configPath:t,fileNames:n,rootDirectory:r,targetDirectories:i}=e,a=await this.parseConfig(t);if(a?.extends!==void 0){let s=await this.locateParentConfig(r,this.fileSystem.getDirectoryName(t),a.extends);if(s!==null){let p=await this.resolveConfig({...e,configPath:s});p!==null&&(a=o.mergeConfig(a,p));}}if(a?.references!==void 0&&i.length>0){let{references:s,...p}=a;for(let c of a.references){let l=this.fileSystem.joinPaths(this.fileSystem.getDirectoryName(t),c.path),u=l.endsWith(".json")?l:await this.locateConfig(l,n);if(u===null)continue;let f=await this.resolveConfig({...e,configPath:u});if(f?.include!==void 0)for(let y of i){let k=this.fileSystem.joinPaths("./",this.fileSystem.getRelativePath(this.fileSystem.getDirectoryName(u),y));for(let I of f.include){let M=new Minimatch(I,{partial:true,magicalBraces:true});if(!M.hasMagic()&&!I.includes(".")&&(M=new Minimatch(`${I.replace(/\/?$/,"")}/**/*`,{partial:true})),M.match(k))return o.mergeConfig({...f,rootConfigPath:a.rootConfigPath},p)}}}}return a}async locateParentConfig(e,t,n){let r=n;r.endsWith(".json")||(r+=".json");let i=this.fileSystem.joinPaths(t,r);if(await this.fileSystem.exists(i))return i;let a=this.fileSystem.joinPaths(e,"node_modules",r);return await this.fileSystem.exists(a)?a:null}async parseConfig(e){let t;try{t=JsonParser.parse(await this.fileSystem.readTextFile(e)).toJSON();}catch{return null}let n=await this.tsConfigValidator.validate(t);return n.valid?{rootConfigPath:e,matchedConfigPath:e,...n.data}:null}static mergeConfig(e,t){return {...t,...e,compilerOptions:{...t.compilerOptions,...e.compilerOptions}}}};var ba=class{constructor({commandExecutor:e,executableLocator:t}){this.executableLocator=t,this.commandExecutor=e;}async run(e,t={}){let n=await this.executableLocator.locate(e.name);if(n===null)throw new _e(`Unable to locate executable for command \`${e.name}\`.`);return this.commandExecutor.run({...e,name:n},t)}};var Ia=class o{constructor(e){this.instances=new Map;this.configuration=e,this.skipPrompts=e.skipPrompts,this.initialDirectory=e.directories.current??e.process.getCurrentDirectory(),this.workingDirectory=new Go(this.initialDirectory);}static{this.READ_ONLY_COMMANDS=new Set([Tn,rn,on,At,Et,tn,nn,pn,Qt]);}static fromDefaults(e){let t=sd("com.croct.cli"),n=new Xo;return new o({program:e.program??(()=>{throw new d("CLI is running in standalone mode.")}),process:e.process??n,quiet:e.quiet??false,debug:e.debug??false,interactive:e.interactive??!pd.isCI,version:e.version??"0.0.0",apiKey:e.apiKey,skipPrompts:e.skipPrompts??false,adminTokenDuration:e.adminTokenDuration??7*ft.LocalTime.SECONDS_PER_DAY,apiKeyTokenDuration:e.apiKeyTokenDuration??30*ft.LocalTime.SECONDS_PER_MINUTE,cliTokenDuration:e.cliTokenDuration??90*ft.LocalTime.SECONDS_PER_DAY,cliTokenFreshPeriod:e.cliTokenFreshPeriod??15*ft.LocalTime.SECONDS_PER_DAY,cliTokenIssuer:e.cliTokenIssuer??"croct.com",deepLinkProtocol:e.deepLinkProtocol??"croct",templateRegistryUrl:e.templateRegistryUrl??new URL("github:/croct-tech/templates/templates/registry.json5"),adminUrl:e.adminUrl??new URL("https://app.croct.com"),adminTokenParameter:e.adminTokenParameter??"accessToken",adminGraphqlEndpoint:e?.adminGraphqlEndpoint??new URL("https://app.croct.com/graphql"),directories:{current:e.directories?.current??n.getCurrentDirectory(),config:e.directories?.config??t.config(),cache:e.directories?.cache??t.cache(),data:e.directories?.data??t.data(),home:e.directories?.home??homedir()},verificationLinkDestination:{accountActivation:e.verificationLinkDestination?.accountActivation??"./cli",passwordReset:e.verificationLinkDestination?.passwordReset??"./cli"},emailSubject:{passwordReset:e.emailSubject?.passwordReset??"Forgot password",accountActivation:e.emailSubject?.accountActivation??"Welcome to Croct"}})}welcome(e){return this.execute(new Tn({version:this.configuration.version,configurationProvider:this.getCliConfigurationProvider(),deepLinkInstaller:t=>this.deepLink({operation:t?"optionally-update":"optionally-enable"})}),e)}deepLink(e){return this.execute(new ha({packageManager:this.getNodePackageManager(),protocolRegistryProvider:this.getProtocolRegistryProvider(),configurationProvider:this.getCliConfigurationProvider(),cliPackage:"croct@latest",protocolHandler:{id:"com.croct.cli",name:"croct-cli",protocol:this.configuration.deepLinkProtocol},io:{input:this.getInput(),output:this.getOutput()}}),e)}open(e){return this.execute(new Mo({program:this.configuration.program,protocol:this.configuration.deepLinkProtocol,configurationProvider:this.getCliConfigurationProvider(),workingDirectory:new Ko(this.configuration.process),fileSystem:this.getFileSystem(),io:{input:this.getInput(),output:this.getOutput()}}),e)}init(e){return this.execute(new rr({sdkProvider:this.getSdkProvider(),platformProvider:this.getPlatformProvider(),configurationManager:this.getConfigurationManager(),skipConfirmation:new Ao(new Rn(new An(new Pn({fileSystem:this.getFileSystem(),files:[".git"]})))),api:{user:this.getUserApi(),organization:this.getOrganizationApi(),workspace:this.getWorkspaceApi()},form:{organization:new pr({input:this.getFormInput(),output:this.getOutput(),userApi:this.getUserApi()}),workspace:new cr({input:this.getFormInput(),output:this.getOutput(),organizationApi:this.getOrganizationApi()}),application:new lr({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),slot:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()})},io:{input:this.getInput(),output:this.getOutput()}}),e)}install(e){return this.execute(new rn({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),io:{input:this.getInput(),output:this.getOutput()}}),e)}upgrade(e){return this.execute(new on({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),form:{slotForm:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),componentForm:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()})},io:{input:this.getInput(),output:this.getOutput()}}),e)}addSlot(e){return this.execute(new At({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),workspaceApi:this.getWorkspaceApi(),slotForm:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}removeSlot(e){return this.execute(new tn({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),slotForm:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}addComponent(e){return this.execute(new Et({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),componentForm:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}removeComponent(e){return this.execute(new nn({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),componentForm:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),io:{input:this.getInput(),output:this.getOutput()}}),e)}login(e){return this.execute(new ir({authenticator:this.getAuthenticator()}),e)}logout(){return this.execute(new Qt({authenticator:this.getAuthenticator(),output:this.getOutput()}),{})}admin(e){return this.execute(new fr({output:this.getOutput(),pageForm:new Cr({input:this.getFormInput()}),configurationManager:this.getConfigurationManager(),userApi:this.getUserApi(),adminUrl:this.configuration.adminUrl,adminTokenParameter:this.configuration.adminTokenParameter,adminTokenDuration:this.configuration.adminTokenDuration}),e)}createTemplate(e){return this.execute(new pn({configurationManager:this.getConfigurationManager(),fileSystem:this.getFileSystem(),templateForm:new Vr({input:this.getFormInput(),form:{component:new Ye({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),slot:new qe({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),experience:new Ur({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()}),audience:new qr({input:this.getFormInput(),output:this.getOutput(),workspaceApi:this.getWorkspaceApi()})}}),io:{input:this.getInput(),output:this.getOutput()}}),e)}useTemplate(e){return this.execute(this.getUseTemplateCommand(),e)}async getTemplateOptions(e){let t=this.getUseTemplateCommand(),r=this.getOutput().notify("Loading template");try{return await t.getOptions(e)}finally{r.stop();}}getUseTemplateCommand(){return new Hr({templateProvider:new Nt({provider:new mn(this.getTemplateProvider()),validator:new hn}),fileSystem:this.getFileSystem(),action:this.getImportAction(),io:{input:this.getInput(),output:this.getOutput()}})}createApiKey(e){return this.execute(new qo({fileSystem:this.getFileSystem(),configurationManager:this.getConfigurationManager(),api:{user:this.getUserApi(),workspace:this.getWorkspaceApi(),application:this.getApplicationApi()},io:{input:this.getFormInput(),output:this.getOutput()}}),e)}getFormInput(e){return this.getInput()??this.getNonInteractiveInput(e)}getNonInteractiveInput(e){return new En(new Ar(e??{message:"Input is not available in non-interactive mode."}))}getInput(){if(this.configuration.interactive)return this.share(this.getInput,()=>{let e=this.getOutput(),t=new Kn({input:this.configuration.process.getStandardInput(),output:this.configuration.process.getStandardOutput(),onAbort:()=>e.exit(),onInteractionStart:()=>e.suspend(),onInteractionEnd:()=>e.resume()});return this.skipPrompts?new En(t):t})}getNonInteractiveOutput(e=false){let{configuration:t}=this;return new Jt({output:t.process.getStandardOutput(),formatter:this.getLogFormatter(),interactive:false,quiet:e,onExit:()=>t.process.exit(),linkOpener:async n=>{await $c(n,{wait:true});}})}getHierarchicalLogger(){return this.share(this.getHierarchicalLogger,()=>new sa(this.getLogger()))}getLogger(){return this.share(this.getLogger,()=>{let e=new pa(this.getOutput());return this.configuration.debug?e:new FilteredLogger(e,LogLevel.WARNING)})}getOutput(){return this.share(this.getOutput,()=>{let{configuration:e}=this;return new Jt({output:e.process.getStandardOutput(),formatter:this.getLogFormatter(),interactive:this.configuration.interactive,quiet:this.configuration.quiet,onExit:()=>e.process.exit(),linkOpener:async t=>{await $c(t);}})})}getLogFormatter(){return this.share(this.getLogFormatter,()=>new Bo)}getTemplateProvider(){return this.share(this.getTemplateProvider,()=>{let e=n=>new et(...["template.json5","template.json"].map(r=>new Mt({dataProvider:n,registryProvider:new xn([{pattern:/^(https:\/\/(?:www\.)?github.com\/[^/]+\/[^/]+)\/?$/,destination:`$1/blob/main/${r}`},{pattern:/^(.+?:\/*[^/]+(\/+[^/.]+|\/[^/]+(?=\/))*)\/*$/,destination:`$1/${r}`}])}))),t=this.traceProvider({provider:this.getHttpProvider()});return this.traceProvider({label:"TemplateProvider",provider:new gn({resourceCache:new AutoSaveCache(new InMemoryCache),errorCache:new InMemoryCache,provider:new et(new Mt({dataProvider:this.traceProvider({label:"ResourceProvider",provider:e(new dt(new et(this.traceProvider({provider:new cn(t)}),this.traceProvider({provider:new ln(t)}))))}),registryProvider:this.traceProvider({label:"NpmRegistryProvider",provider:new na(new Nt({provider:ra.json(this.traceProvider({provider:this.getHttpProvider()})),validator:new ia}))})}),e(new dt(this.getFileProvider())))})})})}getFileProvider(){return this.share(this.getFileProvider,()=>{let e=this.traceProvider({provider:this.getHttpProvider()}),t=this.traceProvider({provider:new ai(this.getFileSystem())}),n=new et(t,this.traceProvider({provider:new cn(e)}),this.traceProvider({provider:new ln(e)}));return this.traceProvider({label:"FileProvider",provider:new et(t,this.traceProvider({provider:new Mt({baseUrl:new URL("./",this.configuration.templateRegistryUrl),dataProvider:this.traceProvider({label:"ResourceProvider",provider:n}),registryProvider:new Li({url:this.configuration.templateRegistryUrl,provider:this.traceProvider({label:"GlobalRegistryProvider",provider:new gn({errorCache:new InMemoryCache,resourceCache:new AutoSaveCache(new InMemoryCache),provider:new Nt({provider:new mn(new dt(n)),validator:new li})})})})})}))})})}traceProvider({provider:e,label:t}){return new aa({label:t,provider:e,logger:this.getHierarchicalLogger()})}getImportAction(){return this.share(this.getImportAction,()=>{let e=this.getFileSystem(),t={run:new F({action:new Xe(new Oe(()=>new Ji(t))),validator:new Qi}),try:new F({action:new Xe(new Oe(()=>new Yr(t.run))),validator:new yi}),test:new F({action:new Xe(new Oe(()=>new Oi(t.run))),validator:new Di}),repeat:new F({action:new Xe(new Oe(()=>new Eo(t.run))),validator:new Ro}),print:new F({action:new Mi,validator:new $i}),fail:new F({action:new zi,validator:new _i}),define:new F({action:new eo,validator:new Xi}),prompt:new F({action:new qi,validator:new Hi}),"change-directory":new F({action:new ao({fileSystem:e,rootDirectory:this.initialDirectory,currentDirectory:this.workingDirectory}),validator:new oo}),"open-link":new F({action:new Bi,validator:new Yi}),"start-server":new F({action:new Gi({serverProvider:this.getServerProvider()}),validator:new Zi}),"stop-server":new F({action:new to({serverProvider:this.getServerProvider()}),validator:new no}),"execute-package":new F({action:new so({packageManager:this.getPackageManager(),packageManagerProvider:this.getPackageManagerRegistry(),workingDirectory:this.workingDirectory,commandExecutor:this.getAsynchronousCommandExecutor(),commandTimeout:2*60*1e3,sourceChecker:{test:n=>n.protocol==="file:"||`${n}`.startsWith("https://github.com/croct-tech")}}),validator:new po}),"check-dependencies":new F({action:new oi({packageManager:this.getPackageManager()}),validator:new hi}),download:new F({action:new Gr({fileSystem:e,provider:this.getFileProvider(),codemod:new la({codemods:{"**/*.{js,jsx,ts,tsx}":new da(new ca({fileSystem:e,rootPath:this.workingDirectory,maxSearchDepth:10,importResolver:this.getNodeImportResolver(),importCodemod:new Ue({fileSystem:e,codemod:new We({languages:["typescript","jsx"],codemod:new ma})}),exportMatcher:{test:(n,{names:r})=>r.length===0?true:Dc(n).some(i=>r.includes(i))}}),new Ve(this.getJavaScriptFormatter()))}})}),validator:new Si}),"add-dependency":new F({action:new Kr({packageManager:this.getPackageManager()}),validator:new Ii}),"locate-file":new F({action:new Zr({projectDirectory:this.workingDirectory,fileSystem:e,matcherProvider:{get:async n=>{let r=e.joinPaths(this.workingDirectory.get(),".gitignore"),i=Po.fromPattern(n);if(await e.exists(r)){let a=await e.readTextFile(r);return new Co(new An(ko.fromPatterns(a)),i)}return i}}}),validator:new xi}),"replace-file-content":new F({action:new Jr({fileSystem:e}),validator:new vi}),initialize:new F({action:new ea({callback:()=>this.init({})}),validator:new ta}),"add-slot":new F({action:new Qr({installer:(n,r)=>{let i=this.getNonInteractiveOutput(true);return this.execute(new At({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),workspaceApi:this.getWorkspaceApi(),slotForm:new qe({input:this.getNonInteractiveInput(),output:i,workspaceApi:this.getWorkspaceApi()}),io:{output:i}}),{slots:n,example:r})}}),validator:new Pi}),"add-component":new F({action:new Br({installer:n=>{let r=this.getNonInteractiveOutput(true);return this.execute(new Et({sdk:this.getSdk(),configurationManager:this.getConfigurationManager(),componentForm:new Ye({input:this.getNonInteractiveInput(),output:r,workspaceApi:this.getWorkspaceApi()}),io:{output:r}}),{components:n})}}),validator:new Ci}),"create-resource":new F({action:new ti({configurationManager:this.getConfigurationManager(),matcher:new ri({workspaceApi:this.getWorkspaceApi()}),api:{user:this.getUserApi(),workspace:this.getWorkspaceApi(),organization:this.getOrganizationApi()},mappingForm:new ni({input:this.getFormInput({message:"Some resource IDs are in use and interactive mode is required to assign new ones.",suggestions:["Retry in interactive mode"]}),workspaceApi:this.getWorkspaceApi()})}),validator:new ki}),"format-code":new F({action:new Ei({formatter:this.getCodeFormatter()}),validator:new Ri}),import:new F({action:new Xe(new Oe(()=>new di({runner:t.run,templateProvider:new fi({evaluator:new ui({functions:rs}),validator:new hn,templateProvider:this.getTemplateProvider(),fileProvider:new dt(this.getFileProvider())}),variables:this.getActionVariables()}))),validator:new Ai})};return t.import})}getActionVariables(){let e=t=>new URL(t,this.configuration.adminUrl).toString();return {project:{features:ce.transient(async()=>{let{organization:t,workspace:n}=await this.getConfigurationManager().load(),{features:r}=await this.getWorkspaceApi().getFeatures({organizationSlug:t,workspaceSlug:n})??{};return r??{}}),quotas:ce.transient(async()=>{let{organization:t,workspace:n}=await this.getConfigurationManager().load(),{quotas:r}=await this.getWorkspaceApi().getFeatures({organizationSlug:t,workspaceSlug:n})??{};return r??{}}),organization:ce.transient(async()=>{let{organization:t}=await this.getConfigurationManager().load();return {slug:t,url:e(`organizations/${t}`)}}),workspace:ce.transient(async()=>{let{organization:t,workspace:n}=await this.getConfigurationManager().load();return {slug:n,url:e(`organizations/${t}/workspaces/${n}`)}}),application:ce.transient(async()=>{let{organization:t,workspace:n,applications:r}=await this.getConfigurationManager().load(),i=`organizations/${t}/workspaces/${n}/applications/`;return {development:{slug:r.development,url:e(i+r.development)},production:{slug:r.production,url:e(i+r.production)}}}),path:ce.transient(async()=>{let t=this.getSdk(),n=await this.getConfigurationManager().load();return t.getPaths(n)}),platform:ce.transient(async()=>await this.getPlatformProvider().get()??"unknown"),server:ce.transient(async()=>{let n=await this.getServerProvider().get();if(n===null)return null;try{let r=await n.getStatus();if(r.running)return {running:!0,url:r.url.toString()}}catch{}return {running:false}})}}}getHttpProvider(){return this.share(this.getHttpProvider,()=>new ii)}getAuthenticator(){return this.share(this.getAuthenticator,()=>{if(this.configuration.apiKey!==void 0)return new Ho({apiKey:this.configuration.apiKey,clock:this.getClock(),tokenDuration:this.configuration.apiKeyTokenDuration});let e=this.getFormInput(),t=new mr({input:e,output:this.getOutput(),userApi:this.getUserApi(true),form:{signIn:new dr({input:e,output:this.getOutput(),userApi:this.getUserApi(true),listener:this.getTokenListener(),tokenDuration:this.configuration.cliTokenDuration,emailLinkGenerator:{recovery:this.createEmailLinkGenerator(this.configuration.emailSubject.passwordReset),verification:this.createEmailLinkGenerator(this.configuration.emailSubject.accountActivation)},verificationLinkDestination:{accountActivation:this.configuration.verificationLinkDestination.accountActivation,passwordReset:this.configuration.verificationLinkDestination.passwordReset}}),signUp:new gr({input:e,output:this.getOutput(),userApi:this.getUserApi(true),listener:this.getTokenListener(),emailLinkGenerator:this.createEmailLinkGenerator(this.configuration.emailSubject.accountActivation),verificationLinkDestination:this.configuration.verificationLinkDestination.accountActivation})}}),n=this.getUserApi(true),r=new Zo({cacheKey:"token",cacheProvider:new Jo({clock:this.getClock(),clockSkewTolerance:5,tokenFreshPeriod:this.configuration.cliTokenFreshPeriod,tokenIssuer:()=>n.issueToken({duration:this.configuration.cliTokenDuration}),cacheProvider:new dn({fileSystem:this.getFileSystem(),directory:this.configuration.directories.config,useKeyAsFileName:true})}),authenticator:new Er({default:this.configuration.interactive?t:new kr({authenticator:t,instruction:{message:"Authentication required.",suggestions:["Run `login` to authenticate"],reason:"precondition"}}),credentials:t})});return this.configuration.interactive?new Wo({authenticator:r,invitationForm:new jo({output:this.getOutput(),input:e,userApi:this.getUserApi(true)})}):r})}getSdk(){return this.share(this.getSdk,()=>{let e=new jt(this.getSdkProvider(),new Oe(()=>{throw new H("No suitable SDK detected.",{reason:"not_supported",suggestions:["Make sure you are running the command in the project root directory."]})}));return new vo(e)})}getSdkProvider(){return this.share(this.getSdkProvider,()=>{let e=this.getJavaScriptFormatter(),t=this.getFileSystem(),n=this.getNodeImportResolver(),r={projectDirectory:this.workingDirectory,packageManager:this.getNodePackageManager(),fileSystem:t,formatter:e,workspaceApi:this.getWorkspaceApi(),tsConfigLoader:this.getTsConfigLoader()},i=Symbol("unknown");return new Lt({discriminator:async()=>await this.getPlatformProvider().get()??i,mapping:{javascript:()=>new Yn({...r,bundlers:["vite","parcel","tsup","rollup"]}),react:()=>new Xn({...r,importResolver:n,codemod:{provider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:true,wrapper:{module:"@croct/plug-react",component:"CroctProvider"},targets:{variable:"children"}})})}))},bundlers:[{package:"react-scripts",prefix:"process.env.REACT_APP_"},{package:"vite",prefix:"import.meta.env.VITE_"},{package:"parcel",prefix:"process.env."}]}),nextjs:()=>{let a={appId:{type:"reference",path:["process","env","NEXT_PUBLIC_CROCT_APP_ID"]},debug:{type:"comparison",operator:"===",left:{type:"reference",path:["process","env","NEXT_PUBLIC_CROCT_DEBUG"]},right:{type:"literal",value:"true"}}};return new nr({...r,userApi:this.getUserApi(),applicationApi:this.getApplicationApi(),importResolver:n,codemod:{middleware:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new Ir({import:{module:"@croct/plug-next/middleware",middlewareName:"middleware",middlewareFactoryName:"withCroct",configName:"config",matcherName:"matcher",matcherLocalName:"croctMatcher"}})})})),appRouterProvider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:false,fallbackCodemod:new xr({provider:{component:"CroctProvider",module:"@croct/plug-next/CroctProvider"}}),wrapper:{module:"@croct/plug-next/CroctProvider",component:"CroctProvider"},targets:{variable:"children"}})})})),pageRouterProvider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:false,fallbackCodemod:new en({provider:{component:"CroctProvider",module:"@croct/plug-next/CroctProvider"}}),wrapper:{module:"@croct/plug-next/CroctProvider",component:"CroctProvider"},targets:{component:"Component"}})})})),fallbackProvider:new Ve(e,new Ue({fileSystem:this.getFileSystem(),codemod:new We({languages:["typescript","jsx"],codemod:new ct({fallbackToNamedExports:false,fallbackCodemod:new en({provider:{component:"CroctProvider",module:"@croct/plug-react",props:a}}),wrapper:{module:"@croct/plug-react",component:"CroctProvider",props:a},targets:{component:"Component"}})})}))}})},[i]:()=>null}})})}getCodeFormatter(){return this.share(this.getCodeFormatter,()=>{let e=Symbol("unknown");return new xo(new Lt({discriminator:async()=>await this.getPlatformProvider().get()??e,mapping:{javascript:()=>this.getJavaScriptFormatter(),react:()=>this.getJavaScriptFormatter(),nextjs:()=>this.getJavaScriptFormatter(),[e]:()=>{throw new H("No code formatter detected.",{reason:"not_supported",suggestions:["Make sure you are running the command in the project root directory."]})}}}))})}share(e,t){let n=this.instances.get(e);if(n===void 0){let r=t();return this.instances.set(e,r),r}return n}getPackageManagerRegistry(){return this.share(this.getPackageManagerRegistry,()=>new yo(new Map(Object.entries(this.getPackageManagers()))))}getPackageManagers(){return this.getNodePackageManagers()}getPackageManager(){return this.share(this.getPackageManager,()=>new wn(new jt(this.getNodePackageManagerProvider(),new Oe(()=>{throw new H("No package manager detected.",{reason:"not_supported",suggestions:["Make sure you are running the command in the project root directory.","Initialize your project and retry the command."]})}))))}getNodePackageManager(){return this.share(this.getNodePackageManager,()=>{let e=this.getNodePackageManagers();return new wn(new jt(this.getNodePackageManagerProvider(),new xn(e.npm)))})}getNodePackageManagerProvider(){return this.share(this.getNodePackageManagerProvider,()=>{let e=this.getNodePackageManagers(),t=this.getFileSystem(),n={npm:["package-lock.json"],yarn:["yarn.lock"],bun:["bun.lock","bun.lockb"],pnpm:["pnpm-lock.yaml"]};return new kn(new Fo(new Wt({candidates:Object.entries(e).map(([r,i])=>({value:i,condition:new Lo({process:this.configuration.process,variable:"npm_config_user_agent",value:new RegExp(`^${r}`)})}))}),new Wt({candidates:Object.entries(e).map(([r,i])=>({value:i,condition:new Rn(new _o({packageManager:r,fileSystem:t,projectDirectory:this.workingDirectory}),new Pn({fileSystem:t,files:n[r]}))}))})),this.workingDirectory)})}getNodePackageManagers(){return this.share(this.getNodePackageManagers,()=>{let e=this.getFileSystem(),t={projectDirectory:this.workingDirectory,fileSystem:e,commandExecutor:this.getAsynchronousCommandExecutor(),executableLocator:this.getExecutableLocator()},n=new un,r={fileSystem:e,projectDirectory:this.workingDirectory,packageValidator:n};return {npm:new tt({...r,agent:new co(t)}),yarn:new tt({...r,agent:new lo(t)}),bun:new tt({...r,agent:new uo(t)}),pnpm:new tt({...r,agent:new mo(t)})}})}getNodeServerProvider(){return this.share(this.getNodeServerProvider,()=>new Fi({packageManager:this.getNodePackageManager(),factory:this.getServerFactory(),parsers:[new ji,new Wi,new Vi,new Ui]}))}getServerProvider(){return this.share(this.getServerProvider,()=>{let e=Symbol("unknown");return new Lt({discriminator:async()=>await this.getPlatformProvider().get()??e,mapping:{javascript:()=>this.getNodeServerProvider().get(),react:()=>this.getNodeServerProvider().get(),nextjs:()=>this.getNodeServerProvider().get(),[e]:()=>null}})})}getServerFactory(){return this.share(this.getServerFactory,()=>new wo(new io({commandExecutor:this.getAsynchronousCommandExecutor(),workingDirectory:this.workingDirectory,startupTimeout:2e4,startupCheckDelay:1500,lookupMaxPorts:30,lookupTimeout:2e3,processObserver:this.configuration.process})))}getJavaScriptFormatter(){return this.share(this.getJavaScriptFormatter,()=>new wr({commandExecutor:this.getAsynchronousCommandExecutor(),workingDirectory:this.workingDirectory,packageManager:this.getNodePackageManager(),fileSystem:this.getFileSystem(),timeout:1e4,tools:[{package:"eslint",bin:"eslint",args:e=>["--fix",...e]},{package:"prettier",args:e=>["--write",...e]},{package:"@biomejs/biome",bin:"biome",args:e=>["format","--write",...e]}]}))}getNodeImportResolver(){return this.share(this.getNodeImportResolver,()=>new go({fileSystem:this.getFileSystem(),tsConfigLoader:this.getTsConfigLoader(),projectDirectory:this.workingDirectory}))}getTsConfigLoader(){return this.share(this.getTsConfigLoader,()=>new Sa({fileSystem:this.getFileSystem(),tsconfigValidator:new fo}))}getAsynchronousCommandExecutor(){return this.share(this.getAsynchronousCommandExecutor,()=>new ba({executableLocator:this.getExecutableLocator(),commandExecutor:this.getCommandExecutor()}))}getSynchronousCommandExecutor(){return this.getCommandExecutor()}getCommandExecutor(){return this.share(this.getCommandExecutor,()=>new Io({currentDirectory:this.workingDirectory,windows:this.configuration.process.getPlatform()==="win32"}))}getExecutableLocator(){return this.share(this.getExecutableLocator,()=>{let{process:e}=this.configuration;return new zo({fileSystem:this.getFileSystem(),cache:new AutoSaveCache(new InMemoryCache),executablePaths:e.getEnvList("PATH")??[],executableExtensions:e.getEnvList("PATHEXT")??[]})})}getPlatformProvider(){return this.share(this.getPlatformProvider,()=>{let e=new tt({projectDirectory:this.workingDirectory,packageValidator:new un,fileSystem:this.getFileSystem(),agent:new ho});return new kn(new Wt({candidates:[{value:"nextjs",condition:new Cn({packageManager:e,dependencies:["next"]})},{value:"react",condition:new Cn({packageManager:e,dependencies:["react"]})},{value:"javascript",condition:new So({packageManager:e})}]}),this.workingDirectory)})}getConfigurationManager(){return this.share(this.getConfigurationManager,()=>{let e=this.getOutput(),t=new or({fileSystem:this.getFileSystem(),validator:new pi,projectDirectory:this.workingDirectory});return new $o({workingDirectory:this.workingDirectory,configurationProvider:this.getCliConfigurationProvider(),manager:new Xr(this.configuration.interactive&&!this.isReadOnlyMode()?new Pr({manager:t,initializer:{initialize:async()=>{await this.init({}),e.break();}}}):t)})})}getUserApi(e=false){return e?new Xt(this.getGraphqlClient(true)):this.share(this.getUserApi,()=>new Xt(this.getGraphqlClient()))}getOrganizationApi(){return this.share(this.getOrganizationApi,()=>new ar(this.getGraphqlClient(),this.getHierarchyResolver()))}getWorkspaceApi(){return this.share(this.getWorkspaceApi,()=>new sr(this.getGraphqlClient(),this.getHierarchyResolver()))}getApplicationApi(){return this.share(this.getApplicationApi,()=>new ur(this.getGraphqlClient(),this.getHierarchyResolver()))}getHierarchyResolver(){return this.share(this.getHierarchyResolver,()=>{let e=this.getFileSystem();return new ga(this.getGraphqlClient(),AdaptedCache.transformValues(new dn({fileSystem:e,directory:e.joinPaths(this.configuration.directories.cache,"hierarchy")}),AdaptedCache.jsonSerializer(),AdaptedCache.jsonDeserializer()))})}getGraphqlClient(e=false){return e?new Bt({endpoint:this.configuration.adminGraphqlEndpoint,tokenProvider:{getToken:()=>this.getAuthenticator().getToken()}}):this.share(this.getGraphqlClient,()=>{let t=this.getAuthenticator();return new Bt({endpoint:this.configuration.adminGraphqlEndpoint,tokenProvider:{getToken:async()=>await t.getToken()??t.login({method:"default"})}})})}getTokenListener(){return this.share(this.getTokenListener,()=>{let{configuration:e}=this;return new Dr({platform:e.process.getPlatform(),commandExecutor:this.getSynchronousCommandExecutor(),timeout:2e3,listener:new Qo({api:this.getUserApi(true),pollingInterval:1e3})})})}getFileSystem(){return this.share(this.getFileSystem,()=>new Tr({workingDirectory:this.workingDirectory,defaultEncoding:"utf-8"}))}createEmailLinkGenerator(e){let t=this.getEmailLinkGenerator(),n=this.getClock();return r=>t.generate({recipient:r,sender:"croct.com",subject:e,timestamp:ft.Instant.now(n).getSeconds()})}getEmailLinkGenerator(){return this.share(this.getEmailLinkGenerator,()=>new Mr({detector:new Nr(new $r,new zr),templates:{google:new _r,icloud:new Lr,microsoft:new Fr,proton:new jr,yahoo:new Wr}}))}getClock(){return zc.SystemClock.UTC}getProtocolRegistryProvider(){return this.share(this.getProtocolRegistryProvider,()=>new Oe(()=>{let e=this.getFileSystem(),{process:t}=this.configuration;switch(t.getPlatform()){case "darwin":{let n=e.joinPaths(this.configuration.directories.data,"apps");return new fa({output:this.getOutput(),macOsRegistry:new Oo({fileSystem:e,appDirectory:n,commandExecutor:this.getAsynchronousCommandExecutor()}),firefoxRegistry:ya.macOs({fileSystem:e,homeDirectory:this.configuration.directories.home,appPath:e.joinPaths(n,`${this.configuration.deepLinkProtocol}.app`)})})}case "win32":return new To({commandExecutor:this.getAsynchronousCommandExecutor()});case "linux":return new Do({fileSystem:e,homeDirectory:this.configuration.directories.home,commandExecutor:this.getAsynchronousCommandExecutor()});default:return null}}))}getCliConfigurationProvider(){return this.share(this.getCliConfigurationProvider,()=>{let e=this.getFileSystem();return new Uo({fileSystem:e,configurationProvider:new Vo({fileSystem:e,validator:new No,filePath:e.joinPaths(this.configuration.directories.config,"config.json")})})})}async execute(e,t){if(this.isReadOnlyMode()&&!o.READ_ONLY_COMMANDS.has(e.constructor))return this.reportError(new d("This command does not support API key authentication.",{reason:"precondition",suggestions:["Run the command without specifying an API key."]}));try{await e.execute(t);}catch(n){let r=o.handleError(n);return n instanceof Error&&r instanceof Error&&(r.stack=n.stack),this.reportError(r)}}isReadOnlyMode(){return this.configuration.apiKey!==void 0}reportError(e){let t=this.getOutput();return t.report(o.handleError(e)),t.exit()}static handleError(e){switch(true){case e instanceof re:if(e.isAccessDenied())return new d("Your user lacks the necessary permissions to complete this operation.",{reason:"access_denied",details:e.problems.map(t=>t.detail??t.title),suggestions:["Contact your organization or workspace administrator for assistance."],cause:e});break;case e instanceof x:if(e.tracing.length>0){let t=e.tracing.map(({name:n,source:r},i)=>{let a=r!==void 0?` at ${o.getSourceLocation(r)}`:"";return `${" ".repeat(i+1)}\u21B3 \`${n}\`${a}`}).join(`
1843
1843
  `);return new d(`${e.message}
1844
1844
 
1845
1845
  \u25B6\uFE0F **Trace**
1846
- ${t}`,e.help)}break;case e instanceof ot:return new d(e.message,{...e.help,suggestions:["Run `init` to create a new configuration."]})}return e}static getSourceLocation(e){return e.url.protocol==="file:"?`${e.url}:${e.start.line}:${e.start.column}`:e.url.hostname==="github.com"?`${e.url}#L${e.start.line}-L${e.end.line}`:`${e.url}#${e.start.line}:${e.start.column}-${e.end.line}:${e.end.column}`}};var ss={version:"0.1.12"};function _c(o){let e=new ds().name("croct").description("Manage your Croct projects").enablePositionalOptions().option("--cwd <path>","The working directory.",h=>{try{return realpathSync(h)}catch{throw new Fe("The path does not exist.")}}).addOption(new se("--api-key <key>","The API key to use for authentication.").env("CROCT_API_KEY").argParser(h=>{try{return ApiKey.parse(h)}catch{throw new Fe("The API key is malformed.")}})).option("--registry <url>","The template registry.",h=>{if(!URL.canParse(h))throw new Fe("Malformed URL.");return h}).option("--no-interaction","Disable interaction mode.").addOption(new se("-s, --skip-prompts","Skip prompts with default options.").default(false)).addOption(new se("-q, --quiet","Disable output messages.").default(false).implies({interaction:false})).option("--debug","Enable debug mode.").version(ss.version,"-v, --version","Display the version number.").helpOption("-h, --help","Display help for a command.").helpCommand("help [command]","Display help for a command.");e.command("open <url>").description("Open a deep link.").action(async h=>{await o.cli?.open({url:h});});let t=e.command("login").description("Authenticate your user."),n=new se("-u, --username <username>","The email."),r=new se("-p, --password <password>","The password.");t.command("credentials",{isDefault:true}).description("Authenticate using credentials.").addOption(o.interactive?n:n.makeOptionMandatory()).addOption(o.interactive?r:r.makeOptionMandatory()).action(async h=>{await o.cli?.login({method:"credentials",username:h.username,password:h.password});}),e.command("logout").description("Logout the current user.").action(async()=>{await o.cli?.logout();}),e.command("admin").argument("[page...]","The name of the page or path to open.").description("Log in and open the admin panel.").action(async h=>{await o.cli?.admin({page:h!==void 0?h.join(" "):o.interactive?void 0:"/"});});let i=new se("--wor <workspace-slug>","The workspace slug."),a=new se("--org <organization-slug>","The organization slug."),s=new se("--dev-app <application-slug>","The development application slug."),p=new se("--prod-app <application-slug>","The production application slug.");e.command("init").description("Configure the project.").option("-o, --override","Override any existing configuration.").addOption(new se("-n, --new <resource>","The resources to create.").choices(["organization","org","workspace","wor","application","app"])).addOption(new se("-s, --sdk <platform>","The SDK to use.").choices(["javascript","react","next"])).addOption(o.interactive?a:a.makeOptionMandatory()).addOption(o.interactive?i:i.makeOptionMandatory()).addOption(o.interactive?s:s.makeOptionMandatory()).addOption(p).action(async h=>{await o.cli?.init({override:h.override,new:(()=>{switch(h.new){case "organization":case "org":return "organization";case "workspace":case "wor":return "workspace";case "application":case "app":return "application";default:return}})(),sdk:h.sdk,organization:h.org,workspace:h.wor,devApplication:h.devApp,prodApplication:h.prodApp});}),e.command("install").description("Install content and types.").action(async()=>{await o.cli?.install({});}),e.command("update").description("Update content and types.").action(async()=>{await o.cli?.install({clean:true});}),e.command("upgrade").description("Upgrade components and slots to the latest version.").option("-s, --slots <slots...>","The slots to upgrade.").option("-c, --components <components...>","The components to upgrade.").action(async h=>{await o.cli?.upgrade({slots:h.slots??(h.components!==void 0?[]:void 0),components:h.components??(h.slots!==void 0?[]:void 0)});});let c=e.command("add").description("Add a resource to your project.");c.command("slot").description("Add a slot to your project.").argument(o.interactive?"[slots...]":"<slots...>").option("-e, --example","Generate an implementation example.").action(async(h,O)=>{await o.cli?.addSlot({slots:h,example:O.example});}),c.command("component").description("Add a component to your project.").argument(o.interactive?"[components...]":"<components...>").action(async h=>{await o.cli?.addComponent({components:h});});let l=e.command("remove").description("Remove a resource from your project.");l.command("slot").description("Remove a slot from your project.").argument(o.interactive?"[slots...]":"<slots...>").action(async h=>{await o.cli?.removeSlot({slots:h});}),l.command("component").description("Remove a component from your project.").argument(o.interactive?"[components...]":"<components...>").action(async h=>{await o.cli?.removeComponent({components:h});});let u=e.command("create").description("Create a resource in your project.");u.command("template").description("Create a template from your project.").addArgument(new gs("<path>","The path to the file.").argOptional()).option("-e, --empty","Create an empty template.").action(async(h,O)=>{await o.cli?.createTemplate({file:h,empty:O.empty});});let f=new se("--permissions <permissions...>","The permissions of the API key.").argParser(h=>h.split(",").map(O=>{try{return Ae.fromValue(O)}catch{throw new Fe(`Unknown permission "${O}".`)}})),y=new se("--env <environment>","The environment of the API key.").choices(["prod","dev"]).argParser(h=>h==="prod"?"PRODUCTION":"DEVELOPMENT");u.command("api-key").description("Create an API key.").option("--name <name>","The name of the API key.").addOption(o.interactive?f:f.makeOptionMandatory()).addOption(o.interactive?y:y.makeOptionMandatory()).option("-c, --copy","Copy the API key to the clipboard.").action(async h=>{await o.cli?.createApiKey({name:h.name,permissions:h.permissions,environment:h.env,copy:h.copy});});let k={},I=e.command("use").description("Use a template.").argument("template","The path to the template.").passThroughOptions(o.cli===void 0).allowUnknownOption(o.cli===void 0||o.template===null).action(async(h,O)=>{await o.cli?.useTemplate({template:h,options:Object.fromEntries(Object.entries(O).map(([N,U])=>[k[N],U]))});});for(let[h,O]of Object.entries(o.template??{})){let N=`--${h}${O.type!=="boolean"?" <value>":""}`,U=new se(N,O.description).makeOptionMandatory(O.required===true);switch(O.type){case "string":O.choices!==void 0&&O.choices.length>0&&U.choices(O.choices);break;case "number":U.argParser(Ge=>{let W=Number.parseFloat(Ge);if(Number.isNaN(W))throw new Fe("The value must be a number.");return W});break;case "array":U.argParser(Ge=>{let W;try{W=JSON.parse(Ge);}catch{}if(W===void 0||!Array.isArray(W))throw new Fe("The value must be a JSON array.");return Ge.split(",")});break;case "object":U.argParser(Ge=>{let W;try{W=JSON.parse(Ge);}catch{throw new Fe("The JSON is malformed.")}if(typeof W!="object"||W===null)throw new Fe("The value must be a JSON object.")});break}k[U.attributeName()]=h,I.addOption(U);}let M=e.command("deep-link").description("Enable or disable deep link support.");return M.command("enable").description("Enable deep link support.").action(async()=>{await o.cli?.deepLink({operation:"enable"});}),M.command("disable").description("Disable deep link support.").action(async()=>{await o.cli?.deepLink({operation:"disable"});}),e}function gd(o){let e=["use","help use"];for(let t of e){let n=t.split(" ").length;if(o.length>n&&o.slice(0,n).join(" ")===t&&(o[n]??"")!=="")return o[n]}return null}async function ps(o=process.argv,e=true){let t=_c({interactive:true}).parse(o),n=t.opts(),r=Ia.fromDefaults({program:p=>ps(t.args.slice(0,2).concat(p)),version:ss.version,quiet:n.quiet,debug:n.debug,interactive:n.interaction?void 0:false,apiKey:n.apiKey,skipPrompts:n.skipPrompts===true,templateRegistryUrl:n.registry===void 0?void 0:new URL(n.registry)}),i=gd(t.args),a=i!==null?await r.getTemplateOptions(i).catch(()=>null):void 0,s=_c({cli:r,interactive:n.interaction,template:a});e&&await r.welcome({skipDeepLinkCheck:t.args[0]==="deep-link"}),await s.parseAsync(o);}ps();
1846
+ ${t}`,e.help)}break;case e instanceof ot:return new d(e.message,{...e.help,suggestions:["Run `init` to create a new configuration."]})}return e}static getSourceLocation(e){return e.url.protocol==="file:"?`${e.url}:${e.start.line}:${e.start.column}`:e.url.hostname==="github.com"?`${e.url}#L${e.start.line}-L${e.end.line}`:`${e.url}#${e.start.line}:${e.start.column}-${e.end.line}:${e.end.column}`}};var ss={version:"0.1.13"};function _c(o){let e=new ds().name("croct").description("Manage your Croct projects").enablePositionalOptions().option("--cwd <path>","The working directory.",h=>{try{return realpathSync(h)}catch{throw new Fe("The path does not exist.")}}).addOption(new se("--api-key <key>","The API key to use for authentication.").env("CROCT_API_KEY").argParser(h=>{try{return ApiKey.parse(h)}catch{throw new Fe("The API key is malformed.")}})).option("--registry <url>","The template registry.",h=>{if(!URL.canParse(h))throw new Fe("Malformed URL.");return h}).option("--no-interaction","Disable interaction mode.").addOption(new se("-s, --skip-prompts","Skip prompts with default options.").default(false)).addOption(new se("-q, --quiet","Disable output messages.").default(false).implies({interaction:false})).option("--debug","Enable debug mode.").version(ss.version,"-v, --version","Display the version number.").helpOption("-h, --help","Display help for a command.").helpCommand("help [command]","Display help for a command.");e.command("open <url>").description("Open a deep link.").action(async h=>{await o.cli?.open({url:h});});let t=e.command("login").description("Authenticate your user."),n=new se("-u, --username <username>","The email."),r=new se("-p, --password <password>","The password.");t.command("credentials",{isDefault:true}).description("Authenticate using credentials.").addOption(o.interactive?n:n.makeOptionMandatory()).addOption(o.interactive?r:r.makeOptionMandatory()).action(async h=>{await o.cli?.login({method:"credentials",username:h.username,password:h.password});}),e.command("logout").description("Logout the current user.").action(async()=>{await o.cli?.logout();}),e.command("admin").argument("[page...]","The name of the page or path to open.").description("Log in and open the admin panel.").action(async h=>{await o.cli?.admin({page:h!==void 0?h.join(" "):o.interactive?void 0:"/"});});let i=new se("--wor <workspace-slug>","The workspace slug."),a=new se("--org <organization-slug>","The organization slug."),s=new se("--dev-app <application-slug>","The development application slug."),p=new se("--prod-app <application-slug>","The production application slug.");e.command("init").description("Configure the project.").option("-o, --override","Override any existing configuration.").addOption(new se("-n, --new <resource>","The resources to create.").choices(["organization","org","workspace","wor","application","app"])).addOption(new se("-s, --sdk <platform>","The SDK to use.").choices(["javascript","react","next"])).addOption(o.interactive?a:a.makeOptionMandatory()).addOption(o.interactive?i:i.makeOptionMandatory()).addOption(o.interactive?s:s.makeOptionMandatory()).addOption(p).action(async h=>{await o.cli?.init({override:h.override,new:(()=>{switch(h.new){case "organization":case "org":return "organization";case "workspace":case "wor":return "workspace";case "application":case "app":return "application";default:return}})(),sdk:h.sdk,organization:h.org,workspace:h.wor,devApplication:h.devApp,prodApplication:h.prodApp});}),e.command("install").description("Install content and types.").action(async()=>{await o.cli?.install({});}),e.command("update").description("Update content and types.").action(async()=>{await o.cli?.install({clean:true});}),e.command("upgrade").description("Upgrade components and slots to the latest version.").option("-s, --slots <slots...>","The slots to upgrade.").option("-c, --components <components...>","The components to upgrade.").action(async h=>{await o.cli?.upgrade({slots:h.slots??(h.components!==void 0?[]:void 0),components:h.components??(h.slots!==void 0?[]:void 0)});});let c=e.command("add").description("Add a resource to your project.");c.command("slot").description("Add a slot to your project.").argument(o.interactive?"[slots...]":"<slots...>").option("-e, --example","Generate an implementation example.").action(async(h,O)=>{await o.cli?.addSlot({slots:h,example:O.example});}),c.command("component").description("Add a component to your project.").argument(o.interactive?"[components...]":"<components...>").action(async h=>{await o.cli?.addComponent({components:h});});let l=e.command("remove").description("Remove a resource from your project.");l.command("slot").description("Remove a slot from your project.").argument(o.interactive?"[slots...]":"<slots...>").action(async h=>{await o.cli?.removeSlot({slots:h});}),l.command("component").description("Remove a component from your project.").argument(o.interactive?"[components...]":"<components...>").action(async h=>{await o.cli?.removeComponent({components:h});});let u=e.command("create").description("Create a resource in your project.");u.command("template").description("Create a template from your project.").addArgument(new gs("<path>","The path to the file.").argOptional()).option("-e, --empty","Create an empty template.").action(async(h,O)=>{await o.cli?.createTemplate({file:h,empty:O.empty});});let f=new se("--permissions <permissions...>","The permissions of the API key.").argParser(h=>h.split(",").map(O=>{try{return Ae.fromValue(O)}catch{throw new Fe(`Unknown permission "${O}".`)}})),y=new se("--env <environment>","The environment of the API key.").choices(["prod","dev"]).argParser(h=>h==="prod"?"PRODUCTION":"DEVELOPMENT");u.command("api-key").description("Create an API key.").option("--name <name>","The name of the API key.").addOption(o.interactive?f:f.makeOptionMandatory()).addOption(o.interactive?y:y.makeOptionMandatory()).option("-c, --copy","Copy the API key to the clipboard.").action(async h=>{await o.cli?.createApiKey({name:h.name,permissions:h.permissions,environment:h.env,copy:h.copy});});let k={},I=e.command("use").description("Use a template.").argument("template","The path to the template.").passThroughOptions(o.cli===void 0).allowUnknownOption(o.cli===void 0||o.template===null).action(async(h,O)=>{await o.cli?.useTemplate({template:h,options:Object.fromEntries(Object.entries(O).map(([N,U])=>[k[N],U]))});});for(let[h,O]of Object.entries(o.template??{})){let N=`--${h}${O.type!=="boolean"?" <value>":""}`,U=new se(N,O.description).makeOptionMandatory(O.required===true);switch(O.type){case "string":O.choices!==void 0&&O.choices.length>0&&U.choices(O.choices);break;case "number":U.argParser(Ge=>{let W=Number.parseFloat(Ge);if(Number.isNaN(W))throw new Fe("The value must be a number.");return W});break;case "array":U.argParser(Ge=>{let W;try{W=JSON.parse(Ge);}catch{}if(W===void 0||!Array.isArray(W))throw new Fe("The value must be a JSON array.");return Ge.split(",")});break;case "object":U.argParser(Ge=>{let W;try{W=JSON.parse(Ge);}catch{throw new Fe("The JSON is malformed.")}if(typeof W!="object"||W===null)throw new Fe("The value must be a JSON object.")});break}k[U.attributeName()]=h,I.addOption(U);}let M=e.command("deep-link").description("Enable or disable deep link support.");return M.command("enable").description("Enable deep link support.").action(async()=>{await o.cli?.deepLink({operation:"enable"});}),M.command("disable").description("Disable deep link support.").action(async()=>{await o.cli?.deepLink({operation:"disable"});}),e}function gd(o){let e=["use","help use"];for(let t of e){let n=t.split(" ").length;if(o.length>n&&o.slice(0,n).join(" ")===t&&(o[n]??"")!=="")return o[n]}return null}async function ps(o=process.argv,e=true){let t=_c({interactive:true}).parse(o),n=t.opts(),r=Ia.fromDefaults({program:p=>ps(t.args.slice(0,2).concat(p)),version:ss.version,quiet:n.quiet,debug:n.debug,interactive:n.interaction?void 0:false,apiKey:n.apiKey,skipPrompts:n.skipPrompts===true,templateRegistryUrl:n.registry===void 0?void 0:new URL(n.registry)}),i=gd(t.args),a=i!==null?await r.getTemplateOptions(i).catch(()=>null):void 0,s=_c({cli:r,interactive:n.interaction,template:a});e&&await r.welcome({skipDeepLinkCheck:t.args[0]==="deep-link"}),await s.parseAsync(o);}ps();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "croct",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "A command-line interface (CLI) for managing projects using Croct.",
5
5
  "author": {
6
6
  "name": "Croct",