@stacksjs/dtsx 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -173,4 +173,4 @@ function moveProperties(source, destination, ignoreKeys) {
173
173
  }
174
174
  };`}function e$(Z){return`const REQUIRED = '${Z.required}';
175
175
  const NOT_AN_OBJECT = '${Z.object}';
176
- const NOT_AN_ARRAY = '${Z.array}';`}var ZK=Object.getPrototypeOf(async function(){}).constructor,JK=class{variablesCounter=0;#Z;#J;#X=new C$;constructor(Z,J){this.#Z=Z,this.#J=J||{convertEmptyStringsToNull:!1}}#Q(){this.#X.writeStatement(e$({required:"value is required",object:"value is not a valid object",array:"value is not a valid array",...this.#J.messages})),this.#X.writeStatement(t$(this.#J)),this.#X.writeStatement("let out;")}#Y(){this.#X.writeStatement(a$()),this.#X.writeStatement("return out;")}#G(){this.compileNode(this.#Z.schema,this.#X,{type:"root",variableName:"root",outputExpression:"out",fieldPathExpression:"out",wildCardPath:""})}#z(){return new ZK("root","meta","refs","messagesProvider","errorReporter",this.#X.toString())}createFieldFor(Z,J){switch(J.type){case"array":return i$(J);case"root":return p$(J);case"object":return r$(Z,this.variablesCounter,J);case"tuple":return s$(Z,J);case"record":return o$(J)}}compileNode(Z,J,X,Q){switch(Z.type){case"literal":return new n$(Z,J,this,X,Q).compile();case"array":return new g$(Z,J,this,X,Q).compile();case"record":return new m$(Z,J,this,X,Q).compile();case"object":return new c$(Z,J,this,X,Q).compile();case"tuple":return new y$(Z,J,this,X,Q).compile();case"union":return new f$(Z,J,this,X,Q).compile()}}compile(){this.#Q(),this.#G(),this.#Y();let Z=this.#z();return this.variablesCounter=0,this.#X.flush(),Z}};function XK(){let Z=0,J={};return{toJSON(){return J},track(X){Z++;let Q=`ref://${Z}`;return J[Q]=X,Q},trackValidation(X){return this.track(X)},trackParser(X){return this.track(X)},trackTransformer(X){return this.track(X)},trackConditional(X){return this.track(X)}}}function m(Z,J){let X={validator:Z,isAsync:J?.isAsync||Z.constructor.name==="AsyncFunction",implicit:J?.implicit??!1};return function(...Q){return{rule:X,options:Q[0]}}}var QK={};o7(QK,{COTYPE:()=>GK,IS_OF_TYPE:()=>g1,ITYPE:()=>YK,OTYPE:()=>zK,PARSE:()=>e,UNIQUE_NAME:()=>C1,VALIDATION:()=>I0});var C1=Symbol.for("schema_name"),g1=Symbol.for("is_of_type"),e=Symbol.for("parse"),YK=Symbol.for("opaque_input_type"),zK=Symbol.for("opaque_type"),GK=Symbol.for("camelcase_opaque_type"),I0=Symbol.for("to_validation"),P0=m((Z,J,X)=>{let Q=J(X);if(!X.isDefined&&Q)X.report(x.required,"required",X)},{implicit:!0}),m6=class extends t8{optional(Z){return new KK(this,Z)}nullable(){return new $K(this)}transform(Z){return new UK(Z,this)}},$K=class Z extends m6{#Z;constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);return z.allowNull=!0,z}},KK=class Z extends m6{#Z;validations;constructor(J,X){super();this.#Z=J,this.validations=X||[]}cloneValidations(){return this.validations.map((J)=>{return{options:J.options,rule:J.rule}})}compileValidations(J){return this.validations.map((X)=>{return{ruleFnId:J.track({validator:X.rule.validator,options:X.options}),implicit:X.rule.implicit,isAsync:X.rule.isAsync}})}use(J){return this.validations.push(I0 in J?J[I0]():J),this}requiredWhen(J,X,Q){if(typeof J==="function")return this.use(P0(J));let z;switch(X){case"=":z=(G)=>G===Q;break;case"!=":z=(G)=>G!==Q;break;case"in":z=(G)=>Q.includes(G);break;case"notIn":z=(G)=>!Q.includes(G);break;case">":z=(G)=>G>Q;break;case"<":z=(G)=>G<Q;break;case">=":z=(G)=>G>=Q;break;case"<=":z=(G)=>G<=Q}return this.use(P0((G)=>{let Y=s.getNestedValue(J,G);return z(Y)}))}requiredIfExists(J){let X=Array.isArray(J)?J:[J];return this.use(P0((Q)=>{return X.every((z)=>s.exists(s.getNestedValue(z,Q)))}))}requiredIfAnyExists(J){return this.use(P0((X)=>{return J.some((Q)=>s.exists(s.getNestedValue(Q,X)))}))}requiredIfMissing(J){let X=Array.isArray(J)?J:[J];return this.use(P0((Q)=>{return X.every((z)=>s.isMissing(s.getNestedValue(z,Q)))}))}requiredIfAnyMissing(J){return this.use(P0((X)=>{return J.some((Q)=>s.isMissing(s.getNestedValue(Q,X)))}))}clone(){return new Z(this.#Z.clone(),this.cloneValidations())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);return z.isOptional=!0,z.validations=z.validations.concat(this.compileValidations(X)),z}},UK=class Z extends m6{#Z;#J;constructor(J,X){super();this.#J=J,this.#Z=X}clone(){return new Z(this.#J,this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);return z.transformFnId=X.trackTransformer(this.#J),z}},X0=class extends m6{options;validations;constructor(Z,J){super();this.options={bail:!0,allowNull:!1,isOptional:!1,...Z},this.validations=J||[]}cloneValidations(){return this.validations.map((Z)=>{return{options:Z.options,rule:Z.rule}})}cloneOptions(){return{...this.options}}compileValidations(Z){return this.validations.map((J)=>{return{ruleFnId:Z.track({validator:J.rule.validator,options:J.options}),implicit:J.rule.implicit,isAsync:J.rule.isAsync}})}parse(Z){return this.options.parse=Z,this}use(Z){return this.validations.push(I0 in Z?Z[I0]():Z),this}bail(Z){return this.options.bail=Z,this}[e](Z,J,X){return{type:"literal",fieldName:Z,propertyName:X.toCamelCase?W0(Z):Z,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,parseFnId:this.options.parse?J.trackParser(this.options.parse):void 0,validations:this.compileValidations(J)}}},BK=class Z extends X0{constructor(J,X){super(J,X)}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},S6=m((Z,J,X)=>{let Q=typeof J.choices==="function"?J.choices(X):J.choices;if(!Q.includes(Z))X.report(x.enum,"enum",X,{choices:Q})}),$X=class Z extends X0{static rules={enum:S6};#Z;getChoices(){return this.#Z}constructor(J,X,Q){super(X,Q||[S6({choices:J})]);this.#Z=J}clone(){return new Z(this.#Z,this.cloneOptions(),this.cloneValidations())}},j0=["YYYY-MM-DD","YYYY-MM-DD HH:mm:ss"];R1.default.extend(A$.default);R1.default.extend(E$.default);R1.default.extend(j$.default);var HK=m((Z,J,X)=>{if(typeof Z!=="string"&&typeof Z!=="number"){X.report(x.date,"date",X);return}let Q=!1,z=J.formats||j0;if(Array.isArray(z))z=[...z],Q=z.includes("x");else if(typeof z!=="string")z={...z},Q=z.format==="x";let G=Q?s.asNumber(Z):Z,Y=Q&&!Number.isNaN(G)?R1.default(G):R1.default(Z,z,!0);if(!Y.isValid()){X.report(x.date,"date",X);return}X.meta.$value=Y,X.meta.$formats=z,X.mutate(Y.toDate(),X)}),$J=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the equals rule`);if(!G.isSame($,Q))X.report(x["date.equals"],"date.equals",X,{expectedValue:Y,compare:Q})}),KJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="tomorrow"?R1.default().add(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the after rule`);if(!G.isAfter($,Q))X.report(x["date.after"],"date.after",X,{expectedValue:Y,compare:Q})}),UJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="tomorrow"?R1.default().add(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the afterOrEqual rule`);if(!G.isSameOrAfter($,Q))X.report(x["date.afterOrEqual"],"date.afterOrEqual",X,{expectedValue:Y,compare:Q})}),BJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="yesterday"?R1.default().subtract(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the before rule`);if(!G.isBefore($,Q))X.report(x["date.before"],"date.before",X,{expectedValue:Y,compare:Q})}),HJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="yesterday"?R1.default().subtract(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the beforeOrEqual rule`);if(!G.isSameOrBefore($,Q))X.report(x["date.beforeOrEqual"],"date.beforeOrEqual",X,{expectedValue:Y,compare:Q})}),WJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isSame($,Q))X.report(x["date.sameAs"],"date.sameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),qJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(z.isSame($,Q))X.report(x["date.notSameAs"],"date.notSameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),MJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isAfter($,Q))X.report(x["date.afterField"],"date.afterField",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),FJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isSameOrAfter($,Q))X.report(x["date.afterOrSameAs"],"date.afterOrSameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),RJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isBefore($,Q))X.report(x["date.beforeField"],"date.beforeField",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),VJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isSameOrBefore($,Q))X.report(x["date.beforeOrSameAs"],"date.beforeOrSameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),IJ=m((Z,J,X)=>{if(!X.meta.$value)return;let z=X.meta.$value.day();if(z!==0&&z!==6)X.report(x["date.weekend"],"date.weekend",X)}),EJ=m((Z,J,X)=>{if(!X.meta.$value)return;let z=X.meta.$value.day();if(z===0||z===6)X.report(x["date.weekday"],"date.weekday",X)}),WK=class Z extends X0{static rules={equals:$J,after:KJ,afterOrEqual:UJ,before:BJ,beforeOrEqual:HJ,sameAs:WJ,notSameAs:qJ,afterField:MJ,afterOrSameAs:FJ,beforeField:RJ,beforeOrSameAs:VJ,weekend:IJ,weekday:EJ};[C1]="vine.date";[g1]=(J)=>{if(typeof J!=="string")return!1;return I$.default(J,this.options.formats||j0,!0).isValid()};constructor(J,X){super(J,X||[HK(J||{})])}equals(J,X){return this.use($J({expectedValue:J,...X}))}after(J,X){return this.use(KJ({expectedValue:J,...X}))}afterOrEqual(J,X){return this.use(UJ({expectedValue:J,...X}))}before(J,X){return this.use(BJ({expectedValue:J,...X}))}beforeOrEqual(J,X){return this.use(HJ({expectedValue:J,...X}))}sameAs(J,X){return this.use(WJ({otherField:J,...X}))}notSameAs(J,X){return this.use(qJ({otherField:J,...X}))}afterField(J,X){return this.use(MJ({otherField:J,...X}))}afterOrSameAs(J,X){return this.use(FJ({otherField:J,...X}))}beforeField(J,X){return this.use(RJ({otherField:J,...X}))}beforeOrSameAs(J,X){return this.use(VJ({otherField:J,...X}))}weekend(){return this.use(IJ())}weekday(){return this.use(EJ())}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},qK=class Z{#Z;#J=(J,X)=>{X.report(x.union,"union",X)};constructor(J){this.#Z=J}otherwise(J){return this.#J=J,this}clone(){let J=new Z(this.#Z);return J.otherwise(this.#J),J}[e](J,X,Q){return{type:"union",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,elseConditionalFnRefId:X.trackConditional(this.#J),conditions:this.#Z.map((z)=>z[e](J,X,Q))}}},KX=class{#Z;#J;constructor(Z,J){this.#Z=J,this.#J=Z}[e](Z,J,X){return{conditionalFnRefId:J.trackConditional(this.#J),schema:this.#Z[e](Z,J,X)}}};function ZZ(Z){return new qK(Z)}ZZ.if=function Z(J,X){return new KX(J,X)};ZZ.else=function Z(J){return new KX(()=>!0,J)};var u6=class extends t8{optional(){return new FK(this)}nullable(){return new MK(this)}},MK=class Z extends u6{#Z;constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);if(z.type!=="union")z.allowNull=!0;return z}},FK=class Z extends u6{#Z;constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);if(z.type!=="union")z.isOptional=!0;return z}},d6=class extends u6{options;validations;constructor(Z,J){super();this.options=Z||{bail:!0,allowNull:!1,isOptional:!1},this.validations=J||[]}cloneValidations(){return this.validations.map((Z)=>{return{options:Z.options,rule:Z.rule}})}cloneOptions(){return{...this.options}}compileValidations(Z){return this.validations.map((J)=>{return{ruleFnId:Z.track({validator:J.rule.validator,options:J.options}),implicit:J.rule.implicit,isAsync:J.rule.isAsync}})}parse(Z){return this.options.parse=Z,this}use(Z){return this.validations.push(I0 in Z?Z[I0]():Z),this}bail(Z){return this.options.bail=Z,this}},RK=class Z extends d6{#Z;#J=!1;[C1]="vine.array";[g1]=(J)=>{return Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}allowUnknownProperties(){return this.#J=!0,this}clone(){let J=new Z(this.#Z.map((X)=>X.clone()),this.cloneOptions(),this.cloneValidations());if(this.#J)J.allowUnknownProperties();return J}[e](J,X,Q){return{type:"tuple",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,allowUnknownProperties:this.#J,parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,validations:this.compileValidations(X),properties:this.#Z.map((z,G)=>z[e](String(G),X,Q))}}},jJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length<J.min)X.report(x["array.minLength"],"array.minLength",X,J)}),AJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length>J.max)X.report(x["array.maxLength"],"array.maxLength",X,J)}),NJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length!==J.size)X.report(x["array.fixedLength"],"array.fixedLength",X,J)}),PJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length<=0)X.report(x.notEmpty,"notEmpty",X)}),OJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isDistinct(Z,J.fields))X.report(x.distinct,"distinct",X,J)}),wJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.filter((Q)=>s.exists(Q)&&Q!==""),X)}),VK=class Z extends d6{static rules={compact:wJ,notEmpty:PJ,distinct:OJ,minLength:jJ,maxLength:AJ,fixedLength:NJ};#Z;[C1]="vine.array";[g1]=(J)=>{return Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}minLength(J){return this.use(jJ({min:J}))}maxLength(J){return this.use(AJ({max:J}))}fixedLength(J){return this.use(NJ({size:J}))}notEmpty(){return this.use(PJ())}distinct(J){return this.use(OJ({fields:J}))}compact(){return this.use(wJ())}clone(){return new Z(this.#Z.clone(),this.cloneOptions(),this.cloneValidations())}[e](J,X,Q){return{type:"array",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,each:this.#Z[e]("*",X,Q),parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,validations:this.compileValidations(X)}}},IK=class Z extends u6{#Z;[C1]="types.object";[g1]=(J)=>{return J!==null&&typeof J==="object"&&!Array.isArray(J)};constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){return Q.toCamelCase=!0,this.#Z[e](J,X,Q)}},EK=class Z extends d6{#Z;#J=[];#X=!1;[C1]="vine.object";[g1]=(J)=>{return J!==null&&typeof J==="object"&&!Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}getProperties(){return Object.keys(this.#Z).reduce((J,X)=>{return J[X]=this.#Z[X].clone(),J},{})}allowUnknownProperties(){return this.#X=!0,this}merge(J){return this.#J.push(J),this}clone(){let J=new Z(this.getProperties(),this.cloneOptions(),this.cloneValidations());if(this.#J.forEach((X)=>J.merge(X)),this.#X)J.allowUnknownProperties();return J}toCamelCase(){return new IK(this)}[e](J,X,Q){return{type:"object",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,allowUnknownProperties:this.#X,validations:this.compileValidations(X),properties:Object.keys(this.#Z).map((z)=>{return this.#Z[z][e](z,X,Q)}),groups:this.#J.map((z)=>{return z[e](X,Q)})}}},TJ=m((Z,J,X)=>{if(!X.isValid)return;if(Object.keys(Z).length<J.min)X.report(x["record.minLength"],"record.minLength",X,J)}),LJ=m((Z,J,X)=>{if(!X.isValid)return;if(Object.keys(Z).length>J.max)X.report(x["record.maxLength"],"record.maxLength",X,J)}),SJ=m((Z,J,X)=>{if(!X.isValid)return;if(Object.keys(Z).length!==J.size)X.report(x["record.fixedLength"],"record.fixedLength",X,J)}),DJ=m((Z,J,X)=>{if(!X.isValid)return;J(Object.keys(Z),X)}),jK=class Z extends d6{static rules={maxLength:LJ,minLength:TJ,fixedLength:SJ,validateKeys:DJ};#Z;[C1]="vine.object";[g1]=(J)=>{return J!==null&&typeof J==="object"&&!Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}minLength(J){return this.use(TJ({min:J}))}maxLength(J){return this.use(LJ({max:J}))}fixedLength(J){return this.use(SJ({size:J}))}validateKeys(...J){return this.use(DJ(...J))}clone(){return new Z(this.#Z.clone(),this.cloneOptions(),this.cloneValidations())}[e](J,X,Q){return{type:"record",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,each:this.#Z[e]("*",X,Q),parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,validations:this.compileValidations(X)}}},CJ=m((Z,J,X)=>{if(typeof Z!=="string")X.report(x.string,"string",X)}),_J=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isEmail(Z,J))X.report(x.email,"email",X)}),bJ=m((Z,J,X)=>{if(!X.isValid)return;let Q=J&&typeof J==="function"?J(X):J,z=Q?.locale||"any";if(!s.isMobilePhone(Z,z,Q))X.report(x.mobile,"mobile",X)}),kJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isIP(Z,J?.version))X.report(x.ipAddress,"ipAddress",X)}),yJ=m((Z,J,X)=>{if(!X.isValid)return;if(!J.test(Z))X.report(x.regex,"regex",X)}),hJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isHexColor(Z))X.report(x.hexCode,"hexCode",X)}),gJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isURL(Z,J))X.report(x.url,"url",X)}),vJ=m(async(Z,J,X)=>{if(!X.isValid)return;if(!await s.isActiveURL(Z))X.report(x.activeUrl,"activeUrl",X)}),fJ=m((Z,J,X)=>{if(!X.isValid)return;let Q="a-zA-Z";if(J){if(J.allowSpaces)Q+="\\s";if(J.allowDashes)Q+="-";if(J.allowUnderscores)Q+="_"}if(!new RegExp(`^[${Q}]+$`).test(Z))X.report(x.alpha,"alpha",X)}),xJ=m((Z,J,X)=>{if(!X.isValid)return;let Q="a-zA-Z0-9";if(J){if(J.allowSpaces)Q+="\\s";if(J.allowDashes)Q+="-";if(J.allowUnderscores)Q+="_"}if(!new RegExp(`^[${Q}]+$`).test(Z))X.report(x.alphaNumeric,"alphaNumeric",X)}),mJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length<J.min)X.report(x.minLength,"minLength",X,J)}),uJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length>J.max)X.report(x.maxLength,"maxLength",X,J)}),dJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length!==J.size)X.report(x.fixedLength,"fixedLength",X,J)}),cJ=m((Z,J,X)=>{if(!X.isValid)return;if(!Z.endsWith(J.substring))X.report(x.endsWith,"endsWith",X,J)}),pJ=m((Z,J,X)=>{if(!X.isValid)return;if(!Z.startsWith(J.substring))X.report(x.startsWith,"startsWith",X,J)}),lJ=m((Z,J,X)=>{if(!X.isValid)return;if(s.getNestedValue(J.otherField,X)!==Z){X.report(x.sameAs,"sameAs",X,J);return}}),nJ=m((Z,J,X)=>{if(!X.isValid)return;if(s.getNestedValue(J.otherField,X)===Z){X.report(x.notSameAs,"notSameAs",X,J);return}}),iJ=m((Z,J,X)=>{if(!X.isValid)return;let Q=J?.confirmationField||`${X.name}_confirmation`;if(X.parent[Q]!==Z){X.report(x.confirmed,"confirmed",X,{otherField:Q});return}}),sJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.trim(),X)}),aJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(D$.default.default(Z,J),X)}),rJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.toLocaleUpperCase(J),X)}),oJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.toLocaleLowerCase(J),X)}),tJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(W0(Z),X)}),eJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(S$.default.default(Z),X)}),Z9=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(L$(Z,J),X)}),J9=m((Z,J,X)=>{if(!X.isValid)return;if(!(typeof J.choices==="function"?J.choices(X):J.choices).includes(Z)){X.report(x.in,"in",X,J);return}}),X9=m((Z,J,X)=>{if(!X.isValid)return;if((typeof J.list==="function"?J.list(X):J.list).includes(Z)){X.report(x.notIn,"notIn",X,J);return}}),Q9=m((Z,J,X)=>{if(!X.isValid)return;let Q=J?typeof J==="function"?J(X)?.provider||[]:J.provider:[];if(!Q.length){if(!s.isCreditCard(Z))X.report(x.creditCard,"creditCard",X,{providersList:"credit"})}else if(!Q.find((G)=>s.isCreditCard(Z,{provider:G})))X.report(x.creditCard,"creditCard",X,{providers:Q,providersList:Q.join("/")})}),Y9=m((Z,J,X)=>{if(!X.isValid)return;let Q=typeof J==="function"?J(X).countryCode:J.countryCode;if(!Q.find((G)=>s.isPassportNumber(Z,G)))X.report(x.passport,"passport",X,{countryCodes:Q})}),z9=m((Z,J,X)=>{if(!X.isValid)return;let Q=J?typeof J==="function"?J(X)?.countryCode||[]:J.countryCode:[];if(!Q.length){if(!s.isPostalCode(Z,"any"))X.report(x.postalCode,"postalCode",X)}else if(!Q.find((G)=>s.isPostalCode(Z,G)))X.report(x.postalCode,"postalCode",X,{countryCodes:Q})}),G9=m((Z,J,X)=>{if(!X.isValid)return;if(!J||!J.version){if(!s.isUUID(Z))X.report(x.uuid,"uuid",X)}else if(!J.version.find((z)=>s.isUUID(Z,z)))X.report(x.uuid,"uuid",X,J)}),$9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isAscii(Z))X.report(x.ascii,"ascii",X)}),K9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isIBAN(Z))X.report(x.iban,"iban",X)}),U9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isJWT(Z))X.report(x.jwt,"jwt",X)}),B9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isLatLong(Z))X.report(x.coordinates,"coordinates",X)}),AK=class Z extends X0{static rules={in:J9,jwt:U9,url:gJ,iban:K9,uuid:G9,trim:sJ,email:_J,alpha:fJ,ascii:$9,notIn:X9,regex:yJ,escape:eJ,sameAs:lJ,mobile:bJ,string:CJ,hexCode:hJ,passport:Y9,endsWith:cJ,confirmed:iJ,activeUrl:vJ,minLength:mJ,notSameAs:nJ,maxLength:uJ,ipAddress:kJ,creditCard:Q9,postalCode:z9,startsWith:pJ,toUpperCase:rJ,toLowerCase:oJ,toCamelCase:tJ,fixedLength:dJ,coordinates:B9,normalizeUrl:Z9,alphaNumeric:xJ,normalizeEmail:aJ};[C1]="vine.string";[g1]=(J)=>{return typeof J==="string"};constructor(J,X){super(J,X||[CJ()])}url(...J){return this.use(gJ(...J))}activeUrl(){return this.use(vJ())}email(...J){return this.use(_J(...J))}mobile(...J){return this.use(bJ(...J))}ipAddress(J){return this.use(kJ(J?{version:J}:void 0))}hexCode(){return this.use(hJ())}regex(J){return this.use(yJ(J))}alpha(J){return this.use(fJ(J))}alphaNumeric(J){return this.use(xJ(J))}minLength(J){return this.use(mJ({min:J}))}maxLength(J){return this.use(uJ({max:J}))}fixedLength(J){return this.use(dJ({size:J}))}confirmed(J){return this.use(iJ(J))}trim(){return this.use(sJ())}normalizeEmail(J){return this.use(aJ(J))}toUpperCase(){return this.use(rJ())}toLowerCase(){return this.use(oJ())}toCamelCase(){return this.use(tJ())}escape(){return this.use(eJ())}normalizeUrl(...J){return this.use(Z9(...J))}startsWith(J){return this.use(pJ({substring:J}))}endsWith(J){return this.use(cJ({substring:J}))}sameAs(J){return this.use(lJ({otherField:J}))}notSameAs(J){return this.use(nJ({otherField:J}))}in(J){return this.use(J9({choices:J}))}notIn(J){return this.use(X9({list:J}))}creditCard(...J){return this.use(Q9(...J))}passport(...J){return this.use(Y9(...J))}postalCode(...J){return this.use(z9(...J))}uuid(...J){return this.use(G9(...J))}ascii(){return this.use($9())}iban(){return this.use(K9())}jwt(){return this.use(U9())}coordinates(){return this.use(B9())}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},H9=m((Z,J,X)=>{let Q=J.strict?Z:s.asNumber(Z);if(typeof Q!=="number"||Number.isNaN(Q)||Q===Number.POSITIVE_INFINITY||Q===Number.NEGATIVE_INFINITY){X.report(x.number,"number",X);return}X.mutate(Q,X)}),W9=m((Z,J,X)=>{if(!X.isValid)return;if(Z<J.min)X.report(x.min,"min",X,J)}),q9=m((Z,J,X)=>{if(!X.isValid)return;if(Z>J.max)X.report(x.max,"max",X,J)}),M9=m((Z,J,X)=>{if(!X.isValid)return;if(Z<J.min||Z>J.max)X.report(x.range,"range",X,J)}),F9=m((Z,J,X)=>{if(!X.isValid)return;if(Z<0)X.report(x.positive,"positive",X)}),R9=m((Z,J,X)=>{if(!X.isValid)return;if(Z>=0)X.report(x.negative,"negative",X)}),V9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isDecimal(String(Z),{force_decimal:J.range[0]!==0,decimal_digits:J.range.join(",")}))X.report(x.decimal,"decimal",X,{digits:J.range.join("-")})}),I9=m((Z,J,X)=>{if(!X.isValid)return;if(!Number.isInteger(Z))X.report(x.withoutDecimals,"withoutDecimals",X)}),E9=m((Z,J,X)=>{if(!X.isValid)return;if(!J.values.includes(Z))X.report(x["number.in"],"in",X,J)}),UX=class Z extends X0{static rules={in:E9,max:q9,min:W9,range:M9,number:H9,decimal:V9,negative:R9,positive:F9,withoutDecimals:I9};[C1]="vine.number";[g1]=(J)=>{let X=s.asNumber(J);return!Number.isNaN(X)};constructor(J,X){super(J,X||[H9(J||{})])}min(J){return this.use(W9({min:J}))}max(J){return this.use(q9({max:J}))}range(J){return this.use(M9({min:J[0],max:J[1]}))}positive(){return this.use(F9())}negative(){return this.use(R9())}decimal(J){return this.use(V9({range:Array.isArray(J)?J:[J]}))}withoutDecimals(){return this.use(I9())}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}in(J){return this.use(E9({values:J}))}},j9=m((Z,J,X)=>{let Q=J.strict===!0?Z:s.asBoolean(Z);if(typeof Q!=="boolean"){X.report(x.boolean,"boolean",X);return}X.mutate(Q,X)}),BX=class Z extends X0{static rules={boolean:j9};[C1]="vine.boolean";[g1]=(J)=>{return typeof(this.options.strict===!0?J:s.asBoolean(J))==="boolean"};constructor(J,X){super(J,X||[j9(J||{})])}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},A9=m((Z,J,X)=>{let Q=Z;if(typeof J.expectedValue==="boolean")Q=s.asBoolean(Z);else if(typeof J.expectedValue==="number")Q=s.asNumber(Z);if(Q!==J.expectedValue){X.report(x.literal,"literal",X,J);return}X.mutate(Q,X)}),NK=class Z extends X0{static rules={equals:A9};#Z;constructor(J,X,Q){super(X,Q||[A9({expectedValue:J})]);this.#Z=J}clone(){return new Z(this.#Z,this.cloneOptions(),this.cloneValidations())}},PK=["on","1","yes","true",!0,1],N9=m((Z,J,X)=>{if(!PK.includes(Z))X.report(x.accepted,"accepted",X)}),OK=class Z extends X0{static rules={accepted:N9};constructor(J,X){super(J,X||[N9()])}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},wK=class Z{#Z;#J=(J,X)=>{X.report(x.unionGroup,"unionGroup",X)};constructor(J){this.#Z=J}clone(){let J=new Z(this.#Z);return J.otherwise(this.#J),J}otherwise(J){return this.#J=J,this}[e](J,X){return{type:"group",elseConditionalFnRefId:J.trackConditional(this.#J),conditions:this.#Z.map((Q)=>Q[e](J,X))}}},HX=class{#Z;#J;constructor(Z,J){this.#Z=J,this.#J=Z}[e](Z,J){return{schema:{type:"sub_object",properties:Object.keys(this.#Z).map((X)=>{return this.#Z[X][e](X,Z,J)}),groups:[]},conditionalFnRefId:Z.trackConditional(this.#J)}}};function JZ(Z){return new wK(Z)}JZ.if=function Z(J,X){return new HX(J,X)};JZ.else=function Z(J){return new HX(()=>!0,J)};var TK=class Z extends X0{static rules={enum:S6};#Z;constructor(J,X,Q){super(X,Q||[S6({choices:Object.values(J)})]);this.#Z=J}clone(){return new Z(this.#Z,this.cloneOptions(),this.cloneValidations())}},LK=class Z{#Z;#J=(J,X)=>{X.report(x.unionOfTypes,"unionOfTypes",X)};constructor(J){this.#Z=J}otherwise(J){return this.#J=J,this}clone(){let J=new Z(this.#Z);return J.otherwise(this.#J),J}[e](J,X,Q){return{type:"union",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,elseConditionalFnRefId:X.trackConditional(this.#J),conditions:this.#Z.map((z)=>{return{conditionalFnRefId:X.trackConditional((G,Y)=>{return z[g1](G,Y)}),schema:z[e](J,X,Q)}})}}},SK=class extends t8{group=JZ;union=ZZ;string(){return new AK}boolean(Z){return new BX(Z)}accepted(){return new OK}number(Z){return new UX(Z)}date(Z){return new WK(Z)}literal(Z){return new NK(Z)}object(Z){return new EK(Z)}array(Z){return new VK(Z)}tuple(Z){return new RK(Z)}record(Z){return new jK(Z)}enum(Z){if(Array.isArray(Z)||typeof Z==="function")return new $X(Z);return new TK(Z)}any(){return new BK}unionOfTypes(Z){let J=new Set;return Z.forEach((X)=>{if(!X[g1]||!X[C1])throw new Error(`Cannot use "${X.constructor.name}". The schema type is not compatible for use with "vine.unionOfTypes"`);if(J.has(X[C1]))throw new Error(`Cannot use duplicate schema "${X[C1]}". "vine.unionOfTypes" needs distinct schema types only`);J.add(X[C1])}),J.clear(),new LK(Z)}},DK={required:x.required,array:x.array,object:x.object},P9=class{#Z;messagesProvider;errorReporter;#J(Z){let J=XK();return{compilerNode:{type:"root",schema:Z[e]("",J,{toCamelCase:!1})},refs:J.toJSON()}}constructor(Z,J){let{compilerNode:X,refs:Q}=this.#J(Z);this.#Z={schema:X,refs:Q};let z=J.metaDataValidator,G=new JK(X,{convertEmptyStringsToNull:J.convertEmptyStringsToNull,messages:DK}).compile();if(this.errorReporter=J.errorReporter,this.messagesProvider=J.messagesProvider,z)this.validate=(Y,$)=>{let K=$??{},U=K.meta??{},H=K.errorReporter??this.errorReporter,B=K.messagesProvider??this.messagesProvider;return z(U),G(Y,U,Q,B,H())};else this.validate=(Y,$)=>{let K=$??{},U=K.meta??{},H=K.errorReporter??this.errorReporter,B=K.messagesProvider??this.messagesProvider;return G(Y,U,Q,B,H())}}async tryValidate(Z,...[J]){try{return[null,await this.validate(Z,J)]}catch(X){if(X instanceof t7)return[X,null];throw X}}toJSON(){let{schema:Z,refs:J}=this.#Z;return{schema:structuredClone(Z),refs:J}}},CK=class extends SK{messagesProvider=new $$(x,xG);errorReporter=()=>new U$;convertEmptyStringsToNull=!1;helpers=s;createRule=m;compile(Z){return new P9(Z,{convertEmptyStringsToNull:this.convertEmptyStringsToNull,messagesProvider:this.messagesProvider,errorReporter:this.errorReporter})}withMetaData(Z){return{compile:(J)=>{return new P9(J,{convertEmptyStringsToNull:this.convertEmptyStringsToNull,messagesProvider:this.messagesProvider,errorReporter:this.errorReporter,metaDataValidator:Z})}}}validate(Z){return this.compile(Z.schema).validate(Z.data,Z)}tryValidate(Z){return this.compile(Z.schema).tryValidate(Z.data,Z)}},_K=new CK,n=_K,bK={APP_NAME:n.string(),APP_ENV:n.enum(["local","dev","stage","prod"]),APP_KEY:n.string(),APP_URL:n.string(),PORT:n.number(),PORT_BACKEND:n.number(),PORT_ADMIN:n.number(),PORT_LIBRARY:n.number(),PORT_DESKTOP:n.number(),PORT_EMAIL:n.number(),PORT_DOCS:n.number(),PORT_INSPECT:n.number(),PORT_API:n.number(),PORT_SYSTEM_TRAY:n.number(),APP_MAINTENANCE:n.boolean(),DEBUG:n.boolean(),API_PREFIX:n.string(),DOCS_PREFIX:n.string(),DB_CONNECTION:n.enum(["mysql","sqlite","postgres"]),DB_HOST:n.string(),DB_PORT:n.number(),DB_DATABASE:n.string(),DB_USERNAME:n.string(),DB_PASSWORD:n.string(),AWS_ACCOUNT_ID:n.string(),AWS_ACCESS_KEY_ID:n.string(),AWS_SECRET_ACCESS_KEY:n.string(),AWS_DEFAULT_REGION:n.string(),AWS_DEFAULT_PASSWORD:n.string(),MAIL_MAILER:n.enum(["ses","sendmail","log","smtp"]),MAIL_HOST:n.string(),MAIL_PORT:n.number(),MAIL_USERNAME:n.string(),MAIL_PASSWORD:n.string(),MAIL_ENCRYPTION:n.string(),MAIL_FROM_NAME:n.string(),MAIL_FROM_ADDRESS:n.string(),SEARCH_ENGINE_DRIVER:n.enum(["meilisearch","algolia","typesense"]),MEILISEARCH_HOST:n.string(),MEILISEARCH_KEY:n.string(),FRONTEND_APP_ENV:n.enum(["development","staging","production"]),FRONTEND_APP_URL:n.string()},kK={APP_ENV:["local","dev","development","staging","prod","production"],DB_CONNECTION:["mysql","sqlite","postgres","dynamodb"],MAIL_MAILER:["smtp","mailgun","ses","postmark","sendmail","log"],SEARCH_ENGINE_DRIVER:["opensearch"],FRONTEND_APP_ENV:["development","staging","production"]},yK=Object.entries(bK).reduce((Z,[J,X])=>{let Q;switch(typeof X){case"string":Q=n.string();break;case"number":Q=n.number();break;case"boolean":Q=n.boolean();break;default:if(Array.isArray(X)){Q=n.enum(X);break}if(typeof X==="object"){let G=Symbol.for("schema_name"),Y=X[G];if(Y==="vine.string"){Q=n.string();break}if(Y==="vine.number"){Q=n.number();break}if(Y==="vine.boolean"){Q=n.boolean();break}if(!Y){Q=n.enum(kK.APP_ENV);break}console.error("Unknown env value type",typeof X)}throw new Error(`Invalid env value for ${J}`)}let z=J;return Z[z]=Q,Z},{}),YF=n.object(yK),hK={get:(Z,J)=>{let X=Z[J];if(typeof X==="string"&&/^\d+$/.test(X)&&J!=="AWS_ACCOUNT_ID")return Number(X);if(typeof X==="string"&&/^true|false$/.test(X))return X==="true";if(X instanceof $X)return Z[J];if(X instanceof BX)return!!Z[J];if(X instanceof UX)return Number(Z[J]);return X}};function gK(){return typeof Bun!=="undefined"?Bun.env:fG.env}var a=new Proxy(gK(),hK),vK={name:a.APP_NAME??"Stacks",description:"Stacks is a full-stack framework for building modern web applications.",env:a.APP_ENV??"local",url:a.APP_URL??"stacks.localhost",redirectUrls:["stacksjs.com"],debug:a.DEBUG??!1,key:a.APP_KEY,maintenanceMode:a.APP_MAINTENANCE??!1,docMode:!1,timezone:"America/Los_Angeles",locale:"en",fallbackLocale:"en",cipher:"aes-256-cbc"},fK={driver:"dynamodb",prefix:"stacks",ttl:3600,drivers:{dynamodb:{key:a.AWS_ACCESS_KEY_ID||"",secret:a.AWS_SECRET_ACCESS_KEY||"",region:a.AWS_DEFAULT_REGION||"us-east-1",table:"cache",endpoint:""},memcached:{persistent_id:"",sasl:["",""],options:{},servers:[{host:"127.0.0.1",port:11211,weight:100}]},redis:{connection:"cache",host:"127.0.0.1",port:6379,password:"",username:"stacks"}}},xK={name:"My Custom CLI",command:"custom-cli",description:"This is an example command to illustrate how to create your own commands. Check out `../app/commands` for more.",deploy:!0},WX={firewall:{enabled:!0,countryCodes:["RU","IR"],ipAddresses:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0,queryString:[],httpHeaders:[]}},mK={type:"serverless",driver:"aws",firewall:WX.firewall,environments:["production","staging","development"],storage:{},api:{prefix:a.API_PREFIX||"api",description:"My awesome Stacks API",deploy:!0,memorySize:512,prewarm:10,timeout:30},cdn:{compress:!0,allowedMethods:"ALL",cachedMethods:"GET_HEAD",originShieldRegion:"us-east-1",minTtl:0,defaultTtl:86400,maxTtl:31536000,cookieBehavior:"none",allowList:{cookies:[],headers:[],queryStrings:[]},realtimeLogs:{enabled:!0,samplingRate:1}},fileSystem:!0},uK={default:a.DB_CONNECTION||"sqlite",connections:{sqlite:{database:a.DB_DATABASE||"database/stacks.sqlite",prefix:""},dynamodb:{key:a.AWS_ACCESS_KEY_ID||"",secret:a.AWS_SECRET_ACCESS_KEY||"",region:a.AWS_DEFAULT_REGION||"us-east-1",prefix:a.DB_DATABASE||"stacks",endpoint:"http://localhost",port:a.DB_PORT||8000},mysql:{name:a.DB_DATABASE||"stacks",host:a.DB_HOST||"127.0.0.1",port:a.DB_PORT||3306,username:a.DB_USERNAME||"root",password:a.DB_PASSWORD||"",prefix:""},postgres:{name:a.DB_DATABASE||"stacks",host:a.DB_HOST||"127.0.0.1",port:a.DB_PORT||3306,username:a.DB_USERNAME||"",password:a.DB_PASSWORD||"",prefix:""}},migrations:"migrations",migrationLocks:"migration_locks"},dK={a:[{name:a.APP_URL||"",address:"10.0.0.1",ttl:300},{name:"www",address:"@",ttl:300}],aaaa:[],cname:[],mx:[],txt:[],nameservers:[]},cK={from:{name:a.MAIL_FROM_NAME||"Stacks",address:a.MAIL_FROM_ADDRESS||"no-reply@stacksjs.org"},mailboxes:["chris@stacksjs.org","blake@stacksjs.org","glenn@stacksjs.org"],url:a.APP_URL||"http://localhost:3000",charset:"UTF-8",server:{scan:!0}},pK={messages:{string:"The {{ field }} field must be a string",email:"The {{ field }} field must be a valid email address",regex:"The {{ field }} field format is invalid",url:"The {{ field }} field must be a valid URL",activeUrl:"The {{ field }} field must be a valid URL",alpha:"The {{ field }} field must contain only letters",alphaNumeric:"The {{ field }} field must contain only letters and numbers",minLength:"The {{ field }} field must have at least {{ min }} characters",maxLength:"The {{ field }} field must not be greater than {{ max }} characters",fixedLength:"The {{ field }} field must be {{ size }} characters long",confirmed:"The {{ field }} field and {{ otherField }} field must be the same",endsWith:"The {{ field }} field must end with {{ substring }}",startsWith:"The {{ field }} field must start with {{ substring }}",sameAs:"The {{ field }} field and {{ otherField }} field must be the same",notSameAs:"The {{ field }} field and {{ otherField }} field must be different",in:"The selected {{ field }} is invalid",notIn:"The selected {{ field }} is invalid",ipAddress:"The {{ field }} field must be a valid IP address",uuid:"The {{ field }} field must be a valid UUID",ascii:"The {{ field }} field must only contain ASCII characters",creditCard:"The {{ field }} field must be a valid {{ providersList }} card number",hexCode:"The {{ field }} field must be a valid hex color code",iban:"The {{ field }} field must be a valid IBAN number",jwt:"The {{ field }} field must be a valid JWT token",coordinates:"The {{ field }} field must contain latitude and longitude coordinates",mobile:"The {{ field }} field must be a valid mobile phone number",passport:"The {{ field }} field must be a valid passport number",postalCode:"The {{ field }} field must be a valid postal code",boolean:"The value must be a boolean",number:"The {{ field }} field must be a number",min:"The {{ field }} field must be at least {{ min }}",max:"The {{ field }} field must not be greater than {{ max }}",range:"The {{ field }} field must be between {{ min }} and {{ max }}",positive:"The {{ field }} field must be positive",negative:"The {{ field }} field must be negative",decimal:"The {{ field }} field must have {{ digits }} decimal places",withoutDecimals:"The {{ field }} field must not have decimal places",date:"The {{ field }} field must be a datetime value","date.equals":"The {{ field }} field must be a date equal to {{ expectedValue }}","date.after":"The {{ field }} field must be a date after {{ expectedValue }}","date.before":"The {{ field }} field must be a date before {{ expectedValue }}","date.afterOrEqual":"The {{ field }} field must be a date after or equal to {{ expectedValue }}","date.beforeOrEqual":"The {{ field }} field must be a date before or equal to {{ expectedValue }}","date.sameAs":"The {{ field }} field and {{ otherField }} field must be the same","date.notSameAs":"The {{ field }} field and {{ otherField }} field must be different","date.afterField":"The {{ field }} field must be a date after {{ otherField }}",accepted:"The {{ field }} field must be accepted",enum:"The selected {{ field }} is invalid",literal:"The {{ field }} field must be {{ expectedValue }}",object:"The {{ field }} field must be an object",record:"The {{ field }} field must be an object","record.minLength":"The {{ field }} field must have at least {{ min }} items","record.maxLength":"The {{ field }} field must not have more than {{ max }} items","record.fixedLength":"The {{ field }} field must contain {{ size }} items",array:"The {{ field }} field must be an array","array.minLength":"The {{ field }} field must have at least {{ min }} items","array.maxLength":"The {{ field }} field must not have more than {{ max }} items","array.fixedLength":"The {{ field }} field must contain {{ size }} items",notEmpty:"The {{ field }} field must not be empty",distinct:"The {{ field }} field has duplicate values",tuple:"The {{ field }} field must be an array",union:"Invalid value provided for {{ field }} field",unionGroup:"Invalid value provided for {{ field }} field",unionOfTypes:"Invalid value provided for {{ field }} field"}},lK={hooks:{"pre-commit":"lint-staged"},scopes:["","ci","deps","dx","release","docs","test","core","actions","arrays","auth","build","cache","cli","cloud","collections","config","database","datetime","docs","errors","git","lint","x-ray","modules","notifications","objects","path","realtime","router","buddy","security","server","storage","strings","tests","types","ui","utils"],messages:{type:"Select the type of change that you\u2019re committing:",scope:"Select the SCOPE of this change (optional):",customScope:"Select the SCOPE of this change:",subject:"Write a SHORT, IMPERATIVE tense description of the change:\n",body:'Provide a LONGER description of the change (optional). Use "|" to break new line:\n',breaking:'List any BREAKING CHANGES (optional). Use "|" to break new line:\n',footerPrefixesSelect:"Select the ISSUES type of the change list by this change (optional):",customFooterPrefixes:"Input ISSUES prefix:",footer:"List any ISSUES by this change. E.g.: #31, #34:\n",confirmCommit:"Are you sure you want to proceed with the commit above?"},types:[{value:"feat",name:"feat: \u2728 A new feature",emoji:":sparkles:"},{value:"fix",name:"fix: \uD83D\uDC1B A bug fix",emoji:":bug:"},{value:"docs",name:"docs: \uD83D\uDCDD Documentation only changes",emoji:":memo:"},{value:"style",name:"style: \uD83D\uDC84 Changes that do not affect the meaning of the code",emoji:":lipstick:"},{value:"refactor",name:"refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",emoji:":recycle:"},{value:"perf",name:"perf: \u26A1\uFE0F A code change that improves performance",emoji:":zap:"},{value:"test",name:"test: \u2705 Adding missing tests or adjusting existing tests",emoji:":white_check_mark:"},{value:"build",name:"build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",emoji:":package:"},{value:"ci",name:"ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",emoji:":ferris_wheel:"},{value:"chore",name:"chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",emoji:":hammer:"},{value:"revert",name:"revert: \u23EA\uFE0F Reverts a previous commit",emoji:":rewind:"}]},nK={driver:"argon2",bcrypt:{rounds:10,cost:4},argon2:{memory:65536,threads:1,time:1}},iK={name:"hello-world",owner:"@stacksjs",repository:"stacksjs/stacks",license:"MIT",author:"Chris Breuer",contributors:["Chris Breuer <chris@stacksjs.org>"],defaultLanguage:"en",releaseable:!0,vueComponents:{name:"hello-world-vue",description:"Your Vue component library description",keywords:["component","library","vue","vite","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},webComponents:{name:"hello-world-elements",description:"Your framework agnostic web component library description.",keywords:["custom-elements","web-components","library","framework-agnostic","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},functions:{name:"hello-world-fx",description:"Your function library description.",keywords:["functions","composables","library","typescript","javascript"],shouldGenerateSourcemap:!1,files:["counter","dark"]}},sK={logsPath:QJ("logs/stacks.log"),deploymentsPath:QJ("logs/deployments.log")},aK={default:"email"},rK={driver:"stripe"},oK={frontend:a.PORT??3000,backend:a.PORT_BACKEND??3001,admin:a.PORT_ADMIN??3002,library:a.PORT_LIBRARY??3003,desktop:a.PORT_DESKTOP??3004,email:a.PORT_EMAIL??3005,docs:a.PORT_DOCS??3006,inspect:a.PORT_INSPECT??3007,api:a.PORT_API??3008,systemTray:a.PORT_SYSTEM_TRAY??3009,database:3010},tK={default:"sync",connections:{sync:{driver:"sync"},sqs:{driver:"sqs",key:"",secret:"",prefix:"",suffix:"",queue:"default",region:"us-east-1"}}},eK={driver:"opensearch"},ZU={aws:{accountId:a.AWS_ACCOUNT_ID||"",appId:a.AWS_ACCESS_KEY_ID||"",apiKey:a.AWS_SECRET_ACCESS_KEY||"",region:a.AWS_DEFAULT_REGION||"us-east-1"},algolia:{appId:"",apiKey:""},meilisearch:{appId:"",apiKey:""},lemonSqueezy:{appId:"",apiKey:""},stripe:{appId:"",apiKey:""}},JU={driver:"s3"},XU={name:"Stacks",members:{chris:"chris@stacksjs.org",blake:"blake@stacksjs.org",zoltan:"zoltan@stacksjs.org",freddy:"freddy@stacksjs.org",glenn:"glenn@stacksjs.org",dorell:"dorell@stacksjs.org",avery:"avery@stacksjs.org",adelino:"adelino@stacksjs.org"}},QU={shortcuts:[["btn","inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]],safelist:"prose prose-sm m-auto text-left",trigger:":stx:",classPrefix:"stx-",reset:"tailwind",icons:["heroicons"],fonts:{email:{title:"Mona",text:"Hubot"},desktop:{title:"Mona",text:"Hubot"},mobile:{title:"Mona",text:"Hubot"},web:{title:"Mona",text:"Hubot"}},theme:{colors:{veryCool:"#0000ff",brand:{primary:"hsl(var(--hue, 217) 78% 51%)"}}}},YU={ai:gG,analytics:vG,app:vK,cache:fK,cli:xK,cloud:mK,database:uK,dns:dK,email:cK,errors:pK,git:lK,hashing:nK,library:iK,logging:sK,notification:aK,queue:tK,payment:rK,ports:oK,searchEngine:eK,security:WX,services:ZU,storage:JU,team:XU,ui:QU},qX=YU;async function zU(Z){if(!Z?.port)Z={port:3000};return console.log("Creating local tunnel",Z.port),"localTunnel"}async function G0(Z){return await zU({port:Z})}async function GU({domain:Z=P1.app.url||"stacks",type:J="frontend",localhost:X=!1,https:Q=void 0,network:z=void 0}={}){let G=Z.replace(/\.[^.]+$/,".localhost");switch(J){case"frontend":if(z)return await G0(P1.ports?.frontend||3000);if(X)return`http://localhost:${P1.ports?.frontend}`;break;case"backend":if(z)return await G0(P1.ports?.backend||3001);if(X)return`http://localhost:${P1.ports?.backend}`;G=`api.${G}`;break;case"admin":if(z)return await G0(P1.ports?.admin||3002);if(X)return`http://localhost:${P1.ports?.admin}`;G=`admin.${G}`;break;case"library":if(z)return await G0(P1.ports?.library||3003);if(X)return`http://localhost:${P1.ports?.library}`;G=`libs.${G}`;break;case"email":if(z)return await G0(P1.ports?.email||3005);if(X)return`http://localhost:${P1.ports?.email}`;G=`email.${G}`;break;case"desktop":if(z)return await G0(P1.ports?.desktop||3004);if(X)return`http://localhost:${P1.ports?.desktop}`;G=`desktop.${G}`;break;case"docs":if(z)return await G0(P1.ports?.docs||3006);if(X)return`http://localhost:${P1.ports?.docs}`;G=`docs.${G}`;break;case"inspect":if(z)return await G0(P1.ports?.inspect||3007);if(X)return`http://localhost:${P1.ports?.inspect}`;G=`inspect.${G}`;break;default:if(X)return`http://localhost:${P1.ports?.frontend}`}if(Q)return`https://${G}`;return`http://${G}`}function $U(Z){return Z}function KU(Z){return Z}function UU(Z){return Z}function BU(Z){return Z}function HU(Z){return Z}function WU(Z){return Z}function qU(Z){return Z}function MU(Z){return Z}function FU(Z){return Z}function RU(Z){return Z}function VU(Z){return Z}function IU(Z){return Z}function EU(Z){return Z}function jU(Z){return Z}function AU(Z){return Z}function NU(Z){return Z}function PU(Z){return Z}function OU(Z){return Z}function wU(Z){return Z}function TU(Z){return Z}function LU(Z){return Z}function SU(Z){return Z}function DU(Z){return Z}function CU(Z){return Z}function _U(Z){return Z}function bU(Z){return Z}function kU(Z){return Z}var G1={...r7,...qX},yU=G1.ai,hU=G1.analytics,M0=G1.app,gU=G1.cache,vU=G1.cloud,fU=G1.cli,xU=G1.database,mU=G1.dns,uU=G1.docs,dU=G1.email,cU=G1.errors,pU=G1.git,lU=G1.hashing,nU=G1.library,iU=G1.logging,sU=G1.notification,aU=G1.payment,rU=G1.ports,oU=G1.queue,tU=G1.security,eU=G1.searchEngine,ZB=G1.services,JB=G1.storage,XB=G1.team,QB=G1.ui;function YB(){if(M0.env==="local")return"dev";if(M0.env==="development")return"dev";if(M0.env==="staging")return"stage";if(M0.env==="production")return"prod";if(!M0.env)throw new Error("Couldn\'t determine app environment");return M0.env}var zB={withStackTrace:!1},MX=(Z,J,X=zB)=>{let Q=J.isOk()?{type:"Ok",value:J.value}:{type:"Err",value:J.error},z=X.withStackTrace?new Error().stack:void 0;return{data:Q,message:Z,stack:z}};function O0(Z,J,X,Q){function z(G){return G instanceof X?G:new X(function(Y){Y(G)})}return new(X||(X=Promise))(function(G,Y){function $(H){try{U(Q.next(H))}catch(B){Y(B)}}function K(H){try{U(Q.throw(H))}catch(B){Y(B)}}function U(H){H.done?G(H.value):z(H.value).then($,K)}U((Q=Q.apply(Z,[])).next())})}function O9(Z){var J=typeof Symbol==="function"&&Symbol.iterator,X=J&&Z[J],Q=0;if(X)return X.call(Z);if(Z&&typeof Z.length==="number")return{next:function(){if(Z&&Q>=Z.length)Z=void 0;return{value:Z&&Z[Q++],done:!Z}}};throw new TypeError(J?"Object is not iterable.":"Symbol.iterator is not defined.")}function V0(Z){return this instanceof V0?(this.v=Z,this):new V0(Z)}function GB(Z,J,X){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var Q=X.apply(Z,J||[]),z,G=[];return z={},Y("next"),Y("throw"),Y("return"),z[Symbol.asyncIterator]=function(){return this},z;function Y(W){if(Q[W])z[W]=function(q){return new Promise(function(F,R){G.push([W,q,F,R])>1||$(W,q)})}}function $(W,q){try{K(Q[W](q))}catch(F){B(G[0][3],F)}}function K(W){W.value instanceof V0?Promise.resolve(W.value.v).then(U,H):B(G[0][2],W)}function U(W){$("next",W)}function H(W){$("throw",W)}function B(W,q){if(W(q),G.shift(),G.length)$(G[0][0],G[0][1])}}function $B(Z){var J,X;return J={},Q("next"),Q("throw",function(z){throw z}),Q("return"),J[Symbol.iterator]=function(){return this},J;function Q(z,G){J[z]=Z[z]?function(Y){return(X=!X)?{value:V0(Z[z](Y)),done:z==="return"}:G?G(Y):Y}:G}}function KB(Z){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var J=Z[Symbol.asyncIterator],X;return J?J.call(Z):(Z=typeof O9==="function"?O9(Z):Z[Symbol.iterator](),X={},Q("next"),Q("throw"),Q("return"),X[Symbol.asyncIterator]=function(){return this},X);function Q(G){X[G]=Z[G]&&function(Y){return new Promise(function($,K){Y=Z[G](Y),z($,K,Y.done,Y.value)})}}function z(G,Y,$,K){Promise.resolve(K).then(function(U){G({value:U,done:$})},Y)}}class O1{constructor(Z){this._promise=Z}static fromSafePromise(Z){let J=Z.then((X)=>new c1(X));return new O1(J)}static fromPromise(Z,J){let X=Z.then((Q)=>new c1(Q)).catch((Q)=>new m1(J(Q)));return new O1(X)}static fromThrowable(Z,J){return(...X)=>{return new O1((()=>O0(this,void 0,void 0,function*(){try{return new c1(yield Z(...X))}catch(Q){return new m1(J?J(Q):Q)}}))())}}static combine(Z){return UB(Z)}static combineWithAllErrors(Z){return BB(Z)}map(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return new m1(J.error);return new c1(yield Z(J.value))})))}andThrough(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return new m1(J.error);let X=yield Z(J.value);if(X.isErr())return new m1(X.error);return new c1(J.value)})))}andTee(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return new m1(J.error);try{yield Z(J.value)}catch(X){}return new c1(J.value)})))}mapErr(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isOk())return new c1(J.value);return new m1(yield Z(J.error))})))}andThen(Z){return new O1(this._promise.then((J)=>{if(J.isErr())return new m1(J.error);let X=Z(J.value);return X instanceof O1?X._promise:X}))}orElse(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return Z(J.error);return new c1(J.value)})))}match(Z,J){return this._promise.then((X)=>X.match(Z,J))}unwrapOr(Z){return this._promise.then((J)=>J.unwrapOr(Z))}safeUnwrap(){return GB(this,arguments,function*Z(){return yield V0(yield V0(yield*$B(KB(yield V0(this._promise.then((J)=>J.safeUnwrap()))))))})}then(Z,J){return this._promise.then(Z,J)}}var M8=(Z)=>new O1(Promise.resolve(new m1(Z))),zF=O1.fromPromise,GF=O1.fromSafePromise,$F=O1.fromThrowable,FX=(Z)=>{let J=R0([]);for(let X of Z)if(X.isErr()){J=e1(X.error);break}else J.map((Q)=>Q.push(X.value));return J},UB=(Z)=>O1.fromSafePromise(Promise.all(Z)).andThen(FX),RX=(Z)=>{let J=R0([]);for(let X of Z)if(X.isErr()&&J.isErr())J.error.push(X.error);else if(X.isErr()&&J.isOk())J=e1([X.error]);else if(X.isOk()&&J.isOk())J.value.push(X.value);return J},BB=(Z)=>O1.fromSafePromise(Promise.all(Z)).andThen(RX),S8;(function(Z){function J(z,G){return(...Y)=>{try{let $=z(...Y);return R0($)}catch($){return e1(G?G($):$)}}}Z.fromThrowable=J;function X(z){return FX(z)}Z.combine=X;function Q(z){return RX(z)}Z.combineWithAllErrors=Q})(S8||(S8={}));var R0=(Z)=>new c1(Z);function e1(Z){return new m1(Z)}class c1{constructor(Z){this.value=Z}isOk(){return!0}isErr(){return!this.isOk()}map(Z){return R0(Z(this.value))}mapErr(Z){return R0(this.value)}andThen(Z){return Z(this.value)}andThrough(Z){return Z(this.value).map((J)=>this.value)}andTee(Z){try{Z(this.value)}catch(J){}return R0(this.value)}orElse(Z){return R0(this.value)}asyncAndThen(Z){return Z(this.value)}asyncAndThrough(Z){return Z(this.value).map(()=>this.value)}asyncMap(Z){return O1.fromSafePromise(Z(this.value))}unwrapOr(Z){return this.value}match(Z,J){return Z(this.value)}safeUnwrap(){let Z=this.value;return function*(){return Z}()}_unsafeUnwrap(Z){return this.value}_unsafeUnwrapErr(Z){throw MX("Called `_unsafeUnwrapErr` on an Ok",this,Z)}}class m1{constructor(Z){this.error=Z}isOk(){return!1}isErr(){return!this.isOk()}map(Z){return e1(this.error)}mapErr(Z){return e1(Z(this.error))}andThrough(Z){return e1(this.error)}andTee(Z){return e1(this.error)}andThen(Z){return e1(this.error)}orElse(Z){return Z(this.error)}asyncAndThen(Z){return M8(this.error)}asyncAndThrough(Z){return M8(this.error)}asyncMap(Z){return M8(this.error)}unwrapOr(Z){return Z}match(Z,J){return J(this.error)}safeUnwrap(){let Z=this.error;return function*(){throw yield e1(Z),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(Z){throw MX("Called `_unsafeUnwrap` on an Err",this,Z)}_unsafeUnwrapErr(Z){return this.error}}var KF=S8.fromThrowable,HB=J1(nz(),1);var WB={};g8(WB,{yellow:()=>wB,white:()=>DB,underline:()=>IB,trueColorBg:()=>JH,trueColor:()=>ZH,stripColors:()=>qB,strikethrough:()=>AB,reset:()=>MB,red:()=>PB,options:()=>C0,magenta:()=>LB,link:()=>XH,lightYellow:()=>yB,lightRed:()=>bB,lightMagenta:()=>gB,lightGreen:()=>kB,lightGray:()=>_B,lightCyan:()=>vB,lightBlue:()=>hB,italic:()=>VB,inverse:()=>EB,hidden:()=>jB,green:()=>OB,gray:()=>CB,dim:()=>RB,cyan:()=>SB,bold:()=>FB,blue:()=>TB,black:()=>NB,bgYellow:()=>uB,bgWhite:()=>lB,bgRed:()=>xB,bgMagenta:()=>cB,bgLightYellow:()=>aB,bgLightRed:()=>iB,bgLightMagenta:()=>oB,bgLightGreen:()=>sB,bgLightGray:()=>eB,bgLightCyan:()=>tB,bgLightBlue:()=>rB,bgGreen:()=>mB,bgGray:()=>nB,bgCyan:()=>pB,bgBlue:()=>dB,bgBlack:()=>fB,ansi256Bg:()=>EX,ansi256:()=>IX});var F0=!0,w0=typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:{},i0=0;if(w0.process&&w0.process.env&&w0.process.stdout){let{FORCE_COLOR:Z,NODE_DISABLE_COLORS:J,NO_COLOR:X,TERM:Q,COLORTERM:z}=w0.process.env;if(J||X||Z==="0")F0=!1;else if(Z==="1"||Z==="2"||Z==="3")F0=!0;else if(Q==="dumb")F0=!1;else if("CI"in w0.process.env&&["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some((G)=>(G in w0.process.env)))F0=!0;else F0=process.stdout.isTTY;if(F0)if(process.platform==="win32")i0=3;else if(z&&(z==="truecolor"||z==="24bit"))i0=3;else if(Q&&(Q.endsWith("-256color")||Q.endsWith("256")))i0=2;else i0=1}var C0={enabled:F0,supportLevel:i0};function r(Z,J,X=1){let Q=`\x1B[${Z}m`,z=`\x1B[${J}m`,G=new RegExp(`\\x1b\\[${J}m`,"g");return(Y)=>{return C0.enabled&&C0.supportLevel>=X?Q+(""+Y).replace(G,Q)+z:""+Y}}function VX(Z,J,X){if(Z>>4===J>>4&&J>>4===X>>4){if(Z<8)return 16;if(Z>248)return 231;return Math.round((Z-8)/247*24)+232}return 16+36*Math.round(Z/255*5)+6*Math.round(J/255*5)+Math.round(X/255*5)}function qB(Z){return(""+Z).replace(/\x1b\[[0-9;]+m/g,"").replace(/\x1b\]8;;.*?\x07(.*?)\x1b\]8;;\x07/g,(J,X)=>X)}var MB=r(0,0),FB=r(1,22),RB=r(2,22),VB=r(3,23),IB=r(4,24),EB=r(7,27),jB=r(8,28),AB=r(9,29),NB=r(30,39),PB=r(31,39),OB=r(32,39),wB=r(33,39),TB=r(34,39),LB=r(35,39),SB=r(36,39),DB=r(97,39),CB=r(90,39),_B=r(37,39),bB=r(91,39),kB=r(92,39),yB=r(93,39),hB=r(94,39),gB=r(95,39),vB=r(96,39),fB=r(40,49),xB=r(41,49),mB=r(42,49),uB=r(43,49),dB=r(44,49),cB=r(45,49),pB=r(46,49),lB=r(107,49),nB=r(100,49),iB=r(101,49),sB=r(102,49),aB=r(103,49),rB=r(104,49),oB=r(105,49),tB=r(106,49),eB=r(47,49),IX=(Z)=>r("38;5;"+Z,0,2),EX=(Z)=>r("48;5;"+Z,0,2),ZH=(Z,J,X)=>{return C0.supportLevel===2?IX(VX(Z,J,X)):r(`38;2;${Z};${J};${X}`,0,3)},JH=(Z,J,X)=>{return C0.supportLevel===2?EX(VX(Z,J,X)):r(`48;2;${Z};${J};${X}`,0,3)},w9="\x1B]",T9="\x07",V6=";";function XH(Z,J){return C0.enabled?w9+"8"+V6+V6+J+T9+Z+w9+"8"+V6+V6+T9:`${Z} (\u200B${J}\u200B)`}function jX(Z){if(Array.isArray(Z)){if(Z=Array.from(new Set(Z)),Array.isArray(Z)&&Z[0]&&!Z[0].startsWith("-"))Z.shift();return Z.join(" ")}if(typeof Z==="object"&&Z!==null)return Object.entries(Z).map(([J,X])=>{if(X===!0)return`--${J}`;return`--${J} ${X}`}).join(" ");return jX(QH.argv.slice(2))}var F8=10,L9=(Z=0)=>(J)=>`\x1B[${J+Z}m`,S9=(Z=0)=>(J)=>`\x1B[${38+Z};5;${J}m`,D9=(Z=0)=>(J,X,Q)=>`\x1B[${38+Z};2;${J};${X};${Q}m`,M1={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},HF=Object.keys(M1.modifier),YH=Object.keys(M1.color),zH=Object.keys(M1.bgColor),WF=[...YH,...zH];function GH(){let Z=new Map;for(let[J,X]of Object.entries(M1)){for(let[Q,z]of Object.entries(X))M1[Q]={open:`\x1B[${z[0]}m`,close:`\x1B[${z[1]}m`},X[Q]=M1[Q],Z.set(z[0],z[1]);Object.defineProperty(M1,J,{value:X,enumerable:!1})}return Object.defineProperty(M1,"codes",{value:Z,enumerable:!1}),M1.color.close="\x1B[39m",M1.bgColor.close="\x1B[49m",M1.color.ansi=L9(),M1.color.ansi256=S9(),M1.color.ansi16m=D9(),M1.bgColor.ansi=L9(F8),M1.bgColor.ansi256=S9(F8),M1.bgColor.ansi16m=D9(F8),Object.defineProperties(M1,{rgbToAnsi256:{value(J,X,Q){if(J===X&&X===Q){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(X/255*5)+Math.round(Q/255*5)},enumerable:!1},hexToRgb:{value(J){let X=/[a-f\d]{6}|[a-f\d]{3}/i.exec(J.toString(16));if(!X)return[0,0,0];let[Q]=X;if(Q.length===3)Q=[...Q].map((G)=>G+G).join("");let z=Number.parseInt(Q,16);return[z>>16&255,z>>8&255,z&255]},enumerable:!1},hexToAnsi256:{value:(J)=>M1.rgbToAnsi256(...M1.hexToRgb(J)),enumerable:!1},ansi256ToAnsi:{value(J){if(J<8)return 30+J;if(J<16)return 90+(J-8);let X,Q,z;if(J>=232)X=((J-232)*10+8)/255,Q=X,z=X;else{J-=16;let $=J%36;X=Math.floor(J/36)/5,Q=Math.floor($/6)/5,z=$%6/5}let G=Math.max(X,Q,z)*2;if(G===0)return 30;let Y=30+(Math.round(z)<<2|Math.round(Q)<<1|Math.round(X));if(G===2)Y+=60;return Y},enumerable:!1},rgbToAnsi:{value:(J,X,Q)=>M1.ansi256ToAnsi(M1.rgbToAnsi256(J,X,Q)),enumerable:!1},hexToAnsi:{value:(J)=>M1.ansi256ToAnsi(M1.hexToAnsi256(J)),enumerable:!1}}),M1}var $H=GH(),p1=$H;function y1(Z,J=globalThis.Deno?globalThis.Deno.args:XZ.argv){let X=Z.startsWith("-")?"":Z.length===1?"-":"--",Q=J.indexOf(X+Z),z=J.indexOf("--");return Q!==-1&&(z===-1||Q<z)}var{env:V1}=XZ,D6;if(y1("no-color")||y1("no-colors")||y1("color=false")||y1("color=never"))D6=0;else if(y1("color")||y1("colors")||y1("color=true")||y1("color=always"))D6=1;function UH(){if("FORCE_COLOR"in V1){if(V1.FORCE_COLOR==="true")return 1;if(V1.FORCE_COLOR==="false")return 0;return V1.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(V1.FORCE_COLOR,10),3)}}function BH(Z){if(Z===0)return!1;return{level:Z,hasBasic:!0,has256:Z>=2,has16m:Z>=3}}function HH(Z,{streamIsTTY:J,sniffFlags:X=!0}={}){let Q=UH();if(Q!==void 0)D6=Q;let z=X?D6:Q;if(z===0)return 0;if(X){if(y1("color=16m")||y1("color=full")||y1("color=truecolor"))return 3;if(y1("color=256"))return 2}if("TF_BUILD"in V1&&"AGENT_NAME"in V1)return 1;if(Z&&!J&&z===void 0)return 0;let G=z||0;if(V1.TERM==="dumb")return G;if(XZ.platform==="win32"){let Y=KH.release().split(".");if(Number(Y[0])>=10&&Number(Y[2])>=10586)return Number(Y[2])>=14931?3:2;return 1}if("CI"in V1){if("GITHUB_ACTIONS"in V1||"GITEA_ACTIONS"in V1)return 3;if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((Y)=>(Y in V1))||V1.CI_NAME==="codeship")return 1;return G}if("TEAMCITY_VERSION"in V1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(V1.TEAMCITY_VERSION)?1:0;if(V1.COLORTERM==="truecolor")return 3;if(V1.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in V1){let Y=Number.parseInt((V1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(V1.TERM_PROGRAM){case"iTerm.app":return Y>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(V1.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(V1.TERM))return 1;if("COLORTERM"in V1)return 1;return G}function _9(Z,J={}){let X=HH(Z,{streamIsTTY:Z&&Z.isTTY,...J});return BH(X)}var WH={stdout:_9({isTTY:C9.isatty(1)}),stderr:_9({isTTY:C9.isatty(2)})},qH=WH;function MH(Z,J,X){let Q=Z.indexOf(J);if(Q===-1)return Z;let z=J.length,G=0,Y="";do Y+=Z.slice(G,Q)+J+X,G=Q+z,Q=Z.indexOf(J,G);while(Q!==-1);return Y+=Z.slice(G),Y}function FH(Z,J,X,Q){let z=0,G="";do{let Y=Z[Q-1]==="\r";G+=Z.slice(z,Y?Q-1:Q)+J+(Y?"\r\n":"\n")+X,z=Q+1,Q=Z.indexOf("\n",z)}while(Q!==-1);return G+=Z.slice(z),G}var{stdout:b9,stderr:k9}=qH,D8=Symbol("GENERATOR"),_0=Symbol("STYLER"),a0=Symbol("IS_EMPTY"),y9=["ansi","ansi","ansi256","ansi16m"],b0=Object.create(null),RH=(Z,J={})=>{if(J.level&&!(Number.isInteger(J.level)&&J.level>=0&&J.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let X=b9?b9.level:0;Z.level=J.level===void 0?X:J.level},VH=(Z)=>{let J=(...X)=>X.join(" ");return RH(J,Z),Object.setPrototypeOf(J,Q6.prototype),J};function Q6(Z){return VH(Z)}Object.setPrototypeOf(Q6.prototype,Function.prototype);for(let[Z,J]of Object.entries(p1))b0[Z]={get(){let X=C6(this,_8(J.open,J.close,this[_0]),this[a0]);return Object.defineProperty(this,Z,{value:X}),X}};b0.visible={get(){let Z=C6(this,this[_0],!0);return Object.defineProperty(this,"visible",{value:Z}),Z}};var C8=(Z,J,X,...Q)=>{if(Z==="rgb"){if(J==="ansi16m")return p1[X].ansi16m(...Q);if(J==="ansi256")return p1[X].ansi256(p1.rgbToAnsi256(...Q));return p1[X].ansi(p1.rgbToAnsi(...Q))}if(Z==="hex")return C8("rgb",J,X,...p1.hexToRgb(...Q));return p1[X][Z](...Q)},IH=["rgb","hex","ansi256"];for(let Z of IH){b0[Z]={get(){let{level:X}=this;return function(...Q){let z=_8(C8(Z,y9[X],"color",...Q),p1.color.close,this[_0]);return C6(this,z,this[a0])}}};let J="bg"+Z[0].toUpperCase()+Z.slice(1);b0[J]={get(){let{level:X}=this;return function(...Q){let z=_8(C8(Z,y9[X],"bgColor",...Q),p1.bgColor.close,this[_0]);return C6(this,z,this[a0])}}}}var EH=Object.defineProperties(()=>{},{...b0,level:{enumerable:!0,get(){return this[D8].level},set(Z){this[D8].level=Z}}}),_8=(Z,J,X)=>{let Q,z;if(X===void 0)Q=Z,z=J;else Q=X.openAll+Z,z=J+X.closeAll;return{open:Z,close:J,openAll:Q,closeAll:z,parent:X}},C6=(Z,J,X)=>{let Q=(...z)=>jH(Q,z.length===1?""+z[0]:z.join(" "));return Object.setPrototypeOf(Q,EH),Q[D8]=Z,Q[_0]=J,Q[a0]=X,Q},jH=(Z,J)=>{if(Z.level<=0||!J)return Z[a0]?"":J;let X=Z[_0];if(X===void 0)return J;let{openAll:Q,closeAll:z}=X;if(J.includes("\x1B"))while(X!==void 0)J=MH(J,X.close,X.open),X=X.parent;let G=J.indexOf("\n");if(G!==-1)J=FH(J,z,Q,G);return Q+J+z};Object.defineProperties(Q6.prototype,b0);var AH=Q6(),RF=Q6({level:k9?k9.level:0}),NH=AH,PH=(Z,J,X,Q)=>{if(X==="length"||X==="prototype")return;if(X==="arguments"||X==="caller")return;let z=Object.getOwnPropertyDescriptor(Z,X),G=Object.getOwnPropertyDescriptor(J,X);if(!OH(z,G)&&Q)return;Object.defineProperty(Z,X,G)},OH=function(Z,J){return Z===void 0||Z.configurable||Z.writable===J.writable&&Z.enumerable===J.enumerable&&Z.configurable===J.configurable&&(Z.writable||Z.value===J.value)},wH=(Z,J)=>{let X=Object.getPrototypeOf(J);if(X===Object.getPrototypeOf(Z))return;Object.setPrototypeOf(Z,X)},TH=(Z,J)=>`/* Wrapped ${Z}*/\n${J}`,LH=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),SH=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),DH=(Z,J,X)=>{let Q=X===""?"":`with ${X.trim()}() `,z=TH.bind(null,Q,J.toString());Object.defineProperty(z,"name",SH);let{writable:G,enumerable:Y,configurable:$}=LH;Object.defineProperty(Z,"toString",{value:z,writable:G,enumerable:Y,configurable:$})};function CH(Z,J,{ignoreNonConfigurable:X=!1}={}){let{name:Q}=Z;for(let z of Reflect.ownKeys(J))PH(Z,J,z,X);return wH(Z,J),DH(Z,J,Q),Z}var _6=new WeakMap,NX=(Z,J={})=>{if(typeof Z!=="function")throw new TypeError("Expected a function");let X,Q=0,z=Z.displayName||Z.name||"<anonymous>",G=function(...Y){if(_6.set(G,++Q),Q===1)X=Z.apply(this,Y),Z=void 0;else if(J.throw===!0)throw new Error(`Function \`${z}\` can only be called once`);return X};return CH(G,Z),_6.set(G,Q),G};NX.callCount=(Z)=>{if(!_6.has(Z))throw new Error(`The given function \`${Z.name}\` is not wrapped by the \`onetime\` package`);return _6.get(Z)};var _H=NX,L0=[];L0.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")L0.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")L0.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var P6=(Z)=>!!Z&&typeof Z==="object"&&typeof Z.removeListener==="function"&&typeof Z.emit==="function"&&typeof Z.reallyExit==="function"&&typeof Z.listeners==="function"&&typeof Z.kill==="function"&&typeof Z.pid==="number"&&typeof Z.on==="function",R8=Symbol.for("signal-exit emitter"),V8=globalThis,bH=Object.defineProperty.bind(Object);class PX{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(V8[R8])return V8[R8];bH(V8,R8,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(Z,J){this.listeners[Z].push(J)}removeListener(Z,J){let X=this.listeners[Z],Q=X.indexOf(J);if(Q===-1)return;if(Q===0&&X.length===1)X.length=0;else X.splice(Q,1)}emit(Z,J,X){if(this.emitted[Z])return!1;this.emitted[Z]=!0;let Q=!1;for(let z of this.listeners[Z])Q=z(J,X)===!0||Q;if(Z==="exit")Q=this.emit("afterExit",J,X)||Q;return Q}}class QZ{}var kH=(Z)=>{return{onExit(J,X){return Z.onExit(J,X)},load(){return Z.load()},unload(){return Z.unload()}}};class OX extends QZ{onExit(){return()=>{}}load(){}unload(){}}class wX extends QZ{#Z=b8.platform==="win32"?"SIGINT":"SIGHUP";#J=new PX;#X;#Q;#Y;#G={};#z=!1;constructor(Z){super();this.#X=Z,this.#G={};for(let J of L0)this.#G[J]=()=>{let X=this.#X.listeners(J),{count:Q}=this.#J,z=Z;if(typeof z.__signal_exit_emitter__==="object"&&typeof z.__signal_exit_emitter__.count==="number")Q+=z.__signal_exit_emitter__.count;if(X.length===Q){this.unload();let G=this.#J.emit("exit",null,J),Y=J==="SIGHUP"?this.#Z:J;if(!G)Z.kill(Z.pid,Y)}};this.#Y=Z.reallyExit,this.#Q=Z.emit}onExit(Z,J){if(!P6(this.#X))return()=>{};if(this.#z===!1)this.load();let X=J?.alwaysLast?"afterExit":"exit";return this.#J.on(X,Z),()=>{if(this.#J.removeListener(X,Z),this.#J.listeners.exit.length===0&&this.#J.listeners.afterExit.length===0)this.unload()}}load(){if(this.#z)return;this.#z=!0,this.#J.count+=1;for(let Z of L0)try{let J=this.#G[Z];if(J)this.#X.on(Z,J)}catch(J){}this.#X.emit=(Z,...J)=>{return this.#q(Z,...J)},this.#X.reallyExit=(Z)=>{return this.#$(Z)}}unload(){if(!this.#z)return;this.#z=!1,L0.forEach((Z)=>{let J=this.#G[Z];if(!J)throw new Error("Listener not defined for signal: "+Z);try{this.#X.removeListener(Z,J)}catch(X){}}),this.#X.emit=this.#Q,this.#X.reallyExit=this.#Y,this.#J.count-=1}#$(Z){if(!P6(this.#X))return 0;return this.#X.exitCode=Z||0,this.#J.emit("exit",this.#X.exitCode,null),this.#Y.call(this.#X,this.#X.exitCode)}#q(Z,...J){let X=this.#Q;if(Z==="exit"&&P6(this.#X)){if(typeof J[0]==="number")this.#X.exitCode=J[0];let Q=X.call(this.#X,Z,...J);return this.#J.emit("exit",this.#X.exitCode,null),Q}else return X.call(this.#X,Z,...J)}}var b8=globalThis.process,{onExit:yH,load:EF,unload:jF}=kH(P6(b8)?new wX(b8):new OX),h9=E6.stderr.isTTY?E6.stderr:E6.stdout.isTTY?E6.stdout:void 0,hH=h9?_H(()=>{yH(()=>{h9.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},gH=hH,b6=!1,S0={};S0.show=(Z=AX.stderr)=>{if(!Z.isTTY)return;b6=!1,Z.write("\x1B[?25h")};S0.hide=(Z=AX.stderr)=>{if(!Z.isTTY)return;gH(),b6=!0,Z.write("\x1B[?25l")};S0.toggle=(Z,J)=>{if(Z!==void 0)b6=Z;if(b6)S0.show(J);else S0.hide(J)};var g9=S0,j6=J1(m7(),1),I8=10,v9=(Z=0)=>(J)=>`\x1B[${J+Z}m`,f9=(Z=0)=>(J)=>`\x1B[${38+Z};5;${J}m`,x9=(Z=0)=>(J,X,Q)=>`\x1B[${38+Z};2;${J};${X};${Q}m`,F1={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},AF=Object.keys(F1.modifier),vH=Object.keys(F1.color),fH=Object.keys(F1.bgColor),NF=[...vH,...fH];function xH(){let Z=new Map;for(let[J,X]of Object.entries(F1)){for(let[Q,z]of Object.entries(X))F1[Q]={open:`\x1B[${z[0]}m`,close:`\x1B[${z[1]}m`},X[Q]=F1[Q],Z.set(z[0],z[1]);Object.defineProperty(F1,J,{value:X,enumerable:!1})}return Object.defineProperty(F1,"codes",{value:Z,enumerable:!1}),F1.color.close="\x1B[39m",F1.bgColor.close="\x1B[49m",F1.color.ansi=v9(),F1.color.ansi256=f9(),F1.color.ansi16m=x9(),F1.bgColor.ansi=v9(I8),F1.bgColor.ansi256=f9(I8),F1.bgColor.ansi16m=x9(I8),Object.defineProperties(F1,{rgbToAnsi256:{value(J,X,Q){if(J===X&&X===Q){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(X/255*5)+Math.round(Q/255*5)},enumerable:!1},hexToRgb:{value(J){let X=/[a-f\d]{6}|[a-f\d]{3}/i.exec(J.toString(16));if(!X)return[0,0,0];let[Q]=X;if(Q.length===3)Q=[...Q].map((G)=>G+G).join("");let z=Number.parseInt(Q,16);return[z>>16&255,z>>8&255,z&255]},enumerable:!1},hexToAnsi256:{value:(J)=>F1.rgbToAnsi256(...F1.hexToRgb(J)),enumerable:!1},ansi256ToAnsi:{value(J){if(J<8)return 30+J;if(J<16)return 90+(J-8);let X,Q,z;if(J>=232)X=((J-232)*10+8)/255,Q=X,z=X;else{J-=16;let $=J%36;X=Math.floor(J/36)/5,Q=Math.floor($/6)/5,z=$%6/5}let G=Math.max(X,Q,z)*2;if(G===0)return 30;let Y=30+(Math.round(z)<<2|Math.round(Q)<<1|Math.round(X));if(G===2)Y+=60;return Y},enumerable:!1},rgbToAnsi:{value:(J,X,Q)=>F1.ansi256ToAnsi(F1.rgbToAnsi256(J,X,Q)),enumerable:!1},hexToAnsi:{value:(J)=>F1.ansi256ToAnsi(F1.hexToAnsi256(J)),enumerable:!1}}),F1}var mH=xH(),l1=mH;function h1(Z,J=globalThis.Deno?globalThis.Deno.args:YZ.argv){let X=Z.startsWith("-")?"":Z.length===1?"-":"--",Q=J.indexOf(X+Z),z=J.indexOf("--");return Q!==-1&&(z===-1||Q<z)}var{env:I1}=YZ,k6;if(h1("no-color")||h1("no-colors")||h1("color=false")||h1("color=never"))k6=0;else if(h1("color")||h1("colors")||h1("color=true")||h1("color=always"))k6=1;function dH(){if("FORCE_COLOR"in I1){if(I1.FORCE_COLOR==="true")return 1;if(I1.FORCE_COLOR==="false")return 0;return I1.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(I1.FORCE_COLOR,10),3)}}function cH(Z){if(Z===0)return!1;return{level:Z,hasBasic:!0,has256:Z>=2,has16m:Z>=3}}function pH(Z,{streamIsTTY:J,sniffFlags:X=!0}={}){let Q=dH();if(Q!==void 0)k6=Q;let z=X?k6:Q;if(z===0)return 0;if(X){if(h1("color=16m")||h1("color=full")||h1("color=truecolor"))return 3;if(h1("color=256"))return 2}if("TF_BUILD"in I1&&"AGENT_NAME"in I1)return 1;if(Z&&!J&&z===void 0)return 0;let G=z||0;if(I1.TERM==="dumb")return G;if(YZ.platform==="win32"){let Y=uH.release().split(".");if(Number(Y[0])>=10&&Number(Y[2])>=10586)return Number(Y[2])>=14931?3:2;return 1}if("CI"in I1){if("GITHUB_ACTIONS"in I1||"GITEA_ACTIONS"in I1)return 3;if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((Y)=>(Y in I1))||I1.CI_NAME==="codeship")return 1;return G}if("TEAMCITY_VERSION"in I1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(I1.TEAMCITY_VERSION)?1:0;if(I1.COLORTERM==="truecolor")return 3;if(I1.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in I1){let Y=Number.parseInt((I1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(I1.TERM_PROGRAM){case"iTerm.app":return Y>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(I1.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(I1.TERM))return 1;if("COLORTERM"in I1)return 1;return G}function u9(Z,J={}){let X=pH(Z,{streamIsTTY:Z&&Z.isTTY,...J});return cH(X)}var lH={stdout:u9({isTTY:m9.isatty(1)}),stderr:u9({isTTY:m9.isatty(2)})},nH=lH;function iH(Z,J,X){let Q=Z.indexOf(J);if(Q===-1)return Z;let z=J.length,G=0,Y="";do Y+=Z.slice(G,Q)+J+X,G=Q+z,Q=Z.indexOf(J,G);while(Q!==-1);return Y+=Z.slice(G),Y}function sH(Z,J,X,Q){let z=0,G="";do{let Y=Z[Q-1]==="\r";G+=Z.slice(z,Y?Q-1:Q)+J+(Y?"\r\n":"\n")+X,z=Q+1,Q=Z.indexOf("\n",z)}while(Q!==-1);return G+=Z.slice(z),G}var{stdout:d9,stderr:c9}=nH,k8=Symbol("GENERATOR"),k0=Symbol("STYLER"),r0=Symbol("IS_EMPTY"),p9=["ansi","ansi","ansi256","ansi16m"],y0=Object.create(null),aH=(Z,J={})=>{if(J.level&&!(Number.isInteger(J.level)&&J.level>=0&&J.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let X=d9?d9.level:0;Z.level=J.level===void 0?X:J.level},rH=(Z)=>{let J=(...X)=>X.join(" ");return aH(J,Z),Object.setPrototypeOf(J,Y6.prototype),J};function Y6(Z){return rH(Z)}Object.setPrototypeOf(Y6.prototype,Function.prototype);for(let[Z,J]of Object.entries(l1))y0[Z]={get(){let X=y6(this,h8(J.open,J.close,this[k0]),this[r0]);return Object.defineProperty(this,Z,{value:X}),X}};y0.visible={get(){let Z=y6(this,this[k0],!0);return Object.defineProperty(this,"visible",{value:Z}),Z}};var y8=(Z,J,X,...Q)=>{if(Z==="rgb"){if(J==="ansi16m")return l1[X].ansi16m(...Q);if(J==="ansi256")return l1[X].ansi256(l1.rgbToAnsi256(...Q));return l1[X].ansi(l1.rgbToAnsi(...Q))}if(Z==="hex")return y8("rgb",J,X,...l1.hexToRgb(...Q));return l1[X][Z](...Q)},oH=["rgb","hex","ansi256"];for(let Z of oH){y0[Z]={get(){let{level:X}=this;return function(...Q){let z=h8(y8(Z,p9[X],"color",...Q),l1.color.close,this[k0]);return y6(this,z,this[r0])}}};let J="bg"+Z[0].toUpperCase()+Z.slice(1);y0[J]={get(){let{level:X}=this;return function(...Q){let z=h8(y8(Z,p9[X],"bgColor",...Q),l1.bgColor.close,this[k0]);return y6(this,z,this[r0])}}}}var tH=Object.defineProperties(()=>{},{...y0,level:{enumerable:!0,get(){return this[k8].level},set(Z){this[k8].level=Z}}}),h8=(Z,J,X)=>{let Q,z;if(X===void 0)Q=Z,z=J;else Q=X.openAll+Z,z=J+X.closeAll;return{open:Z,close:J,openAll:Q,closeAll:z,parent:X}},y6=(Z,J,X)=>{let Q=(...z)=>eH(Q,z.length===1?""+z[0]:z.join(" "));return Object.setPrototypeOf(Q,tH),Q[k8]=Z,Q[k0]=J,Q[r0]=X,Q},eH=(Z,J)=>{if(Z.level<=0||!J)return Z[r0]?"":J;let X=Z[k0];if(X===void 0)return J;let{openAll:Q,closeAll:z}=X;if(J.includes("\x1B"))while(X!==void 0)J=iH(J,X.close,X.open),X=X.parent;let G=J.indexOf("\n");if(G!==-1)J=sH(J,z,Q,G);return Q+J+z};Object.defineProperties(Y6.prototype,y0);var ZW=Y6(),TF=Y6({level:c9?c9.level:0}),K0=ZW;function JW(){if(x1.platform!=="win32")return x1.env.TERM!=="linux";return Boolean(x1.env.CI)||Boolean(x1.env.WT_SESSION)||Boolean(x1.env.TERMINUS_SUBLIME)||x1.env.ConEmuTask==="{cmd::Cmder}"||x1.env.TERM_PROGRAM==="Terminus-Sublime"||x1.env.TERM_PROGRAM==="vscode"||x1.env.TERM==="xterm-256color"||x1.env.TERM==="alacritty"||x1.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var XW={info:K0.blue("\u2139"),success:K0.green("\u2714"),warning:K0.yellow("\u26A0"),error:K0.red("\u2716")},QW={info:K0.blue("i"),success:K0.green("\u221A"),warning:K0.yellow("\u203C"),error:K0.red("\xD7")},YW=JW()?XW:QW,A6=YW;function zW({onlyFirst:Z=!1}={}){let X=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(X,Z?void 0:"g")}var GW=zW();function TX(Z){if(typeof Z!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof Z}\``);return Z.replace(GW,"")}function $W(Z){return Z===161||Z===164||Z===167||Z===168||Z===170||Z===173||Z===174||Z>=176&&Z<=180||Z>=182&&Z<=186||Z>=188&&Z<=191||Z===198||Z===208||Z===215||Z===216||Z>=222&&Z<=225||Z===230||Z>=232&&Z<=234||Z===236||Z===237||Z===240||Z===242||Z===243||Z>=247&&Z<=250||Z===252||Z===254||Z===257||Z===273||Z===275||Z===283||Z===294||Z===295||Z===299||Z>=305&&Z<=307||Z===312||Z>=319&&Z<=322||Z===324||Z>=328&&Z<=331||Z===333||Z===338||Z===339||Z===358||Z===359||Z===363||Z===462||Z===464||Z===466||Z===468||Z===470||Z===472||Z===474||Z===476||Z===593||Z===609||Z===708||Z===711||Z>=713&&Z<=715||Z===717||Z===720||Z>=728&&Z<=731||Z===733||Z===735||Z>=768&&Z<=879||Z>=913&&Z<=929||Z>=931&&Z<=937||Z>=945&&Z<=961||Z>=963&&Z<=969||Z===1025||Z>=1040&&Z<=1103||Z===1105||Z===8208||Z>=8211&&Z<=8214||Z===8216||Z===8217||Z===8220||Z===8221||Z>=8224&&Z<=8226||Z>=8228&&Z<=8231||Z===8240||Z===8242||Z===8243||Z===8245||Z===8251||Z===8254||Z===8308||Z===8319||Z>=8321&&Z<=8324||Z===8364||Z===8451||Z===8453||Z===8457||Z===8467||Z===8470||Z===8481||Z===8482||Z===8486||Z===8491||Z===8531||Z===8532||Z>=8539&&Z<=8542||Z>=8544&&Z<=8555||Z>=8560&&Z<=8569||Z===8585||Z>=8592&&Z<=8601||Z===8632||Z===8633||Z===8658||Z===8660||Z===8679||Z===8704||Z===8706||Z===8707||Z===8711||Z===8712||Z===8715||Z===8719||Z===8721||Z===8725||Z===8730||Z>=8733&&Z<=8736||Z===8739||Z===8741||Z>=8743&&Z<=8748||Z===8750||Z>=8756&&Z<=8759||Z===8764||Z===8765||Z===8776||Z===8780||Z===8786||Z===8800||Z===8801||Z>=8804&&Z<=8807||Z===8810||Z===8811||Z===8814||Z===8815||Z===8834||Z===8835||Z===8838||Z===8839||Z===8853||Z===8857||Z===8869||Z===8895||Z===8978||Z>=9312&&Z<=9449||Z>=9451&&Z<=9547||Z>=9552&&Z<=9587||Z>=9600&&Z<=9615||Z>=9618&&Z<=9621||Z===9632||Z===9633||Z>=9635&&Z<=9641||Z===9650||Z===9651||Z===9654||Z===9655||Z===9660||Z===9661||Z===9664||Z===9665||Z>=9670&&Z<=9672||Z===9675||Z>=9678&&Z<=9681||Z>=9698&&Z<=9701||Z===9711||Z===9733||Z===9734||Z===9737||Z===9742||Z===9743||Z===9756||Z===9758||Z===9792||Z===9794||Z===9824||Z===9825||Z>=9827&&Z<=9829||Z>=9831&&Z<=9834||Z===9836||Z===9837||Z===9839||Z===9886||Z===9887||Z===9919||Z>=9926&&Z<=9933||Z>=9935&&Z<=9939||Z>=9941&&Z<=9953||Z===9955||Z===9960||Z===9961||Z>=9963&&Z<=9969||Z===9972||Z>=9974&&Z<=9977||Z===9979||Z===9980||Z===9982||Z===9983||Z===10045||Z>=10102&&Z<=10111||Z>=11094&&Z<=11097||Z>=12872&&Z<=12879||Z>=57344&&Z<=63743||Z>=65024&&Z<=65039||Z===65533||Z>=127232&&Z<=127242||Z>=127248&&Z<=127277||Z>=127280&&Z<=127337||Z>=127344&&Z<=127373||Z===127375||Z===127376||Z>=127387&&Z<=127404||Z>=917760&&Z<=917999||Z>=983040&&Z<=1048573||Z>=1048576&&Z<=1114109}function KW(Z){return Z===12288||Z>=65281&&Z<=65376||Z>=65504&&Z<=65510}function UW(Z){return Z>=4352&&Z<=4447||Z===8986||Z===8987||Z===9001||Z===9002||Z>=9193&&Z<=9196||Z===9200||Z===9203||Z===9725||Z===9726||Z===9748||Z===9749||Z>=9776&&Z<=9783||Z>=9800&&Z<=9811||Z===9855||Z>=9866&&Z<=9871||Z===9875||Z===9889||Z===9898||Z===9899||Z===9917||Z===9918||Z===9924||Z===9925||Z===9934||Z===9940||Z===9962||Z===9970||Z===9971||Z===9973||Z===9978||Z===9981||Z===9989||Z===9994||Z===9995||Z===10024||Z===10060||Z===10062||Z>=10067&&Z<=10069||Z===10071||Z>=10133&&Z<=10135||Z===10160||Z===10175||Z===11035||Z===11036||Z===11088||Z===11093||Z>=11904&&Z<=11929||Z>=11931&&Z<=12019||Z>=12032&&Z<=12245||Z>=12272&&Z<=12287||Z>=12289&&Z<=12350||Z>=12353&&Z<=12438||Z>=12441&&Z<=12543||Z>=12549&&Z<=12591||Z>=12593&&Z<=12686||Z>=12688&&Z<=12773||Z>=12783&&Z<=12830||Z>=12832&&Z<=12871||Z>=12880&&Z<=42124||Z>=42128&&Z<=42182||Z>=43360&&Z<=43388||Z>=44032&&Z<=55203||Z>=63744&&Z<=64255||Z>=65040&&Z<=65049||Z>=65072&&Z<=65106||Z>=65108&&Z<=65126||Z>=65128&&Z<=65131||Z>=94176&&Z<=94180||Z===94192||Z===94193||Z>=94208&&Z<=100343||Z>=100352&&Z<=101589||Z>=101631&&Z<=101640||Z>=110576&&Z<=110579||Z>=110581&&Z<=110587||Z===110589||Z===110590||Z>=110592&&Z<=110882||Z===110898||Z>=110928&&Z<=110930||Z===110933||Z>=110948&&Z<=110951||Z>=110960&&Z<=111355||Z>=119552&&Z<=119638||Z>=119648&&Z<=119670||Z===126980||Z===127183||Z===127374||Z>=127377&&Z<=127386||Z>=127488&&Z<=127490||Z>=127504&&Z<=127547||Z>=127552&&Z<=127560||Z===127568||Z===127569||Z>=127584&&Z<=127589||Z>=127744&&Z<=127776||Z>=127789&&Z<=127797||Z>=127799&&Z<=127868||Z>=127870&&Z<=127891||Z>=127904&&Z<=127946||Z>=127951&&Z<=127955||Z>=127968&&Z<=127984||Z===127988||Z>=127992&&Z<=128062||Z===128064||Z>=128066&&Z<=128252||Z>=128255&&Z<=128317||Z>=128331&&Z<=128334||Z>=128336&&Z<=128359||Z===128378||Z===128405||Z===128406||Z===128420||Z>=128507&&Z<=128591||Z>=128640&&Z<=128709||Z===128716||Z>=128720&&Z<=128722||Z>=128725&&Z<=128727||Z>=128732&&Z<=128735||Z===128747||Z===128748||Z>=128756&&Z<=128764||Z>=128992&&Z<=129003||Z===129008||Z>=129292&&Z<=129338||Z>=129340&&Z<=129349||Z>=129351&&Z<=129535||Z>=129648&&Z<=129660||Z>=129664&&Z<=129673||Z>=129679&&Z<=129734||Z>=129742&&Z<=129756||Z>=129759&&Z<=129769||Z>=129776&&Z<=129784||Z>=131072&&Z<=196605||Z>=196608&&Z<=262141}function BW(Z){if(!Number.isSafeInteger(Z))throw new TypeError(`Expected a code point, got \`${typeof Z}\`.`)}function HW(Z,{ambiguousAsWide:J=!1}={}){if(BW(Z),KW(Z)||UW(Z)||J&&$W(Z))return 2;return 1}var WW=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g},qW=new Intl.Segmenter,MW=/^\p{Default_Ignorable_Code_Point}$/u;function FW(Z,J={}){if(typeof Z!=="string"||Z.length===0)return 0;let{ambiguousIsNarrow:X=!0,countAnsiEscapeCodes:Q=!1}=J;if(!Q)Z=TX(Z);if(Z.length===0)return 0;let z=0,G={ambiguousAsWide:!X};for(let{segment:Y}of qW.segment(Z)){let $=Y.codePointAt(0);if($<=31||$>=127&&$<=159)continue;if($>=8203&&$<=8207||$===65279)continue;if($>=768&&$<=879||$>=6832&&$<=6911||$>=7616&&$<=7679||$>=8400&&$<=8447||$>=65056&&$<=65071)continue;if($>=55296&&$<=57343)continue;if($>=65024&&$<=65039)continue;if(MW.test(Y))continue;if(WW().test(Y)){z+=2;continue}z+=HW($,G)}return z}function RW({stream:Z=process.stdout}={}){return Boolean(Z&&Z.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}function VW(){let{env:Z}=l9,{TERM:J,TERM_PROGRAM:X}=Z;if(l9.platform!=="win32")return J!=="linux";return Boolean(Z.WT_SESSION)||Boolean(Z.TERMINUS_SUBLIME)||Z.ConEmuTask==="{cmd::Cmder}"||X==="Terminus-Sublime"||X==="vscode"||J==="xterm-256color"||J==="alacritty"||J==="rxvt-unicode"||J==="rxvt-unicode-256color"||Z.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var IW=3;class LX{#Z=0;start(){if(this.#Z++,this.#Z===1)this.#J()}stop(){if(this.#Z<=0)throw new Error("`stop` called more times than `start`");if(this.#Z--,this.#Z===0)this.#X()}#J(){if(d1.platform==="win32"||!d1.stdin.isTTY)return;d1.stdin.setRawMode(!0),d1.stdin.on("data",this.#Q),d1.stdin.resume()}#X(){if(!d1.stdin.isTTY)return;d1.stdin.off("data",this.#Q),d1.stdin.pause(),d1.stdin.setRawMode(!1)}#Q(Z){if(Z[0]===IW)d1.emit("SIGINT")}}var EW=new LX,n9=EW,CF=J1(m7(),1);class jW{#Z=0;#J=!1;#X=0;#Q=0;#Y;#G;#z;#$;#q;#B;#H;#W;#F;#K;#U;color;constructor(Z){if(typeof Z==="string")Z={text:Z};if(this.#Y={color:"cyan",stream:I6.stderr,discardStdin:!0,hideCursor:!0,...Z},this.color=this.#Y.color,this.spinner=this.#Y.spinner,this.#q=this.#Y.interval,this.#z=this.#Y.stream,this.#B=typeof this.#Y.isEnabled==="boolean"?this.#Y.isEnabled:RW({stream:this.#z}),this.#H=typeof this.#Y.isSilent==="boolean"?this.#Y.isSilent:!1,this.text=this.#Y.text,this.prefixText=this.#Y.prefixText,this.suffixText=this.#Y.suffixText,this.indent=this.#Y.indent,I6.env.NODE_ENV==="test")this._stream=this.#z,this._isEnabled=this.#B,Object.defineProperty(this,"_linesToClear",{get(){return this.#Z},set(J){this.#Z=J}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#Q}}),Object.defineProperty(this,"_lineCount",{get(){return this.#X}})}get indent(){return this.#W}set indent(Z=0){if(!(Z>=0&&Number.isInteger(Z)))throw new Error("The `indent` option must be an integer from 0 and up");this.#W=Z,this.#M()}get interval(){return this.#q??this.#G.interval??100}get spinner(){return this.#G}set spinner(Z){if(this.#Q=0,this.#q=void 0,typeof Z==="object"){if(Z.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#G=Z}else if(!VW())this.#G=j6.default.line;else if(Z===void 0)this.#G=j6.default.dots;else if(Z!=="default"&&j6.default[Z])this.#G=j6.default[Z];else throw new Error(`There is no built-in spinner named '${Z}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#F}set text(Z=""){this.#F=Z,this.#M()}get prefixText(){return this.#K}set prefixText(Z=""){this.#K=Z,this.#M()}get suffixText(){return this.#U}set suffixText(Z=""){this.#U=Z,this.#M()}get isSpinning(){return this.#$!==void 0}#R(Z=this.#K,J=" "){if(typeof Z==="string"&&Z!=="")return Z+J;if(typeof Z==="function")return Z()+J;return""}#V(Z=this.#U,J=" "){if(typeof Z==="string"&&Z!=="")return J+Z;if(typeof Z==="function")return J+Z();return""}#M(){let Z=this.#z.columns??80,J=this.#R(this.#K,"-"),X=this.#V(this.#U,"-"),Q=" ".repeat(this.#W)+J+"--"+this.#F+"--"+X;this.#X=0;for(let z of TX(Q).split("\n"))this.#X+=Math.max(1,Math.ceil(FW(z,{countAnsiEscapeCodes:!0})/Z))}get isEnabled(){return this.#B&&!this.#H}set isEnabled(Z){if(typeof Z!=="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#B=Z}get isSilent(){return this.#H}set isSilent(Z){if(typeof Z!=="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#H=Z}frame(){let{frames:Z}=this.#G,J=Z[this.#Q];if(this.color)J=NH[this.color](J);this.#Q=++this.#Q%Z.length;let X=typeof this.#K==="string"&&this.#K!==""?this.#K+" ":"",Q=typeof this.text==="string"?" "+this.text:"",z=typeof this.#U==="string"&&this.#U!==""?" "+this.#U:"";return X+J+Q+z}clear(){if(!this.#B||!this.#z.isTTY)return this;this.#z.cursorTo(0);for(let Z=0;Z<this.#Z;Z++){if(Z>0)this.#z.moveCursor(0,-1);this.#z.clearLine(1)}if(this.#W||this.lastIndent!==this.#W)this.#z.cursorTo(this.#W);return this.lastIndent=this.#W,this.#Z=0,this}render(){if(this.#H)return this;return this.clear(),this.#z.write(this.frame()),this.#Z=this.#X,this}start(Z){if(Z)this.text=Z;if(this.#H)return this;if(!this.#B){if(this.text)this.#z.write(`- ${this.text}\n`);return this}if(this.isSpinning)return this;if(this.#Y.hideCursor)g9.hide(this.#z);if(this.#Y.discardStdin&&I6.stdin.isTTY)this.#J=!0,n9.start();return this.render(),this.#$=setInterval(this.render.bind(this),this.interval),this}stop(){if(!this.#B)return this;if(clearInterval(this.#$),this.#$=void 0,this.#Q=0,this.clear(),this.#Y.hideCursor)g9.show(this.#z);if(this.#Y.discardStdin&&I6.stdin.isTTY&&this.#J)n9.stop(),this.#J=!1;return this}succeed(Z){return this.stopAndPersist({symbol:A6.success,text:Z})}fail(Z){return this.stopAndPersist({symbol:A6.error,text:Z})}warn(Z){return this.stopAndPersist({symbol:A6.warning,text:Z})}info(Z){return this.stopAndPersist({symbol:A6.info,text:Z})}stopAndPersist(Z={}){if(this.#H)return this;let J=Z.prefixText??this.#K,X=this.#R(J," "),Q=Z.symbol??" ",z=Z.text??this.text,G=typeof z==="string"?" "+z:"",Y=Z.suffixText??this.#U,$=this.#V(Y," "),K=X+Q+G+$+"\n";return this.stop(),this.#z.write(K),this}}function i9(Z){if(Array.isArray(Z))return[...Z];return{...Z}}function NW(Z){if(Array.isArray(Z))return Z;return[Z]}function E8(Z,...J){NW(J).forEach((X)=>{delete Z[X]})}var $0=(Z)=>Array.isArray(Z);function t1(Z){return typeof Z==="object"&&!Array.isArray(Z)&&Z!==null}var D1=(Z)=>typeof Z==="function";function T0(Z,J){try{return J.split(".").reduce((X,Q)=>X[Q],Z)}catch(X){return Z}}function p0(Z){if(Array.isArray(Z))return[...Z];if("all"in Z&&typeof Z.all==="function")return Z.all();return Object.values(Z)}function PW(Z){return new Q1(Z)}class Q1{items;constructor(Z=[]){this.items=Z}[Symbol.iterator]=wW;toJSON(){return this.items}all(){return this.items}average(Z){if(Z===void 0)return this.sum()/Number(this.items.length);if(D1(Z))return Number(new this.constructor(this.items).sum(Z))/Number(this.items.length);return Number(new this.constructor(this.items).pluck(Z).sum())/Number(this.items.length)}avg=this.average;chunk(Z){let J=[],X=Array.isArray(this.items)?this.items:Object.values(this.items);for(let Q=0;Q<X.length;Q+=Z)J.push(X.slice(Q,Q+Z));return new Q1(J)}collapse(){return new this.constructor([].concat(...this.items))}combine(Z){if(typeof Z==="string")Z=[Z];if(!Array.isArray(Z))throw new TypeError("The values must be an array or a string");let J={};return(Array.isArray(this.items)?this.items:Object.keys(this.items)).forEach((Q,z)=>{if(Z[z]!==void 0)J[Q]=Z[z]}),new Q1(J)}concat(Z){let J=Z;if(Z instanceof this.constructor)J=Z.all();else if(typeof Z==="object")J=[],Object.keys(Z).forEach((Q)=>{J.push(Z[Q])});let X=i9(this.items);return J.forEach((Q)=>{if(typeof Q==="object")Object.keys(Q).forEach((z)=>X.push(Q[z]));else X.push(Q)}),new this.constructor(X)}contains(Z,J){if(typeof Z==="function")return this.items.some(Z);if(Array.isArray(this.items))return this.items.includes(Z);if(J!==void 0){if(Array.isArray(this.items))return this.items.some((X)=>X[Z]!==void 0&&X[Z]===J);return Z in this.items&&this.items[Z]===J}if(Array.isArray(this.items))return this.items.includes(Z);return Object.values(this.items).includes(Z)}containsOneItem(){if(typeof this.items==="string")return!0;return Object.keys(this.items).length===1}count(Z){if(Z)return this.filter(Z).count();return Object.keys(this.items).length}countBy(Z){let J={};return this.each((X)=>{let Q=Z?Z(X):X;J[Q]=(J[Q]||0)+1}),new Q1(J)}crossJoin(...Z){function J(X,Q,z){let G=z[0];if(G instanceof Q1)G=G.all();let Y=z.slice(1),$=!Y.length,K=[];for(let U=0;U<G.length;U+=1){let H=X.slice();if(H.push(G[U]),$)K.push(H);else K=K.concat(J(H,Q,Y))}return K}return new this.constructor(J([],this.constructor,[].concat([this.items],Z)))}dd(){console.log(JSON.stringify(this.all(),null,2)),AW.exit()}diff(Z){let J;if(Z instanceof this.constructor)J=Z.all();else J=Z;let X=this.items.filter((Q)=>!J.includes(Q));return new this.constructor(X)}diffAssoc(Z){let J=Z;if(Z instanceof this.constructor)J=Z.all();let X={};return Object.keys(this.items).forEach((Q)=>{if(J[Q]===void 0||J[Q]!==this.items[Q])X[Q]=this.items[Q]}),new this.constructor(X)}diffKeys(Z){let J;if(Z instanceof this.constructor)J=Z.all();else J=Z;let X=Object.keys(J),Q=Object.keys(this.items).filter((z)=>!X.includes(z));return new this.constructor(this.items).only(Q)}diffUsing(Z,J){if(console.log("Original collection:",this.items),console.log("Array to compare:",Z),Z===null)return new Q1(this.items);let X=this.items.filter((Q)=>{return Z.findIndex((G)=>{return J(Q,G)===0})===-1});return new Q1(X)}doesntContain(Z,J){if(console.log("doesntContain called with:",{key:Z,value:J}),typeof Z==="function")return console.log("Function branch"),!this.contains(Z);if(J!==void 0)return console.log("Key-value pair branch"),!this.contains((X)=>{return console.log("Comparing:",X[Z],"with",J),X[Z]===J});return console.log("Single value branch"),!this.contains(Z)}dump(){return console.log(this.items),this}duplicates(){let Z=[],J={},X=(Q)=>{if(Array.isArray(Q)||typeof Q==="object")return JSON.stringify(Q);return Q};if(Array.isArray(this.items))this.items.forEach((Q,z)=>{let G=X(Q);if(!Z.includes(G))Z.push(G);else J[z]=Q});else if(typeof this.items==="object")Object.keys(this.items).forEach((Q)=>{let z=X(this.items[Q]);if(!Z.includes(z))Z.push(z);else J[Q]=this.items[Q]});return new this.constructor(J)}each(Z){let J=!1;if(Array.isArray(this.items)){let{length:X}=this.items;for(let Q=0;Q<X&&!J;Q+=1)J=Z(this.items[Q],Q,this.items)===!1}else{let X=Object.keys(this.items),{length:Q}=X;for(let z=0;z<Q&&!J;z+=1){let G=X[z];J=Z(this.items[G],G,this.items)===!1}}return this}eachSpread(Z){return this.each((J,X)=>{Z(...J,X)}),this}every(Z){return p0(this.items).every(Z)}except(Z){let J={...this.items};return(Array.isArray(Z)?Z:[Z]).forEach((Q)=>delete J[Q]),new Q1(J)}filter(Z){if(console.log("Filter method called with callback:",Z),console.log("Current items:",this.items),typeof Z!=="function"){console.log("No callback provided, removing falsy values");let X=this.items.filter((Q)=>{return console.log("Filtering item:",Q),Boolean(Q)});return console.log("Filtered items:",X),new Q1(X)}let J=this.items.filter((X,Q)=>{return console.log("Filtering item:",X,"at index:",Q),Z(X,Q)});return console.log("Filtered items:",J),new Q1(J)}first(Z,J){if(D1(Z)){let X=Object.keys(this.items);for(let Q=0;Q<X.length;Q+=1){let z=X[Q],G=this.items[z];if(Z(G,z))return G}if(D1(J))return J();return J}if(Array.isArray(this.items)&&this.items.length||Object.keys(this.items).length){if(Array.isArray(this.items))return this.items[0];let X=Object.keys(this.items)[0];return this.items[X]}if(D1(J))return J();return J}firstOrFail(Z){let J=this.items.find(Z||(()=>!0));if(J===void 0)throw new Error("Item not found.");return J}firstWhere(Z,J,X){return this.where(Z,J,X).first()||null}flatMap(Z){return this.map(Z).collapse()}flatten(Z=Number.POSITIVE_INFINITY){let J=(X,Q)=>{if(!Array.isArray(X)&&typeof X!=="object")return[X];return Q>0?Object.values(X).reduce((z,G)=>z.concat(Array.isArray(G)||typeof G==="object"?J(G,Q-1):G),[]):Array.isArray(X)?[...X]:[X]};return new Q1(J(this.items,Z))}flip(){let Z={};if(Array.isArray(this.items))this.items.forEach((J,X)=>{Z[J]=X});else Object.entries(this.items).forEach(([J,X])=>{Z[X]=J});return new this.constructor(Z)}forPage(Z,J){let X={};if(Array.isArray(this.items))X=this.items.slice(Z*J-J,Z*J);else Object.keys(this.items).slice(Z*J-J,Z*J).forEach((Q)=>{X[Q]=this.items[Q]});return new this.constructor(X)}forget(Z){if(Array.isArray(this.items))this.items=this.items.filter((J,X)=>X!==Number.parseInt(Z,10));else if(typeof this.items==="object"&&this.items!==null)delete this.items[Z];return this}get(Z,J=null){if(Array.isArray(this.items))return this.items[Z]??J;return this.items[Z]??J}groupBy(Z){let J={};return this.each((X,Q)=>{let z=typeof Z==="function"?Z(X):X[Z];if(!(z in J))J[z]=new Q1;J[z].push(X)}),new Q1(J)}has(Z){if(Array.isArray(this.items))return Z in this.items;return Z in this.items}implode(Z,J){if(J===void 0)return this.items.join(Z);return new this.constructor(this.items).pluck(Z).all().join(J)}includes(Z){if(Array.isArray(this.items))return this.items.includes(Z);return Object.values(this.items).includes(Z)}intersect(Z){let J=Z;if(Z instanceof this.constructor)J=Z.all();let X=this.items.filter((Q)=>J.includes(Q));return new this.constructor(X)}intersectByKeys(Z){let J=Object.keys(Z);if(Z instanceof this.constructor)J=Object.keys(Z.all());let X={};return Object.keys(this.items).forEach((Q)=>{if(J.includes(Q))X[Q]=this.items[Q]}),new this.constructor(X)}isEmpty(){return this.count()===0}isNotEmpty(){return!this.isEmpty()}join(Z,J){let X=this.values();if(J===void 0)return X.implode(Z);let Q=X.count();if(Q===0)return"";if(Q===1)return X.last();let z=X.pop();return X.implode(Z)+J+z}keyBy(Z){let J={};if(D1(Z))this.items.forEach((X)=>{J[Z(X)]=X});else this.items.forEach((X)=>{let Q=T0(X,Z);J[Q||""]=X});return new this.constructor(J)}keys(){return new Q1(Object.keys(this.items))}last(Z,J){let{items:X}=this;if(D1(Z))X=this.filter(Z).all();if(Array.isArray(X)&&!X.length||!Object.keys(X).length){if(D1(J))return J();return J}if(Array.isArray(X))return X[X.length-1];let Q=Object.keys(X);return X[Q[Q.length-1]]}macro(Z,J){this.constructor.prototype[Z]=J}make(Z=[]){return new this.constructor(Z)}map(Z){if(Array.isArray(this.items))return new this.constructor(this.items.map(Z));let J={};return Object.keys(this.items).forEach((X)=>{J[X]=Z(this.items[X],Number(X))}),new this.constructor(J)}mapSpread(Z){return this.map((J,X)=>Z(...J,X))}mapToDictionary(Z){let J={};return this.items.forEach((X,Q)=>{let[z,G]=Z(X,Q);if(J[z]===void 0)J[z]=[G];else J[z].push(G)}),new this.constructor(J)}mapInto(Z){return this.map((J,X)=>new Z(J,X))}mapToGroups(Z){let J={};return this.items.forEach((X,Q)=>{let[z,G]=Z(X,Q);if(J[z]===void 0)J[z]=[G];else J[z].push(G)}),new this.constructor(J)}mapWithKeys(Z){let J={};if(Array.isArray(this.items))this.items.forEach((X,Q)=>{let[z,G]=Z(X,Q);J[z]=G});else Object.keys(this.items).forEach((X)=>{let[Q,z]=Z(this.items[X],Number(X));J[Q]=z});return new this.constructor(J)}max(Z){if(typeof Z==="string"){let J=this.items.filter((X)=>X[Z]!==void 0);return Math.max(...J.map((X)=>X[Z]))}return Math.max(...this.items)}median(Z){let{length:J}=this.items;if(Z===void 0){if(J%2===0)return(this.items[J/2-1]+this.items[J/2])/2;return this.items[Math.floor(J/2)]}if(J%2===0)return(this.items[J/2-1][Z]+this.items[J/2][Z])/2;return this.items[Math.floor(J/2)][Z]}merge(Z){let J={...this.items,...Z};return new Q1(J)}mergeRecursive(Z){let J=(X,Q)=>{let z={};return Object.keys({...X,...Q}).forEach((Y)=>{if(X[Y]===void 0&&Q[Y]!==void 0)z[Y]=Q[Y];else if(X[Y]!==void 0&&Q[Y]===void 0)z[Y]=X[Y];else if(X[Y]!==void 0&&Q[Y]!==void 0)if(X[Y]===Q[Y])z[Y]=X[Y];else if(!Array.isArray(X[Y])&&typeof X[Y]==="object"&&!Array.isArray(Q[Y])&&typeof Q[Y]==="object")z[Y]=J(X[Y],Q[Y]);else z[Y]=[].concat(X[Y],Q[Y])}),z};if(!Z)return this;if(Z.constructor.name==="Collection")return new this.constructor(J(this.items,Z.all()));return new this.constructor(J(this.items,Z))}min(Z){if(Z!==void 0){let J=this.items.filter((X)=>X[Z]!==void 0);return Math.min(...J.map((X)=>X[Z]))}return Math.min(...this.items)}mode(Z){let J=[],X=1;if(!this.items.length)return null;return this.items.forEach((Q)=>{let z=J.filter((G)=>{if(Z!==void 0)return G.key===Q[Z];return G.key===Q});if(!z.length)if(Z!==void 0)J.push({key:Q[Z],count:1});else J.push({key:Q,count:1});else{z[0].count+=1;let{count:G}=z[0];if(G>X)X=G}}),J.filter((Q)=>Q.count===X).map((Q)=>Q.key)}nth(Z,J=0){let Q=p0(this.items).slice(J).filter((z,G)=>G%Z===0);return new this.constructor(Q)}only(Z){let J={};return Z.forEach((X)=>{if(X in this.items)J[X]=this.items[X]}),new Q1(J)}pad(Z,J){let X=Math.abs(Z),Q=this.count();if(X<=Q)return this;let z=X-Q,G=i9(this.items),Y=Array.isArray(this.items),$=Z<0;for(let K=0;K<z;){if(!Y)if(G[K]!==void 0)z+=1;else G[K]=J;else if($)G.unshift(J);else G.push(J);K+=1}return new this.constructor(G)}partition(Z){let J;if(Array.isArray(this.items))J=[new this.constructor([]),new this.constructor([])],this.items.forEach((X)=>{if(Z(X)===!0)J[0].push(X);else J[1].push(X)});else J=[new this.constructor({}),new this.constructor({})],Object.keys(this.items).forEach((X)=>{let Q=this.items[X];if(Z(Q)===!0)J[0].put(X,Q);else J[1].put(X,Q)});return new this.constructor(J)}pipe(Z){return Z(this)}pluck(Z,J){if(Z.includes("*")){let X=OW(this.items),Q=[];if(J!==void 0){let $=new RegExp(`0.${J}`,"g"),K=`0.${J}`.split(".").length;Object.keys(X).forEach((U)=>{let H=U.match($);if(H){let B=H[0];if(B.split(".").length===K)Q.push(X[B])}})}let z=[],G=new RegExp(`0.${Z}`,"g"),Y=`0.${Z}`.split(".").length;if(Object.keys(X).forEach(($)=>{let K=$.match(G);if(K){let U=K[0];if(U.split(".").length===Y)z.push(X[U])}}),J!==void 0){let $={};return this.items.forEach((K,U)=>{$[Q[U]||""]=z}),new this.constructor($)}return new this.constructor([z])}if(J!==void 0){let X={};return this.items.forEach((Q)=>{if(T0(Q,Z)!==void 0)X[Q[J]||""]=T0(Q,Z);else X[Q[J]||""]=null}),new this.constructor(X)}return this.map((X)=>{if(T0(X,Z)!==void 0)return T0(X,Z);return null})}pop(Z=1){if(this.isEmpty())return null;if($0(this.items)){if(Z===1)return this.items.pop();return new this.constructor(this.items.splice(-Z))}if(t1(this.items)){let J=Object.keys(this.items);if(Z===1){let z=J[J.length-1],G=this.items[z];return E8(this.items,z),G}let X=J.slice(-Z),Q=X.reduce((z,G)=>{return z[G]=this.items[G],z},{});return E8(this.items,X),new this.constructor(Q)}return null}prepend(Z,J){if(J!==void 0)return this.put(J,Z);return this.items.unshift(Z),this}pull(Z,J=null){if(Array.isArray(this.items)){let Q=Number(Z);if(Number.isNaN(Q))return J;let z=this.items[Q];return this.items.splice(Q,1),z??J}let X=this.items[Z];return delete this.items[Z],X??J}push(...Z){return this.items=[...this.items,...Z],this}put(Z,J){return this.items[Z]=J,this}random(Z=null){let J=p0(this.items),X=new this.constructor(J).shuffle();if(Z!==Number.parseInt(Z,10))return X.first();return X.take(Z)}reduce(Z,J){let X=null;if(J!==void 0)X=J;if(Array.isArray(this.items))this.items.forEach((Q)=>{X=Z(X,Q)});else Object.keys(this.items).forEach((Q)=>{X=Z(X,this.items[Q],Q)});return X}reject(Z){return new this.constructor(this.items).filter((J)=>!Z(J))}replace(Z){if(!Z)return this;if(Array.isArray(Z)){let X=this.items.map((Q,z)=>Z[z]||Q);return new this.constructor(X)}if(Z.constructor.name==="Collection"){let X={...this.items,...Z.all()};return new this.constructor(X)}let J={...this.items,...Z};return new this.constructor(J)}replaceRecursive(Z){let J=(X,Q)=>{let z={...X};return Object.keys({...X,...Q}).forEach((Y)=>{if(!Array.isArray(Q[Y])&&typeof Q[Y]==="object")z[Y]=J(X[Y],Q[Y]);else if(X[Y]===void 0&&Q[Y]!==void 0)if(typeof X[Y]==="object")z[Y]={...Q[Y]};else z[Y]=Q[Y];else if(X[Y]!==void 0&&Q[Y]===void 0)if(typeof X[Y]==="object")z[Y]={...X[Y]};else z[Y]=X[Y];else if(X[Y]!==void 0&&Q[Y]!==void 0)if(typeof Q[Y]==="object")z[Y]={...Q[Y]};else z[Y]=Q[Y]}),z};if(!Z)return this;if(!Array.isArray(Z)&&typeof Z!=="object")return new this.constructor(J(this.items,[Z]));if(Z.constructor.name==="Collection")return new this.constructor(J(this.items,Z.all()));return new this.constructor(J(this.items,Z))}reverse(){let Z=[].concat(this.items).reverse();return new this.constructor(Z)}search(Z,J){let X,Q=(z,G)=>{if(D1(Z))return Z(this.items[G],G);if(J)return this.items[G]===Z;return this.items[G]==Z};if($0(this.items))X=this.items.findIndex(Q);else if(t1(this.items))X=Object.keys(this.items).find((z)=>Q(this.items[z],z));if(X===void 0||X<0)return!1;return X}shift(Z=1){if(this.isEmpty())return null;if($0(this.items)){if(Z===1)return this.items.shift();return new this.constructor(this.items.splice(0,Z))}if(t1(this.items)){if(Z===1){let z=Object.keys(this.items)[0],G=this.items[z];return delete this.items[z],G}let X=Object.keys(this.items).slice(0,Z),Q=X.reduce((z,G)=>{return z[G]=this.items[G],z},{});return E8(this.items,X),new this.constructor(Q)}return null}shuffle(){let Z=p0(this.items),J,X,Q;for(Q=Z.length;Q;Q-=1)J=Math.floor(Math.random()*Q),X=Z[Q-1],Z[Q-1]=Z[J],Z[J]=X;return this.items=Z,this}skip(Z){if(t1(this.items))return new this.constructor(Object.keys(this.items).reduce((J,X,Q)=>{if(Q+1>Z)J[X]=this.items[X];return J},{}));return new this.constructor(this.items.slice(Z))}skipUntil(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!0)J=Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!0)J=Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}skipWhile(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!0)J=!Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!0)J=!Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}slice(Z,J){let X=this.items.slice(Z);if(J!==void 0)X=X.slice(0,J);return new this.constructor(X)}sole(){if(this.items.length!==1)throw new Error("Collection does not contain exactly one item.");return this.items[0]}some(Z){return this.items.some((J)=>J.hasOwnProperty(Z))}sort(Z){let J=[].concat(this.items);if(Z===void 0)if(this.every((X)=>typeof X==="number"))J.sort((X,Q)=>X-Q);else J.sort();else J.sort(Z);return new this.constructor(J)}sortDesc(){return this.sort().reverse()}sortBy(Z){let J=[].concat(this.items),X=(Q)=>{if(D1(Z))return Z(Q);return T0(Q,Z)};return J.sort((Q,z)=>{let G=X(Q),Y=X(z);if(G===null||G===void 0)return 1;if(Y===null||Y===void 0)return-1;if(G<Y)return-1;if(G>Y)return 1;return 0}),new this.constructor(J)}sortByDesc(Z){return this.sortBy(Z).reverse()}sortKeys(){let Z={};return Object.keys(this.items).sort().forEach((J)=>{Z[J]=this.items[J]}),new this.constructor(Z)}sortKeysDesc(){let Z={};return Object.keys(this.items).sort().reverse().forEach((J)=>{Z[J]=this.items[J]}),new this.constructor(Z)}splice(Z,J,X){let Q=this.slice(Z,J);if(this.items=this.diff(Q.all()).all(),Array.isArray(X))for(let z=0,{length:G}=X;z<G;z+=1)this.items.splice(Z+z,0,X[z]);return Q}split(Z){let J=this.toArray(),X=[],Q=Math.ceil(J.length/Z);for(let z=0;z<J.length;z+=Q)X.push(J.slice(z,z+Q));return new Q1(X)}sum(Z){let J=p0(this.items),X=0;if(Z===void 0)for(let Q=0,{length:z}=J;Q<z;Q+=1)X+=Number.parseFloat(J[Q]);else if(D1(Z))for(let Q=0,{length:z}=J;Q<z;Q+=1)X+=Number.parseFloat(Z(J[Q]));else for(let Q=0,{length:z}=J;Q<z;Q+=1)X+=Number.parseFloat(J[Q][Z]);return Number.parseFloat(X.toPrecision(12))}take(Z){if(!Array.isArray(this.items)&&typeof this.items==="object"){let J=Object.keys(this.items),X;if(Z<0)X=J.slice(Z);else X=J.slice(0,Z);let Q={};return J.forEach((z)=>{if(X.includes(z))Q[z]=this.items[z]}),new this.constructor(Q)}if(Z<0)return new this.constructor(this.items.slice(Z));return new this.constructor(this.items.slice(0,Z))}takeUntil(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!1)J=!Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!1)J=!Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}takeWhile(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!1)J=Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!1)J=Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}tap(Z){return Z(this),this}times(Z,J){for(let X=1;X<=Z;X+=1)this.items.push(J(X));return this}toArray(){return Array.isArray(this.items)?this.items:Object.values(this.items)}toJson(){return JSON.stringify(this.items)}transform(Z){if(Array.isArray(this.items))this.items=this.items.map(Z);else{let J={};Object.keys(this.items).forEach((X)=>{J[X]=Z(this.items[X],X)}),this.items=J}return this}undot(){if(Array.isArray(this.items))return this;let Z={};return Object.keys(this.items).forEach((J)=>{if(J.includes(".")){let X=Z;J.split(".").reduce((Q,z,G,Y)=>{if(!Q[z])Q[z]={};if(G===Y.length-1)Q[z]=this.items[J];return Q[z]},X),Z={...Z,...X}}else Z[J]=this.items[J]}),new this.constructor(Z)}unless(Z,J,X){if(!Z)return J(this);if(X)return X();return}unlessEmpty(Z){if(!this.isEmpty())Z(this);return this}unlessNotEmpty(Z){if(this.isEmpty())Z(this);return this}union(Z){let J=JSON.parse(JSON.stringify(this.items));return Object.keys(Z).forEach((X)=>{if(this.items[X]===void 0)J[X]=Z[X]}),new this.constructor(J)}unique(){let Z=Array.from(new Set(this.items));return new this.constructor(Z)}unwrap(){return this.items}values(){return new Q1(Object.values(this.items))}when(Z,J,X){if(Z)J(this,Z);else if(X)X();return this}whenEmpty(Z,J){if(Array.isArray(this.items)&&!this.items.length)return Z(this);if(!Object.keys(this.items).length)return Z(this);if(J!==void 0){if(Array.isArray(this.items)&&this.items.length)return J(this);if(Object.keys(this.items).length)return J(this)}return this}whenNotEmpty(Z,J){if(Array.isArray(this.items)&&this.items.length)return Z(this);if(Object.keys(this.items).length)return Z(this);if(J!==void 0){if(Array.isArray(this.items)&&!this.items.length)return J(this);if(!Object.keys(this.items).length)return J(this)}return this}where(Z,J,X){if(arguments.length===1)return new Q1(this.items.filter((z)=>z[Z]!==void 0));if(arguments.length===2)X=J,J="===";let Q=(z,G,Y,$)=>{let K=z[G];switch($){case"===":return K===Y;case"!==":return K!==Y;case"<":return K<Y;case"<=":return K<=Y;case">":return K>Y;case">=":return K>=Y;default:return K==Y}};return new Q1(this.items.filter((z)=>Q(z,Z,X,J)))}whereBetween(Z,J){return this.filter((X)=>{let Q=typeof X==="object"?X[Z]:X;return Q>=J[0]&&Q<=J[1]})}whereIn(Z,J){return this.filter((X)=>{let Q=typeof X==="object"?X[Z]:X;return J.includes(Q)})}whereNotBetween(Z,J){return this.filter((X)=>{let Q=typeof X==="object"?X[Z]:X;return Q<J[0]||Q>J[1]})}whereNotIn(Z,J){let X=this.items.filter((Q)=>{let z=Z.split("."),G=Q;for(let Y of z){if(G[Y]===void 0)return!0;G=G[Y]}return!J.includes(G)});return new Q1(X)}getNestedValue(Z,J){return J.split(".").reduce((Q,z)=>Q&&Q[z]!==void 0?Q[z]:null,Z)}whereInstanceOf(Z){return this.filter((J)=>J instanceof Z)}whereNotNull(Z){return this.where(Z,"!==",null)}whereNull(Z){return this.where(Z,"===",null)}static wrap(Z){if(Z instanceof Q1)return Z;return new Q1(Array.isArray(Z)?Z:[Z])}static unwrap(Z){if(Z instanceof Q1)return Z.all();return Z}wrap(Z){if(Z instanceof Q1)return Z;if(typeof Z==="object")return new Q1(Z);return new Q1([Z])}zip(...Z){let J=Z.map((Q)=>this.constructor.wrap(Q).all()),X=this.items.map((Q,z)=>{let G=[Q];return J.forEach((Y)=>{G.push(Y[z])}),new this.constructor(G)});return new this.constructor(X)}}var OW=function Z(J){let X={};return J.forEach((Q,z)=>{function G(Y,$){if(t1(Y))Object.keys(Y).forEach((K)=>{G(Y[K],`${$}.${K}`)});else if($0(Y))Y.forEach((K,U)=>{G(K,`${$}.${U}`)});X[$]=Y}G(Q,z)}),X};function wW(){let Z=-1;return{next:()=>{return Z+=1,{value:this.items[Z],done:Z>=this.items.length}}}}g6();var bF=PW(["The best way to get started is to quit talking and begin doing.","The pessimist sees difficulty in every opportunity. The optimist sees opportunity in every difficulty.","Don\u2019t let yesterday take up too much of today.","You learn more from failure than from success. Don\u2019t let it stop you. Failure builds character.","It\u2019s not whether you get knocked down, it\u2019s whether you get up.","If you are working on something that you really care about, you don\u2019t have to be pushed. The vision pulls you.","People who are crazy enough to think they can change the world, are the ones who do.","Failure will never overtake me if my determination to succeed is strong enough.","Entrepreneurs are great at dealing with uncertainty and also very good at minimizing risk. That\u2019s the classic entrepreneur.","We may encounter many defeats but we must not be defeated.","Knowing is not enough; we must apply. Wishing is not enough; we must do.","Imagine your life is perfect in every respect; what would it look like?","We generate fears while we sit. We overcome them by action.","Whether you think you can or think you can\u2019t, you\u2019re right.","Security is mostly a superstition. Life is either a daring adventure or nothing."]),kF=HB.default;var zZ="0.5.2";import{mkdir as jM,rm as AM}from"fs/promises";import{dirname as NM,join as PM,parse as OM,relative as wM}from"path";import TM from"process";var QY=u0(ZY(),1),EZ=u0(K6(),1),YY=u0(K6(),1);import XY,{posix as i6}from"path";var Eq=/\\(?![()[\]{}!+@])/g;function jq(Z){return zY(Z)}function Aq(Z){return GY(Z).replace(Eq,"/")}var SR=process.platform==="win32"?Aq:jq,Nq=/(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g,Pq=/(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g,zY=(Z)=>Z.replace(Nq,"\\$&"),GY=(Z)=>Z.replace(Pq,"\\$&"),DR=process.platform==="win32"?GY:zY;function Oq(Z,J){if((J==null?void 0:J.caseSensitiveMatch)===!1)return!0;let X=YY.default.scan(Z);return X.isGlob||X.negated}function IZ(Z,J,X,Q,z){var G;let Y=Z;if(Z.endsWith("/"))Y=Z.slice(0,-1);if(!Y.endsWith("*")&&J)Y+="/**";if(XY.isAbsolute(Y.replace(/\\(?=[()[\]{}!*+?@|])/g,"")))Y=i6.relative(X,Y);else Y=i6.normalize(Y);let $=/^(\/?\.\.)+/.exec(Y);if($==null?void 0:$[0]){let K=i6.join(X,$[0]);if(Q.root.length>K.length)Q.root=K,Q.depthOffset=-($[0].length+1)/3}else if(!z&&Q.depthOffset>=0){let K=Y.split("/");(G=Q.commonPath)!=null||(Q.commonPath=K);let U=[];for(let H=0;H<Math.min(Q.commonPath.length,K.length);H++){let B=K[H];if(B==="**"&&!K[H+1]){U.pop();break}if(B!==Q.commonPath[H]||Oq(B)||H===K.length-1)break;U.push(B)}Q.depthOffset=U.length,Q.commonPath=U,Q.root=U.length>0?`${X}/${U.join("/")}`:X}return Y}function wq({patterns:Z,ignore:J=[],expandDirectories:X=!0},Q,z){if(typeof Z==="string")Z=[Z];else if(!Z)Z=["**/*"];if(typeof J==="string")J=[J];let G=[],Y=[];for(let $ of J)if(!$.startsWith("!")||$[1]==="("){let K=IZ($,X,Q,z,!0);Y.push(K)}for(let $ of Z)if(!$.startsWith("!")||$[1]==="("){let K=IZ($,X,Q,z,!1);G.push(K)}else if($[1]!=="!"||$[2]==="("){let K=IZ($.slice(1),X,Q,z,!0);Y.push(K)}return{match:G,ignore:Y}}function jZ(Z,J,X){return i6.relative(J,`${X}/${Z}`)}function JY(Z,J,X,Q,z){let G=z?Z.slice(X.length+1)||".":Z;if(X===J)return Q&&G!=="."?G.slice(0,-1):G;return jZ(G,J,X)}function Tq(Z,J,X){let Q={root:J,commonPath:null,depthOffset:0},z=wq(Z,J,Q),G=EZ.default(z.match,{dot:Z.dot,nocase:Z.caseSensitiveMatch===!1,ignore:z.ignore}),Y=EZ.default(z.ignore,{dot:Z.dot,nocase:Z.caseSensitiveMatch===!1}),$={filters:[(U,H)=>G(JY(U,J,Q.root,H,Z.absolute))],exclude:(U,H)=>Y(JY(H,J,Q.root,!0,!0)),pathSeparator:"/",relativePaths:!0,resolveSymlinks:!0};if(Z.deep)$.maxDepth=Math.round(Z.deep-Q.depthOffset);if(Z.absolute)$.relativePaths=!1,$.resolvePaths=!0,$.includeBasePath=!0;if(Z.followSymbolicLinks===!1)$.resolveSymlinks=!1,$.excludeSymlinks=!0;if(Z.onlyDirectories)$.excludeFiles=!0,$.includeDirs=!0;else if(Z.onlyFiles===!1)$.includeDirs=!0;Q.root=Q.root.replace(/\\/g,"");let K=new QY.fdir($).crawl(Q.root);if(J===Q.root||Z.absolute)return X?K.sync():K.withPromise();return X?K.sync().map((U)=>jZ(U,J,Q.root)+(!U||U.endsWith("/")?"/":"")):K.withPromise().then((U)=>U.map((H)=>jZ(H,J,Q.root)+(!H||H.endsWith("/")?"/":"")))}async function $Y(Z,J){if(Z&&(J==null?void 0:J.patterns))throw new Error("Cannot pass patterns as both an argument and an option");let X=Array.isArray(Z)||typeof Z==="string"?{...J,patterns:Z}:Z,Q=X.cwd?XY.resolve(X.cwd).replace(/\\/g,"/"):process.cwd().replace(/\\/g,"/");return Tq(X,Q,!1)}import Dq from"process";import{resolve as Lq}from"path";import Sq from"process";function AZ(Z,...J){if(!J.length)return Z;let X=J.shift();if(s6(Z)&&s6(X)){for(let Q in X)if(Object.prototype.hasOwnProperty.call(X,Q)){let z=X[Q];if(s6(z)&&s6(Z[Q]))Z[Q]=AZ(Z[Q],z);else Z[Q]=z}}return AZ(Z,...J)}function s6(Z){return Z&&typeof Z==="object"&&!Array.isArray(Z)}async function KY({name:Z,cwd:J,defaultConfig:X}){let Q=Lq(J||Sq.cwd(),`${Z}.config`);try{let z=await import(Q),G=z.default||z;return AZ(X,G)}catch(z){return X}}var x0=await KY({name:"dts",defaultConfig:{cwd:Dq.cwd(),root:"./src",entrypoints:["**/*.ts"],outdir:"./dist",keepComments:!0,clean:!0,tsconfigPath:"./tsconfig.json",verbose:!1}});function NZ(Z){if(_("params",`Cleaning parameters: ${Z}`),!Z.trim())return"";let J=[],X="",Q=0,z=!1,G="",Y=!1;for(let K of Z){if(K==='"'||K==="\'"||K==="`"){if(!z)z=!0,G=K;else if(K===G)z=!1}if(!z){if(K==="{")Y=!0,Q++;if(K==="}")Y=!1,Q--;if(K==="<"||K==="(")Q++;if(K===">"||K===")")Q--;if(K===","&&Q===0&&!Y){if(X.trim())J.push(UY(X));X="";continue}}X+=K}if(X.trim())J.push(UY(X));let $=J.join(", ");return _("params",`Cleaned parameters: ${$}`),$}function UY(Z){_("param-clean",`Cleaning parameter: ${Z}`);let J=Z.match(/^([^:]+):\s*([^=]+)(?:=\s*.+)?$/);if(J){let[,Q,z]=J,G=z.replace(/\s*&\s*/g," & ").replace(/\s{2,}/g," ").trim(),Y=`${Q.trim()}: ${G}`;return _("param-clean",`Cleaned to: ${Y}`),Y}let X=Z.match(/^([^=]+)=\s*(.+)$/);if(X){let[,Q,z]=X,G=pq(z.trim()),Y=`${Q.trim()}: ${G}`;return _("param-clean",`Inferred type: ${Y}`),Y}return Z.trim()}async function MY(Z){try{let J=await Bun.file(Z).text();return Cq(J)}catch(J){throw console.error("Failed to extract types:",J),new Error("Failed to extract and generate .d.ts file")}}function Cq(Z){let J=mq();Z.split("\n").forEach((Q)=>{if(Q.includes("import "))IY(Q,J.importTracking)}),$M(Z,J),J.dtsLines.forEach((Q)=>{if(Q.trim()&&!Q.startsWith("import"))qM(Q,J.importTracking),MM(Q,J.importTracking)});let X=gq(J.importTracking);return J.dtsLines=[...X.map((Q)=>`${Q};`),"",...J.dtsLines.filter((Q)=>!Q.trim().startsWith("import"))],fq(J)}function _q(Z){_("signature-start",`Processing declaration: ${Z}`);let J=UM(Z);_("signature-clean",`Clean declaration: ${J}`);let X=bq(J),Q=J.slice(J.indexOf(X)+X.length).trim();_("signature-content",`Content after name: ${Q}`);let{generics:z,rest:G}=kq(Q);Q=G.trim(),_("signature-after-generics",`Remaining content: ${Q}`);let{params:Y,rest:$}=yq(Q);Q=$.trim(),_("signature-after-params",`Remaining content: ${Q}`);let{returnType:K}=hq(Q);_("signature-return",`Extracted return type: ${K}`);let U={name:X,generics:z,params:Y,returnType:K};return _("signature-final",`Final signature object: ${JSON.stringify(U,null,2)}`),U}function bq(Z){let J=Z.match(/^(?:export\s+)?(?:async\s+)?function\s*\*?\s*([^(<\s]+)/);if(!J)throw new Error("Invalid function declaration");return J[1]}function kq(Z){let J="";if(Z.startsWith("<")){let X=1,Q=0,z="<",G=!1,Y="";_("generics-input",`Starting generic extraction with: ${Z}`);for(let $=1;$<Z.length;$++){let K=Z[$],U=$<Z.length-1?Z[$+1]:"",H=$>0?Z[$-1]:"";if(_("generics-char",`Processing char: ${K}, next char: ${U}, depth: ${X}, pos: ${$}`),(K==='"'||K==="\'"||K==="`")&&H!=="\\"){if(!G)G=!0,Y=K,_("generics-string",`Entering string with ${Y}`);else if(K===Y)G=!1,_("generics-string","Exiting string")}if(!G){if(K==="<")X++,_("generics-depth",`Increasing depth to ${X} at pos ${$}`);else if(K===">"){if(X--,_("generics-depth",`Decreasing depth to ${X} at pos ${$}`),X===0&&U===">"){z+=">>",Q=$+1,_("generics-complete",`Found double closing bracket at pos ${$}, final buffer: ${z}`);break}else if(X===0){z+=">",Q=$,_("generics-complete",`Found single closing bracket at pos ${$}, final buffer: ${z}`);break}}}if(X>0)z+=K,_("generics-buffer",`Current buffer: ${z}`)}if(z)J=z,Z=Z.slice(Q+1),_("generics-success",`Successfully extracted generics: ${J}`),_("generics-rest",`Remaining text: ${Z}`);else _("generics-fail",`Failed to extract generics from: ${Z}`)}return{generics:J,rest:Z}}function yq(Z){let J="";if(Z.includes("(")){let X=Z.indexOf("("),Q=1,z=X+1,G="";_("params-extraction-start",`Starting params extraction from pos ${z}: ${Z}`);for(;z<Z.length;z++){let Y=Z[z];if(Y==="(")Q++;if(Y===")"){if(Q--,Q===0){_("params-depth-zero",`Found closing parenthesis at pos ${z}`);break}}G+=Y}J=G.trim(),Z=Z.slice(z+1).trim(),_("signature-params",`Extracted params: ${J}`)}return{params:J,rest:Z}}function hq(Z){let J="void";if(Z.startsWith(":")){_("return-start",`Starting return type extraction with: ${Z}`),Z=Z.slice(1).trim();let X=0,Q="",z=0,G=!1,Y="",$=!1;_("return-extraction","Starting character-by-character extraction");while(z<Z.length&&!$){let K=Z[z],U=z>0?Z[z-1]:"";if(_("return-char",`Pos ${z}: Char "${K}", Depth ${X}, InString ${G}, Buffer length ${Q.length}`),(K==='"'||K==="\'"||K==="`")&&U!=="\\"){if(!G)G=!0,Y=K,_("return-string",`Entering string with ${Y}`);else if(K===Y)G=!1,_("return-string","Exiting string")}if(!G){if(K==="{"||K==="<"||K==="(")X++,_("return-depth",`Opening bracket, increasing depth to ${X}`);else if(K==="}"||K===">"||K===")"){if(X--,_("return-depth",`Closing bracket, decreasing depth to ${X}`),X===0&&K==="}"){if(Q+=K,Z.slice(z+1).trim()[0]==="{"){_("return-end",`Found end of return type at pos ${z}, next char is function body`),$=!0;break}}}if(X===0&&K===";"){_("return-end","Found semicolon at depth 0"),$=!0;break}}Q+=K,_("return-buffer",`Updated buffer: ${Q}`),z++}J=Q.trim(),_("return-final",`Final extracted return type: ${J}`)}return{returnType:J}}function wZ(Z){_("extract-function",`Extracting function type from: ${Z}`);let J=Z.trim(),X=0,Q=J.length;if(!J.startsWith("(")){let W=J.match(/^function\s*\w*\s*\((.*?)\)/s);if(W){let[,q]=W,F=NZ(q||""),R=J.match(/\):\s*([^{;]+)(?:[{;]|$)/),I=R?FM(R[1]):"unknown";return`(${F}) => ${I}`}return null}X++;let z=1,G=X,Y=!1,$="";for(;X<Q;X++){let W=J[X],q=X>0?J[X-1]:"";if(Y){if(W===$&&q!=="\\")Y=!1;else if(W==="\\")X++}else if(W==='"'||W==="\'"||W==="`")Y=!0,$=W;else if(W==="(")z++;else if(W===")"){if(z--,z===0)break}}if(z!==0)return _("extract-function","Unbalanced parentheses in function parameters"),null;let K=X,U=J.slice(G,K);X++;while(X<Q&&/\s/.test(J[X]))X++;let H="unknown";if(J[X]===":"){X++;while(X<Q&&/\s/.test(J[X]))X++;let W=X;while(X<Q&&!J.startsWith("=>",X)&&J[X]!=="{")X++;let q=X;H=J.slice(W,q).trim()}while(X<Q&&/\s/.test(J[X]))X++;if(J.startsWith("=>",X))X+=2;else return _("extract-function",'Function expression missing "=>"'),null;let B=NZ(U||"");return _("extract-function",`Extracted function type: (${B}) => ${H}`),`(${B}) => ${H}`}function gq(Z){let J=[],X=new Set;_("import-gen",`Generating optimized imports. ${Z.exportedTypes.size} exported types`);for(let[Q,z]of Z.typeImports){_("import-type-check",`Checking types from ${Q}: ${Array.from(z).join(", ")}`);let G=Array.from(z).filter((Y)=>{let $=Z.exportedTypes.has(Y)||Z.usedTypes.has(Y);return _("import-type-filter",`Type ${Y}: exported=${Z.exportedTypes.has(Y)}, used=${Z.usedTypes.has(Y)}`),$}).map((Y)=>{let $=Z.valueAliases.get(Y);return $?`${Y} as ${$}`:Y}).sort();if(G.length>0){let Y=`import type { ${G.join(", ")} } from '${Q}'`;if(!X.has(Y))J.push(Y),X.add(Y),_("import-add-type",`Added type import: ${Y}`)}}for(let[Q,z]of Z.valueImports){let G=new Map,Y=Array.from(z).filter(($)=>{let K=Array.from(Z.valueAliases.entries()).find(([H,B])=>B===$)?.[0],U=Z.exportedValues.has($)||Z.usedValues.has($)||$===Z.defaultExportValue||K&&(Z.exportedValues.has(K)||K===Z.defaultExportValue);if(U&&K)G.set($,K);return U}).map(($)=>{let K=G.get($);return K?`${$} as ${K}`:$}).sort();if(Y.length>0){let $=`import { ${Y.join(", ")} } from '${Q}'`;if(!X.has($))J.push($),X.add($),_("import-add-value",`Added value import: ${$}`)}}return J.sort()}function vq(Z){let J=Z.trim();if(!J.startsWith("{"))return null;let X=0,Q=!1,z="";for(let G=0;G<J.length;G++){let Y=J[G],$=G>0?J[G-1]:"";if((Y==='"'||Y==="\'"||Y==="`")&&$!=="\\"){if(!Q)Q=!0,z=Y;else if(Y===z)Q=!1;continue}if(!Q){if(Y==="{")X++;else if(Y==="}"){if(X--,X===0)return J.slice(0,G+1)}}}return null}function fq(Z){let J=new Set;Z.dtsLines.filter((G)=>G.startsWith("import")).forEach((G)=>J.add(G.replace(/;+$/,"")));let X=Z.dtsLines.filter((G)=>!G.startsWith("import")).map((G)=>{let Y=G.trim();if(!Y)return"";if(Y.startsWith("export *")||Y.endsWith(";"))return Y;if(Y.startsWith("export type"))return`${Y};`;return Y.replace(/;+$/,";")}),Q=Array.from(Z.defaultExports).map((G)=>G.trim().replace(/;+$/,";"));return`${[...Array.from(J).map((G)=>`${G};`),"",...X.filter(Boolean),"",...Q].map((G)=>G.replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"")).filter((G)=>G.trim()||G==="").join("\n")}`.trim()}function xq(Z){let J=Z.split("\n"),X=0;while(X<J.length){let Q=J[X].trim();if(Q.startsWith("//")||Q.startsWith("/*")||Q.startsWith("*")||Q==="")X++;else break}return J.slice(X).join("\n")}function mq(){return{dtsLines:[],imports:[],usedTypes:new Set,typeSources:new Map,defaultExport:null,exportAllStatements:[],currentDeclaration:"",lastCommentBlock:"",bracketCount:0,isMultiLineDeclaration:!1,moduleImports:new Map,availableTypes:new Map,availableValues:new Map,currentIndentation:"",declarationBuffer:null,importTracking:uq(),defaultExports:new Set,currentScope:"top"}}function uq(){return{typeImports:new Map,valueImports:new Map,usedTypes:new Set,usedValues:new Set,exportedTypes:new Set,exportedValues:new Set,valueAliases:new Map,importSources:new Map,typeExportSources:new Map,defaultExportValue:void 0}}function BY(Z,J,X){let Q=Z.split("\n");if(Q.length===1)return`${J}${Z}${X?"":" |"}`;let z=[],G=!1,Y=0;return Q.forEach((K)=>{let U=K.trim();if(U.startsWith("Array<"))Y=0;if(U==="}"||U.startsWith("> |")||U===">")G=Y===1;if(U&&!U.startsWith("Array<")&&!U.endsWith(">")&&!U.startsWith("{")&&!U.endsWith("}"))Y++}),Q.map((K,U)=>{let H=K.trim();if(!H)return"";let B=J;if(U>0){let R=z.reduce((I,w)=>I+w.depth,0);if(B=J+" ".repeat(R),H.match(/^['"]/))B+=" ";if((H.startsWith("}")||H.startsWith(">")||H.startsWith("> |"))&&z.length>0)B=J+" ".repeat(Math.max(0,R-1))}let W=H.match(/[{<[]/g)||[],q=H.match(/[}\]>]/g)||[];if(W.forEach((R)=>{let I=H.startsWith("Array")&&R==="<";z.push({char:R,indent:B,isArray:I,depth:1,isSingleElement:G})}),q.length>0){for(let R=0;R<q.length;R++)if(z.length>0)z.pop()}let F=!1;if(!X&&U===Q.length-1&&!H.endsWith(" |")&&!H.endsWith(";"))F=!0;if(H==="}"){if([...z].reverse().find((I)=>I.isArray)?.isSingleElement)F=!1}if(H.endsWith(" |"))F=!1;return`${B}${H}${F?" |":""}`}).filter(Boolean).join("\n")}function dq(Z){let J=Z.split("\n").map((Q)=>Q.trim()).join(" ");if(/^['"`].*['"`]$/.test(J))return J;if(!Number.isNaN(Number(J)))return J;if(J==="true"||J==="false")return J;let X=J.match(/\([^)]*\)\s*:\s*([^=>{]+)/);if(X)return X[1].trim();if(J.includes("=>"))return"(...args: any[]) => unknown";return"unknown"}function a6(Z,J,X=!1){let Q=Z.slice(1,-1).trim(),z=Z.trim().endsWith("as const");if(!Q)return z?"readonly unknown[]":"unknown[]";let G=NY(Q);if(z||G.some((U)=>U.includes("as const"))){let U=G.map((H)=>{let B=H.trim().replace(/\s*as\s*const\s*$/,"").trim();return FY(B,J)});if(iq(U))return`readonly [\n${U.map((B,W)=>BY(B," ",W===U.length-1)).join("\n")}\n ]`;return`readonly [${U.join(", ")}]`}let $=G.map((U)=>{let H=U.trim();if(H.startsWith("["))return a6(H,J);else if(H.startsWith("{"))return m0(H,J);else if(H.includes("=>")||H.includes("function")){let B=wZ(H);return B?`(${B})`:"((...args: any[]) => unknown)"}else return sq(H)}).filter(Boolean);if($.some((U)=>U.includes("\n")||U.includes("{")||U.length>40||$.join(" | ").length>60)&&X)return`Array<\n${$.map((H,B)=>BY(H," ",B===$.length-1)).join("\n")}\n >`;return`Array<${$.join(" | ")}>`}function m0(Z,J,X=0){let Q=vq(Z);if(!Q)return"Record<string, unknown>";let z=" ".repeat(X),G=" ".repeat(X+1),Y=z,$=WM(Q,J,X);if(!$.length)return"{}";return`{\n${$.map(({key:U,value:H})=>{return`${G}${U}: ${H}`}).join(";\n")}\n${Y}}`}function FY(Z,J){if(/^['"`].*['"`]$/.test(Z))return`'${Z.replace(/\]\s*as\s*cons.*$/,"").replace(/^['"`]|['"`]$/g,"")}'`;if(Z.startsWith("[")){let Q=Z.slice(1,-1).trim();return`readonly [${NY(Q).map((Y)=>{let $=Y.trim();if($.includes("] as cons")||$.includes("] as const"))$=$.replace(/\]\s*as\s*cons.*$/,"").replace(/\]\s*as\s*const.*$/,"").trim();if($.startsWith("["))return FY($,J);if($.startsWith("{"))return m0($,J).replace(/^\{/,"{ readonly").replace(/;\s+/g,"; readonly ");if(/^['"`].*['"`]$/.test($))return`'${$.replace(/^['"`]|['"`]$/g,"")}'`;if(!Number.isNaN(Number($)))return $;if($==="true"||$==="false")return $;return`'${$.replace(/\]\s*as\s*cons.*$/,"").replace(/\]\s*as\s*const.*$/,"").replace(/^['"`]|['"`]$/g,"").trim()}'`}).join(", ")}]`}return`'${Z.replace(/\]\s*as\s*cons.*$/,"").replace(/\]\s*as\s*const.*$/,"").replace(/^['"`]|['"`]$/g,"").trim()}'`}function cq(Z,J){if(Z.startsWith("{"))return m0(Z,J);if(Z.startsWith("["))return a6(Z,J,!0);return Z}function pq(Z){if(/^['"`].*['"`]$/.test(Z))return"string";if(!Number.isNaN(Number(Z)))return"number";if(Z==="true"||Z==="false")return"boolean";if(Z.startsWith("["))return"unknown[]";if(Z.startsWith("{"))return"object";if(Z==="null")return"null";if(Z==="undefined")return"undefined";return"unknown"}function RY(Z){return Z.trim().startsWith("export default")}function lq(Z){if(nq(Z))return!1;let J=Z.trim();if(/^(?:export\s+)?(?:async\s+)?function\s*\*?\s*[a-zA-Z_$][\w$]*/.test(J))return!0;return J.startsWith("export ")||J.startsWith("interface ")||J.startsWith("type ")||J.startsWith("const ")||J.startsWith("function ")||J.startsWith("async function ")||J.startsWith("declare ")||J.startsWith("declare module")||/^export\s+(?:interface|type|const|function\*?|async\s+function\*?)/.test(J)}function nq(Z){return Z.includes("\\")||Z.includes("[^")||Z.includes("(?:")||Z.includes("(?=")||Z.includes("(?!")||Z.includes("\\s*")||Z.includes("\\w+")||Z.includes("\\d+")||Z.includes("(?<")||Z.includes("(?!")||Z.includes("(?<=")||Z.includes("(?<!")}function fR(Z){return/^\s*\(.*\)\s*=>\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF])$/.test(Z.trim())}function xR(Z){let X=(Array.isArray(Z)?Z.join("\n"):Z).replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"").trim();return/;\s*$/.test(X)||/\}\s*$/.test(X)}function VY(Z,J){let X=Z.trim();return J.currentScope==="function"&&(X.startsWith("const ")||X.startsWith("let ")||X.startsWith("var ")||/^(?:const|let|var)\s+[a-zA-Z_$][\w$]*\s*(?::|=)/.test(X))}function iq(Z){return Z.some((J)=>J.includes("\n")||J.includes("{")||J.length>40||Z.join(" | ").length>60)}function sq(Z){if(Z.includes("=>")||Z.match(/\bfunction\b/))return"((...args: any[]) => unknown)";if(Z.match(/\w+\s*\([^)]*\)/))return"unknown";if(Z.startsWith("new "))return"unknown";if(Z.includes("."))return"unknown";if(/^[a-z_$][\w$]*$/i.test(Z)&&!["unknown","string","number","boolean","null","undefined","any","never","void"].includes(Z)&&!/^['"`]|^\d/.test(Z)&&Z!=="true"&&Z!=="false")return"unknown";return Z}function PZ(Z,J,X){_("block-processing","Starting block processing");let Q=[],z=0,G=0,Y=0,$=!1,K=Z.length;_("block-scan",`Total available lines: ${K}`);while(Y<K){let B=Z[Y],W=B.trim(),q=(B.match(/\{/g)||[]).length,F=(B.match(/\}/g)||[]).length,R=(B.match(/</g)||[]).length,I=(B.match(/>/g)||[]).length;if(_("block-scan-details",`Scanning line ${Y+1}: "${W}" Current depths - Bracket: ${z}, Angle: ${G} Found body: ${$} Changes - Curly: +${q}/-${F}, Angle: +${R}/-${I}`),Q.push(B),z+=q-F,G+=R-I,W.includes("{"))$=!0,_("block-scan",`Found body start at line ${Y+1}`);if(_("block-collection",`Line ${Y+1}: "${W}" Updated depths - Bracket: ${z}, Angle: ${G} Found body: ${$}`),z===0&&(G===0||$)&&W.endsWith("}")&&$){_("block-scan",`Found complete block at line ${Y+1}`);break}Y++}let U=Q.join("\n");_("block-scan",`Collected block:\n${U}`);let H=xq(U).trim();if(_("block-processing",`Full block content:\n${H}`),!H){_("block-processing","Empty declaration block");return}if(VY(H,X)){_("block-processing","Skipping variable declaration inside function");return}if(H.startsWith("interface")||H.startsWith("export interface")){if(_("block-processing","Processing interface declaration using interface block processor"),oq(H,U,X)){_("block-processing","Interface successfully processed");return}}if(H.includes("\n\nexport function")||H.includes("\n\nfunction")){let B=RM(H);if(B.length>1){_("block-processing",`Found ${B.length} function declarations to process`),B.forEach((W)=>{let q=W.split("\n");PZ(q,J,X)});return}}if(rq(H,X))return;if(aq(H,Z,X))return;if(tq(H,U,X))return;if(eq(H,X))return;if(ZM(H,X))return;if(JM(H,U,X))return;if(GM(H,U,X))return;_("processing",`Unhandled declaration type: ${H.split("\n")[0]}`)}function aq(Z,J,X){if(!Z.match(/^(?:export\s+)?(const|let|var)\s+/))return!1;if(VY(Z,X))return _("variable-processing","Skipping variable inside function"),!0;let z=Z.startsWith("export");if(X.currentScope==="top"){let G=J.join("\n");X.dtsLines.push(jY(G,z,X))}else _("block-processing","Skipping variable declared inside a function");return!0}function rq(Z,J){if(_("function-processing",`Processing potential function block: ${Z.slice(0,100)}...`),/^(?:export\s+)?(?:async\s+)?function\s*\*/.test(Z)){_("block-processing","Processing generator function declaration");let U=BM(Z);if(U)return J.dtsLines.push(U),!0}if(!/^(?:export\s+)?(?:async\s+)?function\s+[a-zA-Z_$][\w$]*/.test(Z))return!1;_("block-processing","Processing function declaration");let X=Z.split(/[\n;]/).map((U)=>U.trim()).filter((U)=>U.startsWith("export function")||U.startsWith("function"));if(X.length>1)return X.forEach((U)=>{if(!U.endsWith("{")){let H=OZ(U,J.usedTypes,U.startsWith("export"));if(H)J.dtsLines.push(H)}}),!0;let Q=0,z=0,G=0;for(let U=0;U<Z.length;U++){let H=Z[U];if(H==="(")z++;if(H===")")z--;if(H==="<")G++;if(H===">")G--;if(H==="{"){if(z===0&&G===0){Q=U;break}}}if(Q===0)Q=Z.length;let Y=Z.slice(0,Q).trim();_("signature-extraction",`Extracted signature: ${Y}`);let $=Y.startsWith("export"),K=OZ(Y,J.usedTypes,$);if(K)_("function-processed",`Generated declaration: ${K}`),J.dtsLines.push(K);return!0}function oq(Z,J,X){if(_("interface-processing",`Starting interface processing with declaration: ${Z.slice(0,100)}...`),!Z.startsWith("interface")&&!Z.startsWith("export interface"))return _("interface-processing","Not an interface declaration, skipping"),!1;let Q=J.split("\n"),z=0,G=0,Y=[],$=!0,K=!1;_("interface-processing",`Processing ${Q.length} lines`);for(let W=0;W<Q.length;W++){let q=Q[W],F=q.trim(),R=(q.match(/\{/g)||[]).length,I=(q.match(/\}/g)||[]).length,w=(q.match(/</g)||[]).length,M=(q.match(/>/g)||[]).length;if(z+=R-I,G+=w-M,F.includes("{"))K=!0;if(_("interface-depth",`Line ${W+1}: "${F}" Bracket depth: ${z}, Angle depth: ${G}, Has started body: ${K}`),$){let V=F.startsWith("export")?"export declare":"declare";Y.push(q.replace(/^(\s*)(?:export\s+)?interface/,`\$1${V} interface`)),$=!1}else Y.push(q)}let U=Y.join("\n"),H=U.includes("{")&&U.includes("}");if(z===0&&(G===0||U.includes(">"))&&H)return _("interface-processing",`Successfully processed interface:\n${U}`),X.dtsLines.push(U),!0;return _("interface-processing",`Interface processing incomplete. Bracket depth: ${z}, Angle depth: ${G}, Has started body: ${K}`),!1}function tq(Z,J,X){if(!Z.startsWith("type")&&!Z.startsWith("export type"))return!1;let Q=Z.startsWith("export");return X.dtsLines.push(EY(J,Q)),!0}function eq(Z,J){if(!RY(Z))return!1;let X=Z.replace(/^export\s+default\s+/,"").replace(/;$/,"");J.importTracking.defaultExportValue=X;let Q=Z.endsWith(";")?Z:`${Z};`;return J.defaultExports.add(Q),!0}function ZM(Z,J){if(!Z.startsWith("export *"))return!1;return J.exportAllStatements.push(Z),J.dtsLines.push(Z),!0}function JM(Z,J,X){if(!Z.startsWith("export"))return!1;if(QM(Z,X))return!0;if(YM(Z,X))return!0;if(zM(Z,X))return!0;if(Z.startsWith("export {"))return X.dtsLines.push(J),!0;return _("processing",`Unhandled exported declaration type: ${Z.split("\n")[0]}`),!0}function XM(Z,J){_("export-processing",`Processing export: ${Z}`);let X=Z.match(/export\s*\{([^}]+)\}(?:\s*from\s*['"]([^'"]+)['"])?/);if(!X){_("export-error","Failed to match export pattern");return}let[,Q,z]=X;_("export-found",`Found exports: ${Q}, source: ${z||"local"}`),Q.split(",").forEach((G)=>{let[Y,$]=G.trim().split(/\s+as\s+/).map((K)=>K.trim());if(Y.startsWith("type ")){let K=Y.replace(/^type\s+/,"").trim(),U=$||K;if(J.importTracking.exportedTypes.add(U),z)J.importTracking.typeExportSources.set(U,z);_("export-type-processed",`Added exported type: ${U}`)}else{let K=$||Y;J.importTracking.exportedValues.add(K),_("export-value-processed",`Added exported value: ${K}`)}})}function QM(Z,J){if(!Z.startsWith("export class")&&!Z.startsWith("export abstract class"))return!1;let X=`export declare ${Z.replace(/^export\s+/,"")}`;return J.dtsLines.push(X),!0}function YM(Z,J){if(!Z.startsWith("export enum")&&!Z.startsWith("export const enum"))return!1;let X=`export declare ${Z.replace(/^export\s+/,"")}`;return J.dtsLines.push(X),!0}function zM(Z,J){if(!Z.startsWith("export namespace"))return!1;let X=`export declare ${Z.replace(/^export\s+/,"")}`;return J.dtsLines.push(X),!0}function GM(Z,J,X){if(!Z.startsWith("declare module"))return!1;let Q=AY(J);return X.dtsLines.push(Q),!0}function mR(Z,J,X){if(RY(Z)){let Q=Z.endsWith(";")?Z:`${Z};`;X.defaultExports.add(Q);return}if(Z.startsWith("declare module")){let Q=AY(J);X.dtsLines.push(Q);return}if(Z.startsWith("export const")||Z.startsWith("const")){let Q=Z.trimStart().startsWith("export"),z=jY(J,Q,X);X.dtsLines.push(z);return}if(Z.startsWith("interface")||Z.startsWith("export interface")){let Q=HM(J,Z.startsWith("export"));X.dtsLines.push(Q);return}if(Z.startsWith("type")||Z.startsWith("export type")){let Q=EY(J,Z.startsWith("export"));X.dtsLines.push(Q);return}if(Z.startsWith("function")||Z.startsWith("export function")||Z.startsWith("async function")||Z.startsWith("export async function")){let Q=OZ(J,X.usedTypes,Z.startsWith("export"));X.dtsLines.push(Q);return}if(Z.startsWith("export *")){X.exportAllStatements.push(Z),X.dtsLines.push(J);return}if(Z.startsWith("export {")){X.dtsLines.push(J);return}if(Z.startsWith("export type {")){X.dtsLines.push(J);return}if(Z.startsWith("class")||Z.startsWith("export class")||Z.startsWith("abstract class")||Z.startsWith("export abstract class")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}if(Z.startsWith("enum")||Z.startsWith("export enum")||Z.startsWith("const enum")||Z.startsWith("export const enum")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}if(Z.startsWith("namespace")||Z.startsWith("export namespace")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}if(Z.startsWith("let")||Z.startsWith("export let")||Z.startsWith("var")||Z.startsWith("export var")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}console.warn("Unhandled declaration type:",Z.split("\n")[0])}function $M(Z,J){let X=Z.split("\n"),Q=[],z=[],G=0,Y=0,$=!1;J.currentScope="top",_("source-processing",`Processing source file with ${X.length} lines`);for(let K=0;K<X.length;K++){let U=X[K],H=U.trim();if(_("source-scan",`First pass - Line ${K+1}: ${H}`),U.includes("import "))IY(U,J.importTracking),_("import",`Processed import: ${U}`);if(H.startsWith("export type {")){_("type-export",`Found type export: ${H}`),KM(H,J),J.dtsLines.push(U);continue}if(H.startsWith("export {")){_("mixed-export",`Found mixed export: ${H}`),XM(H,J),J.dtsLines.push(U);continue}}for(let K=0;K<X.length;K++){let U=X[K],H=U.trim();if(H.startsWith("import ")||H.startsWith("export type {")||H.startsWith("export {"))continue;if(H.startsWith("/*")||H.startsWith("//")){z.push(U);continue}let B=(U.match(/\{/g)||[]).length,W=(U.match(/\}/g)||[]).length,q=(U.match(/</g)||[]).length,F=(U.match(/>/g)||[]).length;if(!$&&lq(H)){_("declaration",`Found declaration start: ${H}`),$=!0,Q=[U],G=B-W,Y=q-F;continue}if($){Q.push(U),G+=B-W,Y+=q-F;let R=G===0&&Y===0&&H.endsWith("}"),I=K<X.length-1?X[K+1]?.trim():"";if(!(G>0||Y>0||I&&!I.startsWith("export")&&!I.startsWith("interface"))||R)_("declaration-complete",`Declaration complete at line ${K+1}`),PZ(Q,z,J),Q=[],z=[],$=!1,G=0,Y=0}}if(Q.length>0)PZ(Q,z,J)}function IY(Z,J){_("import-processing",`Processing import line: ${Z}`);let X=Z.match(/import\s+type\s*(?:\{([^}]+)\}|([^;\s]+))\s*from\s*['"]([^'"]+)['"]/);if(X){let[,z,G,Y]=X,$=z||G;if(_("import-type",`Found type imports from ${Y}: ${$}`),!J.typeImports.has(Y))J.typeImports.set(Y,new Set);if($)$.split(",").forEach((K)=>{let[U,H]=K.trim().split(/\s+as\s+/).map((B)=>B.trim());if(J.typeImports.get(Y).add(U),J.typeExportSources.set(U,Y),_("import-type-tracking",`Tracking type ${U} from ${Y}`),H)J.valueAliases.set(H,U),_("import-alias",`Registered type alias: ${U} as ${H}`)});return}let Q=Z.match(/import\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/);if(Q){let[,z,G]=Q;if(_("import-value",`Found value imports from ${G}: ${z}`),!J.valueImports.has(G))J.valueImports.set(G,new Set);z.split(",").forEach((Y)=>{let[$,K]=Y.trim().split(/\s+as\s+/).map((U)=>U.trim());if($.startsWith("type ")){let U=$.replace(/^type\s+/,"").trim();if(!J.typeImports.has(G))J.typeImports.set(G,new Set);J.typeImports.get(G).add(U),J.typeExportSources.set(U,G),_("import-type-in-value",`Found inline type import: ${U} from ${G}`)}else if(J.valueImports.get(G).add($),J.importSources.set($,G),K){if(J.valueAliases.set(K,$),K===J.defaultExportValue)J.usedValues.add($);J.valueImports.get(G).add($),_("import-alias",`Registered value alias: ${$} as ${K}`)}})}}function EY(Z,J=!0){let X=Z.split("\n");if(X[0].trim().startsWith("export type {"))return Z;let z=J?"export declare":"declare";return[X[0].replace(/^(\s*)(?:export\s+)?type(?!\s*\{)/,`\$1${z} type`),...X.slice(1)].join("\n")}function KM(Z,J){_("type-export-processing",`Processing type export: ${Z}`);let X=Z.match(/export\s+type\s*\{([^}]+)\}(?:\s*from\s*['"]([^'"]+)['"])?/);if(!X){_("type-export-error","Failed to match type export pattern");return}let[,Q,z]=X;_("type-export-found",`Found types: ${Q}, source: ${z||"local"}`),Q.split(",").forEach((G)=>{let[Y,$]=G.trim().split(/\s+as\s+/).map((U)=>U.trim()),K=$||Y;if(J.importTracking.exportedTypes.add(K),z)J.importTracking.typeExportSources.set(K,z);_("type-export-processed",`Added exported type: ${K}`)})}function jY(Z,J,X){let Q=Z.includes("let ")?"let":Z.includes("var ")?"var":"const",z=Z.match(/(?:export\s+)?(?:const|let|var)\s+([^:\s]+)\s*:\s*([^=]+)=/);if(z){let[,B,W]=z;return`${J?"export ":""}declare ${Q} ${B}: ${W.trim()};`}let G=Z.match(/(?:export\s+)?(?:const|let|var)\s+([^=\s]+)\s*=\s*([\s\S]+)$/);if(!G)return Z;let[,Y,$]=G,K=$.trim(),U=K.match(/^\(\s*.*?\)\s*:\s*([^=>\s{]).*=>/);if(U){let B=U[1];return`${J?"export ":""}declare ${Q} ${Y}: ${B};`}let H;if(K.includes("as const")){let B=K.replace(/\s*as\s*const\s*$/,"");H=cq(B,X)}else if(K.startsWith("{"))H=m0(K,X);else if(K.startsWith("["))H=a6(K,X);else if(K.includes("=>")||K.includes("function"))H=wZ(K)||"(...args: any[]) => unknown";else H=dq(K);return`${J?"export ":""}declare ${Q} ${Y}: ${H};`}function OZ(Z,J,X=!0){_("process-function-start",`Starting to process: ${Z}`);let Q=Z.split("\n").map(($)=>$.trim()).join(" ").replace(/\s+/g," ").replace(/;$/,"");_("process-function-normalized",`Normalized declaration: ${Q}`);let z=_q(Q);if(_("process-function-signature",`Extracted signature: ${JSON.stringify(z,null,2)}`),!z.params&&Q.includes("("))_("process-function-warning","Found parentheses but no params extracted");if(z.returnType==="void"&&Q.includes("):"))_("process-function-warning","Found return type indicator but extracted void");let Y=[X?"export ":"","declare function ",z.name,z.generics,`(${z.params})`,z.returnType?`: ${z.returnType}`:"",";"].filter(Boolean).join("");return _("process-function-final",`Final declaration: ${Y}`),Y}function UM(Z){let J=Z.split("\n"),X=0;while(X<J.length){let Q=J[X].trim();if(!Q.startsWith("//")&&!Q.startsWith("/*")&&!Q.startsWith("*")&&Q!=="")break;X++}return J.slice(X).join("\n").trim()}function BM(Z){_("generator-function",`Processing generator function: ${Z}`);let J=Z.replace(/^export\s+/,"").replace(/^async\s+/,"").trim(),X=J.match(/function\*\s+([^(<\s]+)/);if(!X)return _("generator-function","Failed to match generator function name"),"";let[,Q]=X,z=J.slice(J.indexOf(Q)+Q.length).trim(),G="";if(z.startsWith("<")){let K=1,U=1;for(;U<z.length&&K>0;U++){if(z[U]==="<")K++;if(z[U]===">")K--}G=z.slice(0,U),z=z.slice(U).trim()}let Y="";if(z.startsWith("(")){let K=1,U=1;for(;U<z.length&&K>0;U++){if(z[U]==="(")K++;if(z[U]===")")K--}Y=z.slice(1,U-1).trim(),z=z.slice(U).trim()}let $="any";if(z.startsWith(":")){z=z.slice(1).trim();let K=z.match(/([^{;]+)/);if(K)$=K[1].trim()}return["export declare function ",Q,G?`${G}`:"",`(${Y})`,": ",$].filter(Boolean).join("").concat(";")}function HM(Z,J=!0){let X=Z.split("\n"),Q=X[0],z=J?"export declare":"declare";return[Q.replace(/^(\s*)(?:export\s+)?interface/,`\$1${z} interface`),...X.slice(1)].join("\n")}function AY(Z){let J=Z.split("\n"),X=" ",Q=0;return J.map((G,Y)=>{let $=G.trim();if(!$)return"";if($.startsWith("}"))Q--;let K=" ".repeat(Math.max(0,Q)),U=Y===0?$:`${K}${$}`;if($.endsWith("{"))Q++;if($.includes("}")&&$.includes("{"))Q=Math.max(0,Q);return U}).join("\n")}function HY(Z){let J=/^(?:async\s+)?(\w+)\s*(<[^>]*>)?\s*\(([^)]*)\)\s*(?::\s*([^ {][^;{]*))?/,X=Z.match(J);if(!X)return{name:Z.split("(")[0].trim().replace(/^async\s+/,""),signature:"() => unknown"};let[,Q,z="",G,Y="void"]=X,$=Y.trim();if(/^async\s+/.test(Z)&&!/^Promise<.*>$/.test($))$=`Promise<${$}>`;let U=NZ(G||""),H=[z?`${z}`:"",`(${U})`,"=>",$].filter(Boolean).join(" ").trim();return{name:Q,signature:H}}function WM(Z,J,X=0){let Q=[],z=Z.slice(1,-1).trim();if(!z)return Q;let G="",Y=0,$=!1,K="",U="",H=!0,B=!1;for(let W=0;W<z.length;W++){let q=z[W],F=W>0?z[W-1]:"";if((q==='"'||q==="\'"||q==="`")&&F!=="\\"){if(!$)$=!0,K=q;else if(q===K)$=!1}if(!$){if(q==="{"||q==="["||q==="(")Y++;else if(q==="}"||q==="]"||q===")")Y--;else if(Y===0){if(q===":"&&!B){B=!0,U=G.trim(),G="",H=!1;continue}else if((q===","||q===";")&&!H){if(U){let R=G.trim();if(U.includes("(")||U.match(/^\s*(?:async\s+)?\w+\s*(?:<[^>]+>)?\s*\(/)){let{name:w,signature:M}=HY(U);Q.push({key:w,value:M})}else{let w=WY(R,X+1,J);Q.push({key:qY(U),value:w})}}G="",U="",H=!0,B=!1;continue}}}G+=q}if(U&&!H&&G.trim()){let W=G.trim();if(U.includes("(")||U.match(/^\s*(?:async\s+)?\w+\s*(?:<[^>]+>)?\s*\(/)){let{name:F,signature:R}=HY(U);Q.push({key:F,value:R})}else{let F=WY(W,X+1,J);Q.push({key:qY(U),value:F})}}return Q}function WY(Z,J,X){let Q=Z.trim();if(Q.startsWith("{")&&Q.includes("(")&&Q.includes(")")&&Q.includes(":"))return m0(Q,X,J);if(Q.startsWith("["))return a6(Q,X,!0);if(Q.startsWith("{"))return m0(Q,X,J);if(Q.includes("=>")||Q.includes("function"))return wZ(Q)||"(...args: any[]) => unknown";if(/^(['"`]).*\1$/.test(Q)||!Number.isNaN(Number(Q))||Q==="true"||Q==="false")return Q;return"unknown"}function qM(Z,J){let X=/(?:extends|implements|:|<)\s*([A-Z][a-zA-Z0-9]*(?:<[^>]+>)?)/g,Q;while((Q=X.exec(Z))!==null){let z=Q[1].split("<")[0];J.usedTypes.add(z)}}function MM(Z,J){let X=Z.match(/export\s*\{([^}]+)\}/);if(X)X[1].split(",").map((G)=>G.trim()).forEach((G)=>{let[Y]=G.split(/\s+as\s+/);J.exportedValues.add(Y.trim())});let Q=[/export\s+declare\s+\{\s*([^}\s]+)(?:\s*,\s*[^}\s]+)*\s*\}/g,/export\s+declare\s+(?:const|function|class)\s+([a-zA-Z_$][\w$]*)/g,/export\s+\{\s*([^}\s]+)(?:\s*,\s*[^}\s]+)*\s*\}/g];for(let z of Q){let G;while((G=z.exec(Z))!==null)G[1].split(",").map(($)=>$.trim()).forEach(($)=>{if(!["type","interface","declare","extends","implements","function","const","let","var"].includes($))J.usedValues.add($)})}}function _(Z,J){if(x0.verbose)console.debug(`[dtsx:${Z}] ${J}`)}function FM(Z){return Z.replace(/\s+/g," ").replace(/\s*([<>])\s*/g,"$1").replace(/\s*,\s*/g,", ").trim()}function qY(Z){let J=Z.replace(/^['"`]|['"`]$/g,"");if(!/^[a-z_$][\w$]*$/i.test(J))return`'${J}'`;return J}function NY(Z){let J=[],X="",Q=0,z=!1,G="";for(let $=0;$<Z.length;$++){let K=Z[$],U=$>0?Z[$-1]:"";if((K==='"'||K==="\'"||K==="`")&&U!=="\\"){if(!z)z=!0,G=K;else if(K===G)z=!1}if(!z){if(K==="["||K==="{"||K==="(")Q++;else if(K==="]"||K==="}"||K===")")Q--;else if(K===","&&Q===0){let H=X.trim();if(H)J.push(H);X="";continue}}X+=K}let Y=X.trim();if(Y)J.push(Y);return J}function RM(Z){let J=[],X=Z.split("\n"),Q=[];for(let z=0;z<X.length;z++){let G=X[z].trim();if((G.startsWith("export function")||G.startsWith("function"))&&Q.length>0)J.push(Q.join("\n")),Q=[];Q.push(X[z])}if(Q.length>0)J.push(Q.join("\n"));return J}import{readdir as VM}from"fs/promises";import{extname as IM,join as PY}from"path";import EM from"process";async function OY(Z,J){await Bun.write(Z,J)}async function TZ(Z){let J=Z??x0.root,X=await VM(J,{withFileTypes:!0}),Q=await Promise.all(X.map((z)=>{let G=PY(J,z.name);return z.isDirectory()?TZ(G):G}));return Array.prototype.concat(...Q).filter((z)=>IM(z)===".ts")}async function wY(Z){try{let J=Z?.cwd||EM.cwd();return(await import(Z?.tsconfigPath||PY(J,"tsconfig.json"))).compilerOptions?.isolatedDeclarations===!0}catch(J){return console.log("Error reading tsconfig.json:",J),!1}}async function LM(Z){try{if(!await wY(Z)){console.error("Error: isolatedModules must be set to true in your tsconfig.json. Ensure `tsc --noEmit` does not output any errors.");return}if(Z?.clean)await AM(Z.outdir,{recursive:!0,force:!0});let X=Z?.cwd||TM.cwd(),Q;if(Z?.entrypoints)Q=await $Y(Z.entrypoints,{cwd:Z.root??`${X}/src`,absolute:!0});else Q=await TZ(Z?.root??`${X}/src`);for(let z of Q){let G=await MY(z);if(G){let Y=wM(Z?.root??"./src",z),$=OM(Y),K=PM(Z?.outdir??"./dist",`${$.name}.d.ts`);await jM(NM(K),{recursive:!0}),await OY(K,G)}else console.warn(`No declarations extracted for ${z}`)}}catch(J){console.error("Error generating declarations:",J)}}async function TY(Z){await LM({...x0,...Z})}var U6=new s8("dtsx"),S1={cwd:LY.cwd(),root:"./src",entrypoints:["**/*.ts"],outdir:"./dist",keepComments:!0,clean:!1,tsconfigPath:"tsconfig.json",verbose:!1};U6.command("generate","Generate TypeScript declaration files").option("--cwd <path>","Current working directory",{default:S1.cwd}).option("--root <path>","Root directory of the project",{default:S1.root}).option("--entrypoints <files>","Entry point files (comma-separated)",{default:S1.entrypoints?.join(","),type:[String]}).option("--outdir <path>","Output directory for generated .d.ts files",{default:S1.outdir}).option("--keep-comments","Keep comments in generated .d.ts files",{default:S1.keepComments}).option("--clean","Clean output directory before generation",{default:S1.clean}).option("--tsconfig <path>","Path to tsconfig.json",{default:S1.tsconfigPath}).option("--verbose","Enable verbose logging",{default:S1.verbose}).example("dtsx generate").example("dtsx generate --entrypoints src/index.ts,src/utils.ts --outdir dist/types").action(async(Z)=>{try{let J={entrypoints:Z.entrypoints?Z.entrypoints:S1.entrypoints,cwd:r6(Z.cwd||S1.cwd),root:r6(Z.root||S1.root),outdir:r6(Z.outdir||S1.outdir),tsconfigPath:r6(Z.tsconfigPath||S1.tsconfigPath),keepComments:Z.keepComments||S1.keepComments,clean:Z.clean||S1.clean,verbose:Z.verbose||S1.verbose};await TY(J)}catch(J){console.error("Error generating .d.ts files:",J),LY.exit(1)}});U6.command("version","Show the version of dtsx").action(()=>{console.log(zZ)});U6.version(zZ);U6.help();U6.parse();
176
+ const NOT_AN_ARRAY = '${Z.array}';`}var ZK=Object.getPrototypeOf(async function(){}).constructor,JK=class{variablesCounter=0;#Z;#J;#X=new C$;constructor(Z,J){this.#Z=Z,this.#J=J||{convertEmptyStringsToNull:!1}}#Q(){this.#X.writeStatement(e$({required:"value is required",object:"value is not a valid object",array:"value is not a valid array",...this.#J.messages})),this.#X.writeStatement(t$(this.#J)),this.#X.writeStatement("let out;")}#Y(){this.#X.writeStatement(a$()),this.#X.writeStatement("return out;")}#G(){this.compileNode(this.#Z.schema,this.#X,{type:"root",variableName:"root",outputExpression:"out",fieldPathExpression:"out",wildCardPath:""})}#z(){return new ZK("root","meta","refs","messagesProvider","errorReporter",this.#X.toString())}createFieldFor(Z,J){switch(J.type){case"array":return i$(J);case"root":return p$(J);case"object":return r$(Z,this.variablesCounter,J);case"tuple":return s$(Z,J);case"record":return o$(J)}}compileNode(Z,J,X,Q){switch(Z.type){case"literal":return new n$(Z,J,this,X,Q).compile();case"array":return new g$(Z,J,this,X,Q).compile();case"record":return new m$(Z,J,this,X,Q).compile();case"object":return new c$(Z,J,this,X,Q).compile();case"tuple":return new y$(Z,J,this,X,Q).compile();case"union":return new f$(Z,J,this,X,Q).compile()}}compile(){this.#Q(),this.#G(),this.#Y();let Z=this.#z();return this.variablesCounter=0,this.#X.flush(),Z}};function XK(){let Z=0,J={};return{toJSON(){return J},track(X){Z++;let Q=`ref://${Z}`;return J[Q]=X,Q},trackValidation(X){return this.track(X)},trackParser(X){return this.track(X)},trackTransformer(X){return this.track(X)},trackConditional(X){return this.track(X)}}}function m(Z,J){let X={validator:Z,isAsync:J?.isAsync||Z.constructor.name==="AsyncFunction",implicit:J?.implicit??!1};return function(...Q){return{rule:X,options:Q[0]}}}var QK={};o7(QK,{COTYPE:()=>GK,IS_OF_TYPE:()=>g1,ITYPE:()=>YK,OTYPE:()=>zK,PARSE:()=>e,UNIQUE_NAME:()=>C1,VALIDATION:()=>I0});var C1=Symbol.for("schema_name"),g1=Symbol.for("is_of_type"),e=Symbol.for("parse"),YK=Symbol.for("opaque_input_type"),zK=Symbol.for("opaque_type"),GK=Symbol.for("camelcase_opaque_type"),I0=Symbol.for("to_validation"),P0=m((Z,J,X)=>{let Q=J(X);if(!X.isDefined&&Q)X.report(x.required,"required",X)},{implicit:!0}),m6=class extends t8{optional(Z){return new KK(this,Z)}nullable(){return new $K(this)}transform(Z){return new UK(Z,this)}},$K=class Z extends m6{#Z;constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);return z.allowNull=!0,z}},KK=class Z extends m6{#Z;validations;constructor(J,X){super();this.#Z=J,this.validations=X||[]}cloneValidations(){return this.validations.map((J)=>{return{options:J.options,rule:J.rule}})}compileValidations(J){return this.validations.map((X)=>{return{ruleFnId:J.track({validator:X.rule.validator,options:X.options}),implicit:X.rule.implicit,isAsync:X.rule.isAsync}})}use(J){return this.validations.push(I0 in J?J[I0]():J),this}requiredWhen(J,X,Q){if(typeof J==="function")return this.use(P0(J));let z;switch(X){case"=":z=(G)=>G===Q;break;case"!=":z=(G)=>G!==Q;break;case"in":z=(G)=>Q.includes(G);break;case"notIn":z=(G)=>!Q.includes(G);break;case">":z=(G)=>G>Q;break;case"<":z=(G)=>G<Q;break;case">=":z=(G)=>G>=Q;break;case"<=":z=(G)=>G<=Q}return this.use(P0((G)=>{let Y=s.getNestedValue(J,G);return z(Y)}))}requiredIfExists(J){let X=Array.isArray(J)?J:[J];return this.use(P0((Q)=>{return X.every((z)=>s.exists(s.getNestedValue(z,Q)))}))}requiredIfAnyExists(J){return this.use(P0((X)=>{return J.some((Q)=>s.exists(s.getNestedValue(Q,X)))}))}requiredIfMissing(J){let X=Array.isArray(J)?J:[J];return this.use(P0((Q)=>{return X.every((z)=>s.isMissing(s.getNestedValue(z,Q)))}))}requiredIfAnyMissing(J){return this.use(P0((X)=>{return J.some((Q)=>s.isMissing(s.getNestedValue(Q,X)))}))}clone(){return new Z(this.#Z.clone(),this.cloneValidations())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);return z.isOptional=!0,z.validations=z.validations.concat(this.compileValidations(X)),z}},UK=class Z extends m6{#Z;#J;constructor(J,X){super();this.#J=J,this.#Z=X}clone(){return new Z(this.#J,this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);return z.transformFnId=X.trackTransformer(this.#J),z}},X0=class extends m6{options;validations;constructor(Z,J){super();this.options={bail:!0,allowNull:!1,isOptional:!1,...Z},this.validations=J||[]}cloneValidations(){return this.validations.map((Z)=>{return{options:Z.options,rule:Z.rule}})}cloneOptions(){return{...this.options}}compileValidations(Z){return this.validations.map((J)=>{return{ruleFnId:Z.track({validator:J.rule.validator,options:J.options}),implicit:J.rule.implicit,isAsync:J.rule.isAsync}})}parse(Z){return this.options.parse=Z,this}use(Z){return this.validations.push(I0 in Z?Z[I0]():Z),this}bail(Z){return this.options.bail=Z,this}[e](Z,J,X){return{type:"literal",fieldName:Z,propertyName:X.toCamelCase?W0(Z):Z,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,parseFnId:this.options.parse?J.trackParser(this.options.parse):void 0,validations:this.compileValidations(J)}}},BK=class Z extends X0{constructor(J,X){super(J,X)}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},S6=m((Z,J,X)=>{let Q=typeof J.choices==="function"?J.choices(X):J.choices;if(!Q.includes(Z))X.report(x.enum,"enum",X,{choices:Q})}),$X=class Z extends X0{static rules={enum:S6};#Z;getChoices(){return this.#Z}constructor(J,X,Q){super(X,Q||[S6({choices:J})]);this.#Z=J}clone(){return new Z(this.#Z,this.cloneOptions(),this.cloneValidations())}},j0=["YYYY-MM-DD","YYYY-MM-DD HH:mm:ss"];R1.default.extend(A$.default);R1.default.extend(E$.default);R1.default.extend(j$.default);var HK=m((Z,J,X)=>{if(typeof Z!=="string"&&typeof Z!=="number"){X.report(x.date,"date",X);return}let Q=!1,z=J.formats||j0;if(Array.isArray(z))z=[...z],Q=z.includes("x");else if(typeof z!=="string")z={...z},Q=z.format==="x";let G=Q?s.asNumber(Z):Z,Y=Q&&!Number.isNaN(G)?R1.default(G):R1.default(Z,z,!0);if(!Y.isValid()){X.report(x.date,"date",X);return}X.meta.$value=Y,X.meta.$formats=z,X.mutate(Y.toDate(),X)}),$J=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the equals rule`);if(!G.isSame($,Q))X.report(x["date.equals"],"date.equals",X,{expectedValue:Y,compare:Q})}),KJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="tomorrow"?R1.default().add(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the after rule`);if(!G.isAfter($,Q))X.report(x["date.after"],"date.after",X,{expectedValue:Y,compare:Q})}),UJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="tomorrow"?R1.default().add(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the afterOrEqual rule`);if(!G.isSameOrAfter($,Q))X.report(x["date.afterOrEqual"],"date.afterOrEqual",X,{expectedValue:Y,compare:Q})}),BJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="yesterday"?R1.default().subtract(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the before rule`);if(!G.isBefore($,Q))X.report(x["date.before"],"date.before",X,{expectedValue:Y,compare:Q})}),HJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=J.format||j0,G=X.meta.$value,Y=typeof J.expectedValue==="function"?J.expectedValue(X):J.expectedValue,$=Y==="today"?R1.default():Y==="yesterday"?R1.default().subtract(1,"day"):R1.default(Y,z,!0);if(!$.isValid())throw new Error(`Invalid datetime value "${Y}" value provided to the beforeOrEqual rule`);if(!G.isSameOrBefore($,Q))X.report(x["date.beforeOrEqual"],"date.beforeOrEqual",X,{expectedValue:Y,compare:Q})}),WJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isSame($,Q))X.report(x["date.sameAs"],"date.sameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),qJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(z.isSame($,Q))X.report(x["date.notSameAs"],"date.notSameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),MJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isAfter($,Q))X.report(x["date.afterField"],"date.afterField",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),FJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isSameOrAfter($,Q))X.report(x["date.afterOrSameAs"],"date.afterOrSameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),RJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isBefore($,Q))X.report(x["date.beforeField"],"date.beforeField",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),VJ=m((Z,J,X)=>{if(!X.meta.$value)return;let Q=J.compare||"day",z=X.meta.$value,G=J.format||X.meta.$formats,Y=s.getNestedValue(J.otherField,X),$=R1.default(Y,G,!0);if(!$.isValid())return;if(!z.isSameOrBefore($,Q))X.report(x["date.beforeOrSameAs"],"date.beforeOrSameAs",X,{otherField:J.otherField,expectedValue:Y,compare:Q})}),IJ=m((Z,J,X)=>{if(!X.meta.$value)return;let z=X.meta.$value.day();if(z!==0&&z!==6)X.report(x["date.weekend"],"date.weekend",X)}),EJ=m((Z,J,X)=>{if(!X.meta.$value)return;let z=X.meta.$value.day();if(z===0||z===6)X.report(x["date.weekday"],"date.weekday",X)}),WK=class Z extends X0{static rules={equals:$J,after:KJ,afterOrEqual:UJ,before:BJ,beforeOrEqual:HJ,sameAs:WJ,notSameAs:qJ,afterField:MJ,afterOrSameAs:FJ,beforeField:RJ,beforeOrSameAs:VJ,weekend:IJ,weekday:EJ};[C1]="vine.date";[g1]=(J)=>{if(typeof J!=="string")return!1;return I$.default(J,this.options.formats||j0,!0).isValid()};constructor(J,X){super(J,X||[HK(J||{})])}equals(J,X){return this.use($J({expectedValue:J,...X}))}after(J,X){return this.use(KJ({expectedValue:J,...X}))}afterOrEqual(J,X){return this.use(UJ({expectedValue:J,...X}))}before(J,X){return this.use(BJ({expectedValue:J,...X}))}beforeOrEqual(J,X){return this.use(HJ({expectedValue:J,...X}))}sameAs(J,X){return this.use(WJ({otherField:J,...X}))}notSameAs(J,X){return this.use(qJ({otherField:J,...X}))}afterField(J,X){return this.use(MJ({otherField:J,...X}))}afterOrSameAs(J,X){return this.use(FJ({otherField:J,...X}))}beforeField(J,X){return this.use(RJ({otherField:J,...X}))}beforeOrSameAs(J,X){return this.use(VJ({otherField:J,...X}))}weekend(){return this.use(IJ())}weekday(){return this.use(EJ())}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},qK=class Z{#Z;#J=(J,X)=>{X.report(x.union,"union",X)};constructor(J){this.#Z=J}otherwise(J){return this.#J=J,this}clone(){let J=new Z(this.#Z);return J.otherwise(this.#J),J}[e](J,X,Q){return{type:"union",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,elseConditionalFnRefId:X.trackConditional(this.#J),conditions:this.#Z.map((z)=>z[e](J,X,Q))}}},KX=class{#Z;#J;constructor(Z,J){this.#Z=J,this.#J=Z}[e](Z,J,X){return{conditionalFnRefId:J.trackConditional(this.#J),schema:this.#Z[e](Z,J,X)}}};function ZZ(Z){return new qK(Z)}ZZ.if=function Z(J,X){return new KX(J,X)};ZZ.else=function Z(J){return new KX(()=>!0,J)};var u6=class extends t8{optional(){return new FK(this)}nullable(){return new MK(this)}},MK=class Z extends u6{#Z;constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);if(z.type!=="union")z.allowNull=!0;return z}},FK=class Z extends u6{#Z;constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){let z=this.#Z[e](J,X,Q);if(z.type!=="union")z.isOptional=!0;return z}},d6=class extends u6{options;validations;constructor(Z,J){super();this.options=Z||{bail:!0,allowNull:!1,isOptional:!1},this.validations=J||[]}cloneValidations(){return this.validations.map((Z)=>{return{options:Z.options,rule:Z.rule}})}cloneOptions(){return{...this.options}}compileValidations(Z){return this.validations.map((J)=>{return{ruleFnId:Z.track({validator:J.rule.validator,options:J.options}),implicit:J.rule.implicit,isAsync:J.rule.isAsync}})}parse(Z){return this.options.parse=Z,this}use(Z){return this.validations.push(I0 in Z?Z[I0]():Z),this}bail(Z){return this.options.bail=Z,this}},RK=class Z extends d6{#Z;#J=!1;[C1]="vine.array";[g1]=(J)=>{return Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}allowUnknownProperties(){return this.#J=!0,this}clone(){let J=new Z(this.#Z.map((X)=>X.clone()),this.cloneOptions(),this.cloneValidations());if(this.#J)J.allowUnknownProperties();return J}[e](J,X,Q){return{type:"tuple",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,allowUnknownProperties:this.#J,parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,validations:this.compileValidations(X),properties:this.#Z.map((z,G)=>z[e](String(G),X,Q))}}},jJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length<J.min)X.report(x["array.minLength"],"array.minLength",X,J)}),AJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length>J.max)X.report(x["array.maxLength"],"array.maxLength",X,J)}),NJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length!==J.size)X.report(x["array.fixedLength"],"array.fixedLength",X,J)}),PJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length<=0)X.report(x.notEmpty,"notEmpty",X)}),OJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isDistinct(Z,J.fields))X.report(x.distinct,"distinct",X,J)}),wJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.filter((Q)=>s.exists(Q)&&Q!==""),X)}),VK=class Z extends d6{static rules={compact:wJ,notEmpty:PJ,distinct:OJ,minLength:jJ,maxLength:AJ,fixedLength:NJ};#Z;[C1]="vine.array";[g1]=(J)=>{return Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}minLength(J){return this.use(jJ({min:J}))}maxLength(J){return this.use(AJ({max:J}))}fixedLength(J){return this.use(NJ({size:J}))}notEmpty(){return this.use(PJ())}distinct(J){return this.use(OJ({fields:J}))}compact(){return this.use(wJ())}clone(){return new Z(this.#Z.clone(),this.cloneOptions(),this.cloneValidations())}[e](J,X,Q){return{type:"array",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,each:this.#Z[e]("*",X,Q),parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,validations:this.compileValidations(X)}}},IK=class Z extends u6{#Z;[C1]="types.object";[g1]=(J)=>{return J!==null&&typeof J==="object"&&!Array.isArray(J)};constructor(J){super();this.#Z=J}clone(){return new Z(this.#Z.clone())}[e](J,X,Q){return Q.toCamelCase=!0,this.#Z[e](J,X,Q)}},EK=class Z extends d6{#Z;#J=[];#X=!1;[C1]="vine.object";[g1]=(J)=>{return J!==null&&typeof J==="object"&&!Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}getProperties(){return Object.keys(this.#Z).reduce((J,X)=>{return J[X]=this.#Z[X].clone(),J},{})}allowUnknownProperties(){return this.#X=!0,this}merge(J){return this.#J.push(J),this}clone(){let J=new Z(this.getProperties(),this.cloneOptions(),this.cloneValidations());if(this.#J.forEach((X)=>J.merge(X)),this.#X)J.allowUnknownProperties();return J}toCamelCase(){return new IK(this)}[e](J,X,Q){return{type:"object",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,allowUnknownProperties:this.#X,validations:this.compileValidations(X),properties:Object.keys(this.#Z).map((z)=>{return this.#Z[z][e](z,X,Q)}),groups:this.#J.map((z)=>{return z[e](X,Q)})}}},TJ=m((Z,J,X)=>{if(!X.isValid)return;if(Object.keys(Z).length<J.min)X.report(x["record.minLength"],"record.minLength",X,J)}),LJ=m((Z,J,X)=>{if(!X.isValid)return;if(Object.keys(Z).length>J.max)X.report(x["record.maxLength"],"record.maxLength",X,J)}),SJ=m((Z,J,X)=>{if(!X.isValid)return;if(Object.keys(Z).length!==J.size)X.report(x["record.fixedLength"],"record.fixedLength",X,J)}),DJ=m((Z,J,X)=>{if(!X.isValid)return;J(Object.keys(Z),X)}),jK=class Z extends d6{static rules={maxLength:LJ,minLength:TJ,fixedLength:SJ,validateKeys:DJ};#Z;[C1]="vine.object";[g1]=(J)=>{return J!==null&&typeof J==="object"&&!Array.isArray(J)};constructor(J,X,Q){super(X,Q);this.#Z=J}minLength(J){return this.use(TJ({min:J}))}maxLength(J){return this.use(LJ({max:J}))}fixedLength(J){return this.use(SJ({size:J}))}validateKeys(...J){return this.use(DJ(...J))}clone(){return new Z(this.#Z.clone(),this.cloneOptions(),this.cloneValidations())}[e](J,X,Q){return{type:"record",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,bail:this.options.bail,allowNull:this.options.allowNull,isOptional:this.options.isOptional,each:this.#Z[e]("*",X,Q),parseFnId:this.options.parse?X.trackParser(this.options.parse):void 0,validations:this.compileValidations(X)}}},CJ=m((Z,J,X)=>{if(typeof Z!=="string")X.report(x.string,"string",X)}),_J=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isEmail(Z,J))X.report(x.email,"email",X)}),bJ=m((Z,J,X)=>{if(!X.isValid)return;let Q=J&&typeof J==="function"?J(X):J,z=Q?.locale||"any";if(!s.isMobilePhone(Z,z,Q))X.report(x.mobile,"mobile",X)}),kJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isIP(Z,J?.version))X.report(x.ipAddress,"ipAddress",X)}),yJ=m((Z,J,X)=>{if(!X.isValid)return;if(!J.test(Z))X.report(x.regex,"regex",X)}),hJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isHexColor(Z))X.report(x.hexCode,"hexCode",X)}),gJ=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isURL(Z,J))X.report(x.url,"url",X)}),vJ=m(async(Z,J,X)=>{if(!X.isValid)return;if(!await s.isActiveURL(Z))X.report(x.activeUrl,"activeUrl",X)}),fJ=m((Z,J,X)=>{if(!X.isValid)return;let Q="a-zA-Z";if(J){if(J.allowSpaces)Q+="\\s";if(J.allowDashes)Q+="-";if(J.allowUnderscores)Q+="_"}if(!new RegExp(`^[${Q}]+$`).test(Z))X.report(x.alpha,"alpha",X)}),xJ=m((Z,J,X)=>{if(!X.isValid)return;let Q="a-zA-Z0-9";if(J){if(J.allowSpaces)Q+="\\s";if(J.allowDashes)Q+="-";if(J.allowUnderscores)Q+="_"}if(!new RegExp(`^[${Q}]+$`).test(Z))X.report(x.alphaNumeric,"alphaNumeric",X)}),mJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length<J.min)X.report(x.minLength,"minLength",X,J)}),uJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length>J.max)X.report(x.maxLength,"maxLength",X,J)}),dJ=m((Z,J,X)=>{if(!X.isValid)return;if(Z.length!==J.size)X.report(x.fixedLength,"fixedLength",X,J)}),cJ=m((Z,J,X)=>{if(!X.isValid)return;if(!Z.endsWith(J.substring))X.report(x.endsWith,"endsWith",X,J)}),pJ=m((Z,J,X)=>{if(!X.isValid)return;if(!Z.startsWith(J.substring))X.report(x.startsWith,"startsWith",X,J)}),lJ=m((Z,J,X)=>{if(!X.isValid)return;if(s.getNestedValue(J.otherField,X)!==Z){X.report(x.sameAs,"sameAs",X,J);return}}),nJ=m((Z,J,X)=>{if(!X.isValid)return;if(s.getNestedValue(J.otherField,X)===Z){X.report(x.notSameAs,"notSameAs",X,J);return}}),iJ=m((Z,J,X)=>{if(!X.isValid)return;let Q=J?.confirmationField||`${X.name}_confirmation`;if(X.parent[Q]!==Z){X.report(x.confirmed,"confirmed",X,{otherField:Q});return}}),sJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.trim(),X)}),aJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(D$.default.default(Z,J),X)}),rJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.toLocaleUpperCase(J),X)}),oJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(Z.toLocaleLowerCase(J),X)}),tJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(W0(Z),X)}),eJ=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(S$.default.default(Z),X)}),Z9=m((Z,J,X)=>{if(!X.isValid)return;X.mutate(L$(Z,J),X)}),J9=m((Z,J,X)=>{if(!X.isValid)return;if(!(typeof J.choices==="function"?J.choices(X):J.choices).includes(Z)){X.report(x.in,"in",X,J);return}}),X9=m((Z,J,X)=>{if(!X.isValid)return;if((typeof J.list==="function"?J.list(X):J.list).includes(Z)){X.report(x.notIn,"notIn",X,J);return}}),Q9=m((Z,J,X)=>{if(!X.isValid)return;let Q=J?typeof J==="function"?J(X)?.provider||[]:J.provider:[];if(!Q.length){if(!s.isCreditCard(Z))X.report(x.creditCard,"creditCard",X,{providersList:"credit"})}else if(!Q.find((G)=>s.isCreditCard(Z,{provider:G})))X.report(x.creditCard,"creditCard",X,{providers:Q,providersList:Q.join("/")})}),Y9=m((Z,J,X)=>{if(!X.isValid)return;let Q=typeof J==="function"?J(X).countryCode:J.countryCode;if(!Q.find((G)=>s.isPassportNumber(Z,G)))X.report(x.passport,"passport",X,{countryCodes:Q})}),z9=m((Z,J,X)=>{if(!X.isValid)return;let Q=J?typeof J==="function"?J(X)?.countryCode||[]:J.countryCode:[];if(!Q.length){if(!s.isPostalCode(Z,"any"))X.report(x.postalCode,"postalCode",X)}else if(!Q.find((G)=>s.isPostalCode(Z,G)))X.report(x.postalCode,"postalCode",X,{countryCodes:Q})}),G9=m((Z,J,X)=>{if(!X.isValid)return;if(!J||!J.version){if(!s.isUUID(Z))X.report(x.uuid,"uuid",X)}else if(!J.version.find((z)=>s.isUUID(Z,z)))X.report(x.uuid,"uuid",X,J)}),$9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isAscii(Z))X.report(x.ascii,"ascii",X)}),K9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isIBAN(Z))X.report(x.iban,"iban",X)}),U9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isJWT(Z))X.report(x.jwt,"jwt",X)}),B9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isLatLong(Z))X.report(x.coordinates,"coordinates",X)}),AK=class Z extends X0{static rules={in:J9,jwt:U9,url:gJ,iban:K9,uuid:G9,trim:sJ,email:_J,alpha:fJ,ascii:$9,notIn:X9,regex:yJ,escape:eJ,sameAs:lJ,mobile:bJ,string:CJ,hexCode:hJ,passport:Y9,endsWith:cJ,confirmed:iJ,activeUrl:vJ,minLength:mJ,notSameAs:nJ,maxLength:uJ,ipAddress:kJ,creditCard:Q9,postalCode:z9,startsWith:pJ,toUpperCase:rJ,toLowerCase:oJ,toCamelCase:tJ,fixedLength:dJ,coordinates:B9,normalizeUrl:Z9,alphaNumeric:xJ,normalizeEmail:aJ};[C1]="vine.string";[g1]=(J)=>{return typeof J==="string"};constructor(J,X){super(J,X||[CJ()])}url(...J){return this.use(gJ(...J))}activeUrl(){return this.use(vJ())}email(...J){return this.use(_J(...J))}mobile(...J){return this.use(bJ(...J))}ipAddress(J){return this.use(kJ(J?{version:J}:void 0))}hexCode(){return this.use(hJ())}regex(J){return this.use(yJ(J))}alpha(J){return this.use(fJ(J))}alphaNumeric(J){return this.use(xJ(J))}minLength(J){return this.use(mJ({min:J}))}maxLength(J){return this.use(uJ({max:J}))}fixedLength(J){return this.use(dJ({size:J}))}confirmed(J){return this.use(iJ(J))}trim(){return this.use(sJ())}normalizeEmail(J){return this.use(aJ(J))}toUpperCase(){return this.use(rJ())}toLowerCase(){return this.use(oJ())}toCamelCase(){return this.use(tJ())}escape(){return this.use(eJ())}normalizeUrl(...J){return this.use(Z9(...J))}startsWith(J){return this.use(pJ({substring:J}))}endsWith(J){return this.use(cJ({substring:J}))}sameAs(J){return this.use(lJ({otherField:J}))}notSameAs(J){return this.use(nJ({otherField:J}))}in(J){return this.use(J9({choices:J}))}notIn(J){return this.use(X9({list:J}))}creditCard(...J){return this.use(Q9(...J))}passport(...J){return this.use(Y9(...J))}postalCode(...J){return this.use(z9(...J))}uuid(...J){return this.use(G9(...J))}ascii(){return this.use($9())}iban(){return this.use(K9())}jwt(){return this.use(U9())}coordinates(){return this.use(B9())}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},H9=m((Z,J,X)=>{let Q=J.strict?Z:s.asNumber(Z);if(typeof Q!=="number"||Number.isNaN(Q)||Q===Number.POSITIVE_INFINITY||Q===Number.NEGATIVE_INFINITY){X.report(x.number,"number",X);return}X.mutate(Q,X)}),W9=m((Z,J,X)=>{if(!X.isValid)return;if(Z<J.min)X.report(x.min,"min",X,J)}),q9=m((Z,J,X)=>{if(!X.isValid)return;if(Z>J.max)X.report(x.max,"max",X,J)}),M9=m((Z,J,X)=>{if(!X.isValid)return;if(Z<J.min||Z>J.max)X.report(x.range,"range",X,J)}),F9=m((Z,J,X)=>{if(!X.isValid)return;if(Z<0)X.report(x.positive,"positive",X)}),R9=m((Z,J,X)=>{if(!X.isValid)return;if(Z>=0)X.report(x.negative,"negative",X)}),V9=m((Z,J,X)=>{if(!X.isValid)return;if(!s.isDecimal(String(Z),{force_decimal:J.range[0]!==0,decimal_digits:J.range.join(",")}))X.report(x.decimal,"decimal",X,{digits:J.range.join("-")})}),I9=m((Z,J,X)=>{if(!X.isValid)return;if(!Number.isInteger(Z))X.report(x.withoutDecimals,"withoutDecimals",X)}),E9=m((Z,J,X)=>{if(!X.isValid)return;if(!J.values.includes(Z))X.report(x["number.in"],"in",X,J)}),UX=class Z extends X0{static rules={in:E9,max:q9,min:W9,range:M9,number:H9,decimal:V9,negative:R9,positive:F9,withoutDecimals:I9};[C1]="vine.number";[g1]=(J)=>{let X=s.asNumber(J);return!Number.isNaN(X)};constructor(J,X){super(J,X||[H9(J||{})])}min(J){return this.use(W9({min:J}))}max(J){return this.use(q9({max:J}))}range(J){return this.use(M9({min:J[0],max:J[1]}))}positive(){return this.use(F9())}negative(){return this.use(R9())}decimal(J){return this.use(V9({range:Array.isArray(J)?J:[J]}))}withoutDecimals(){return this.use(I9())}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}in(J){return this.use(E9({values:J}))}},j9=m((Z,J,X)=>{let Q=J.strict===!0?Z:s.asBoolean(Z);if(typeof Q!=="boolean"){X.report(x.boolean,"boolean",X);return}X.mutate(Q,X)}),BX=class Z extends X0{static rules={boolean:j9};[C1]="vine.boolean";[g1]=(J)=>{return typeof(this.options.strict===!0?J:s.asBoolean(J))==="boolean"};constructor(J,X){super(J,X||[j9(J||{})])}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},A9=m((Z,J,X)=>{let Q=Z;if(typeof J.expectedValue==="boolean")Q=s.asBoolean(Z);else if(typeof J.expectedValue==="number")Q=s.asNumber(Z);if(Q!==J.expectedValue){X.report(x.literal,"literal",X,J);return}X.mutate(Q,X)}),NK=class Z extends X0{static rules={equals:A9};#Z;constructor(J,X,Q){super(X,Q||[A9({expectedValue:J})]);this.#Z=J}clone(){return new Z(this.#Z,this.cloneOptions(),this.cloneValidations())}},PK=["on","1","yes","true",!0,1],N9=m((Z,J,X)=>{if(!PK.includes(Z))X.report(x.accepted,"accepted",X)}),OK=class Z extends X0{static rules={accepted:N9};constructor(J,X){super(J,X||[N9()])}clone(){return new Z(this.cloneOptions(),this.cloneValidations())}},wK=class Z{#Z;#J=(J,X)=>{X.report(x.unionGroup,"unionGroup",X)};constructor(J){this.#Z=J}clone(){let J=new Z(this.#Z);return J.otherwise(this.#J),J}otherwise(J){return this.#J=J,this}[e](J,X){return{type:"group",elseConditionalFnRefId:J.trackConditional(this.#J),conditions:this.#Z.map((Q)=>Q[e](J,X))}}},HX=class{#Z;#J;constructor(Z,J){this.#Z=J,this.#J=Z}[e](Z,J){return{schema:{type:"sub_object",properties:Object.keys(this.#Z).map((X)=>{return this.#Z[X][e](X,Z,J)}),groups:[]},conditionalFnRefId:Z.trackConditional(this.#J)}}};function JZ(Z){return new wK(Z)}JZ.if=function Z(J,X){return new HX(J,X)};JZ.else=function Z(J){return new HX(()=>!0,J)};var TK=class Z extends X0{static rules={enum:S6};#Z;constructor(J,X,Q){super(X,Q||[S6({choices:Object.values(J)})]);this.#Z=J}clone(){return new Z(this.#Z,this.cloneOptions(),this.cloneValidations())}},LK=class Z{#Z;#J=(J,X)=>{X.report(x.unionOfTypes,"unionOfTypes",X)};constructor(J){this.#Z=J}otherwise(J){return this.#J=J,this}clone(){let J=new Z(this.#Z);return J.otherwise(this.#J),J}[e](J,X,Q){return{type:"union",fieldName:J,propertyName:Q.toCamelCase?W0(J):J,elseConditionalFnRefId:X.trackConditional(this.#J),conditions:this.#Z.map((z)=>{return{conditionalFnRefId:X.trackConditional((G,Y)=>{return z[g1](G,Y)}),schema:z[e](J,X,Q)}})}}},SK=class extends t8{group=JZ;union=ZZ;string(){return new AK}boolean(Z){return new BX(Z)}accepted(){return new OK}number(Z){return new UX(Z)}date(Z){return new WK(Z)}literal(Z){return new NK(Z)}object(Z){return new EK(Z)}array(Z){return new VK(Z)}tuple(Z){return new RK(Z)}record(Z){return new jK(Z)}enum(Z){if(Array.isArray(Z)||typeof Z==="function")return new $X(Z);return new TK(Z)}any(){return new BK}unionOfTypes(Z){let J=new Set;return Z.forEach((X)=>{if(!X[g1]||!X[C1])throw new Error(`Cannot use "${X.constructor.name}". The schema type is not compatible for use with "vine.unionOfTypes"`);if(J.has(X[C1]))throw new Error(`Cannot use duplicate schema "${X[C1]}". "vine.unionOfTypes" needs distinct schema types only`);J.add(X[C1])}),J.clear(),new LK(Z)}},DK={required:x.required,array:x.array,object:x.object},P9=class{#Z;messagesProvider;errorReporter;#J(Z){let J=XK();return{compilerNode:{type:"root",schema:Z[e]("",J,{toCamelCase:!1})},refs:J.toJSON()}}constructor(Z,J){let{compilerNode:X,refs:Q}=this.#J(Z);this.#Z={schema:X,refs:Q};let z=J.metaDataValidator,G=new JK(X,{convertEmptyStringsToNull:J.convertEmptyStringsToNull,messages:DK}).compile();if(this.errorReporter=J.errorReporter,this.messagesProvider=J.messagesProvider,z)this.validate=(Y,$)=>{let K=$??{},U=K.meta??{},H=K.errorReporter??this.errorReporter,B=K.messagesProvider??this.messagesProvider;return z(U),G(Y,U,Q,B,H())};else this.validate=(Y,$)=>{let K=$??{},U=K.meta??{},H=K.errorReporter??this.errorReporter,B=K.messagesProvider??this.messagesProvider;return G(Y,U,Q,B,H())}}async tryValidate(Z,...[J]){try{return[null,await this.validate(Z,J)]}catch(X){if(X instanceof t7)return[X,null];throw X}}toJSON(){let{schema:Z,refs:J}=this.#Z;return{schema:structuredClone(Z),refs:J}}},CK=class extends SK{messagesProvider=new $$(x,xG);errorReporter=()=>new U$;convertEmptyStringsToNull=!1;helpers=s;createRule=m;compile(Z){return new P9(Z,{convertEmptyStringsToNull:this.convertEmptyStringsToNull,messagesProvider:this.messagesProvider,errorReporter:this.errorReporter})}withMetaData(Z){return{compile:(J)=>{return new P9(J,{convertEmptyStringsToNull:this.convertEmptyStringsToNull,messagesProvider:this.messagesProvider,errorReporter:this.errorReporter,metaDataValidator:Z})}}}validate(Z){return this.compile(Z.schema).validate(Z.data,Z)}tryValidate(Z){return this.compile(Z.schema).tryValidate(Z.data,Z)}},_K=new CK,n=_K,bK={APP_NAME:n.string(),APP_ENV:n.enum(["local","dev","stage","prod"]),APP_KEY:n.string(),APP_URL:n.string(),PORT:n.number(),PORT_BACKEND:n.number(),PORT_ADMIN:n.number(),PORT_LIBRARY:n.number(),PORT_DESKTOP:n.number(),PORT_EMAIL:n.number(),PORT_DOCS:n.number(),PORT_INSPECT:n.number(),PORT_API:n.number(),PORT_SYSTEM_TRAY:n.number(),APP_MAINTENANCE:n.boolean(),DEBUG:n.boolean(),API_PREFIX:n.string(),DOCS_PREFIX:n.string(),DB_CONNECTION:n.enum(["mysql","sqlite","postgres"]),DB_HOST:n.string(),DB_PORT:n.number(),DB_DATABASE:n.string(),DB_USERNAME:n.string(),DB_PASSWORD:n.string(),AWS_ACCOUNT_ID:n.string(),AWS_ACCESS_KEY_ID:n.string(),AWS_SECRET_ACCESS_KEY:n.string(),AWS_DEFAULT_REGION:n.string(),AWS_DEFAULT_PASSWORD:n.string(),MAIL_MAILER:n.enum(["ses","sendmail","log","smtp"]),MAIL_HOST:n.string(),MAIL_PORT:n.number(),MAIL_USERNAME:n.string(),MAIL_PASSWORD:n.string(),MAIL_ENCRYPTION:n.string(),MAIL_FROM_NAME:n.string(),MAIL_FROM_ADDRESS:n.string(),SEARCH_ENGINE_DRIVER:n.enum(["meilisearch","algolia","typesense"]),MEILISEARCH_HOST:n.string(),MEILISEARCH_KEY:n.string(),FRONTEND_APP_ENV:n.enum(["development","staging","production"]),FRONTEND_APP_URL:n.string()},kK={APP_ENV:["local","dev","development","staging","prod","production"],DB_CONNECTION:["mysql","sqlite","postgres","dynamodb"],MAIL_MAILER:["smtp","mailgun","ses","postmark","sendmail","log"],SEARCH_ENGINE_DRIVER:["opensearch"],FRONTEND_APP_ENV:["development","staging","production"]},yK=Object.entries(bK).reduce((Z,[J,X])=>{let Q;switch(typeof X){case"string":Q=n.string();break;case"number":Q=n.number();break;case"boolean":Q=n.boolean();break;default:if(Array.isArray(X)){Q=n.enum(X);break}if(typeof X==="object"){let G=Symbol.for("schema_name"),Y=X[G];if(Y==="vine.string"){Q=n.string();break}if(Y==="vine.number"){Q=n.number();break}if(Y==="vine.boolean"){Q=n.boolean();break}if(!Y){Q=n.enum(kK.APP_ENV);break}console.error("Unknown env value type",typeof X)}throw new Error(`Invalid env value for ${J}`)}let z=J;return Z[z]=Q,Z},{}),YF=n.object(yK),hK={get:(Z,J)=>{let X=Z[J];if(typeof X==="string"&&/^\d+$/.test(X)&&J!=="AWS_ACCOUNT_ID")return Number(X);if(typeof X==="string"&&/^true|false$/.test(X))return X==="true";if(X instanceof $X)return Z[J];if(X instanceof BX)return!!Z[J];if(X instanceof UX)return Number(Z[J]);return X}};function gK(){return typeof Bun!=="undefined"?Bun.env:fG.env}var a=new Proxy(gK(),hK),vK={name:a.APP_NAME??"Stacks",description:"Stacks is a full-stack framework for building modern web applications.",env:a.APP_ENV??"local",url:a.APP_URL??"stacks.localhost",redirectUrls:["stacksjs.com"],debug:a.DEBUG??!1,key:a.APP_KEY,maintenanceMode:a.APP_MAINTENANCE??!1,docMode:!1,timezone:"America/Los_Angeles",locale:"en",fallbackLocale:"en",cipher:"aes-256-cbc"},fK={driver:"dynamodb",prefix:"stacks",ttl:3600,drivers:{dynamodb:{key:a.AWS_ACCESS_KEY_ID||"",secret:a.AWS_SECRET_ACCESS_KEY||"",region:a.AWS_DEFAULT_REGION||"us-east-1",table:"cache",endpoint:""},memcached:{persistent_id:"",sasl:["",""],options:{},servers:[{host:"127.0.0.1",port:11211,weight:100}]},redis:{connection:"cache",host:"127.0.0.1",port:6379,password:"",username:"stacks"}}},xK={name:"My Custom CLI",command:"custom-cli",description:"This is an example command to illustrate how to create your own commands. Check out `../app/commands` for more.",deploy:!0},WX={firewall:{enabled:!0,countryCodes:["RU","IR"],ipAddresses:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0,queryString:[],httpHeaders:[]}},mK={type:"serverless",driver:"aws",firewall:WX.firewall,environments:["production","staging","development"],storage:{},api:{prefix:a.API_PREFIX||"api",description:"My awesome Stacks API",deploy:!0,memorySize:512,prewarm:10,timeout:30},cdn:{compress:!0,allowedMethods:"ALL",cachedMethods:"GET_HEAD",originShieldRegion:"us-east-1",minTtl:0,defaultTtl:86400,maxTtl:31536000,cookieBehavior:"none",allowList:{cookies:[],headers:[],queryStrings:[]},realtimeLogs:{enabled:!0,samplingRate:1}},fileSystem:!0},uK={default:a.DB_CONNECTION||"sqlite",connections:{sqlite:{database:a.DB_DATABASE||"database/stacks.sqlite",prefix:""},dynamodb:{key:a.AWS_ACCESS_KEY_ID||"",secret:a.AWS_SECRET_ACCESS_KEY||"",region:a.AWS_DEFAULT_REGION||"us-east-1",prefix:a.DB_DATABASE||"stacks",endpoint:"http://localhost",port:a.DB_PORT||8000},mysql:{name:a.DB_DATABASE||"stacks",host:a.DB_HOST||"127.0.0.1",port:a.DB_PORT||3306,username:a.DB_USERNAME||"root",password:a.DB_PASSWORD||"",prefix:""},postgres:{name:a.DB_DATABASE||"stacks",host:a.DB_HOST||"127.0.0.1",port:a.DB_PORT||3306,username:a.DB_USERNAME||"",password:a.DB_PASSWORD||"",prefix:""}},migrations:"migrations",migrationLocks:"migration_locks"},dK={a:[{name:a.APP_URL||"",address:"10.0.0.1",ttl:300},{name:"www",address:"@",ttl:300}],aaaa:[],cname:[],mx:[],txt:[],nameservers:[]},cK={from:{name:a.MAIL_FROM_NAME||"Stacks",address:a.MAIL_FROM_ADDRESS||"no-reply@stacksjs.org"},mailboxes:["chris@stacksjs.org","blake@stacksjs.org","glenn@stacksjs.org"],url:a.APP_URL||"http://localhost:3000",charset:"UTF-8",server:{scan:!0}},pK={messages:{string:"The {{ field }} field must be a string",email:"The {{ field }} field must be a valid email address",regex:"The {{ field }} field format is invalid",url:"The {{ field }} field must be a valid URL",activeUrl:"The {{ field }} field must be a valid URL",alpha:"The {{ field }} field must contain only letters",alphaNumeric:"The {{ field }} field must contain only letters and numbers",minLength:"The {{ field }} field must have at least {{ min }} characters",maxLength:"The {{ field }} field must not be greater than {{ max }} characters",fixedLength:"The {{ field }} field must be {{ size }} characters long",confirmed:"The {{ field }} field and {{ otherField }} field must be the same",endsWith:"The {{ field }} field must end with {{ substring }}",startsWith:"The {{ field }} field must start with {{ substring }}",sameAs:"The {{ field }} field and {{ otherField }} field must be the same",notSameAs:"The {{ field }} field and {{ otherField }} field must be different",in:"The selected {{ field }} is invalid",notIn:"The selected {{ field }} is invalid",ipAddress:"The {{ field }} field must be a valid IP address",uuid:"The {{ field }} field must be a valid UUID",ascii:"The {{ field }} field must only contain ASCII characters",creditCard:"The {{ field }} field must be a valid {{ providersList }} card number",hexCode:"The {{ field }} field must be a valid hex color code",iban:"The {{ field }} field must be a valid IBAN number",jwt:"The {{ field }} field must be a valid JWT token",coordinates:"The {{ field }} field must contain latitude and longitude coordinates",mobile:"The {{ field }} field must be a valid mobile phone number",passport:"The {{ field }} field must be a valid passport number",postalCode:"The {{ field }} field must be a valid postal code",boolean:"The value must be a boolean",number:"The {{ field }} field must be a number",min:"The {{ field }} field must be at least {{ min }}",max:"The {{ field }} field must not be greater than {{ max }}",range:"The {{ field }} field must be between {{ min }} and {{ max }}",positive:"The {{ field }} field must be positive",negative:"The {{ field }} field must be negative",decimal:"The {{ field }} field must have {{ digits }} decimal places",withoutDecimals:"The {{ field }} field must not have decimal places",date:"The {{ field }} field must be a datetime value","date.equals":"The {{ field }} field must be a date equal to {{ expectedValue }}","date.after":"The {{ field }} field must be a date after {{ expectedValue }}","date.before":"The {{ field }} field must be a date before {{ expectedValue }}","date.afterOrEqual":"The {{ field }} field must be a date after or equal to {{ expectedValue }}","date.beforeOrEqual":"The {{ field }} field must be a date before or equal to {{ expectedValue }}","date.sameAs":"The {{ field }} field and {{ otherField }} field must be the same","date.notSameAs":"The {{ field }} field and {{ otherField }} field must be different","date.afterField":"The {{ field }} field must be a date after {{ otherField }}",accepted:"The {{ field }} field must be accepted",enum:"The selected {{ field }} is invalid",literal:"The {{ field }} field must be {{ expectedValue }}",object:"The {{ field }} field must be an object",record:"The {{ field }} field must be an object","record.minLength":"The {{ field }} field must have at least {{ min }} items","record.maxLength":"The {{ field }} field must not have more than {{ max }} items","record.fixedLength":"The {{ field }} field must contain {{ size }} items",array:"The {{ field }} field must be an array","array.minLength":"The {{ field }} field must have at least {{ min }} items","array.maxLength":"The {{ field }} field must not have more than {{ max }} items","array.fixedLength":"The {{ field }} field must contain {{ size }} items",notEmpty:"The {{ field }} field must not be empty",distinct:"The {{ field }} field has duplicate values",tuple:"The {{ field }} field must be an array",union:"Invalid value provided for {{ field }} field",unionGroup:"Invalid value provided for {{ field }} field",unionOfTypes:"Invalid value provided for {{ field }} field"}},lK={hooks:{"pre-commit":"lint-staged"},scopes:["","ci","deps","dx","release","docs","test","core","actions","arrays","auth","build","cache","cli","cloud","collections","config","database","datetime","docs","errors","git","lint","x-ray","modules","notifications","objects","path","realtime","router","buddy","security","server","storage","strings","tests","types","ui","utils"],messages:{type:"Select the type of change that you\u2019re committing:",scope:"Select the SCOPE of this change (optional):",customScope:"Select the SCOPE of this change:",subject:"Write a SHORT, IMPERATIVE tense description of the change:\n",body:'Provide a LONGER description of the change (optional). Use "|" to break new line:\n',breaking:'List any BREAKING CHANGES (optional). Use "|" to break new line:\n',footerPrefixesSelect:"Select the ISSUES type of the change list by this change (optional):",customFooterPrefixes:"Input ISSUES prefix:",footer:"List any ISSUES by this change. E.g.: #31, #34:\n",confirmCommit:"Are you sure you want to proceed with the commit above?"},types:[{value:"feat",name:"feat: \u2728 A new feature",emoji:":sparkles:"},{value:"fix",name:"fix: \uD83D\uDC1B A bug fix",emoji:":bug:"},{value:"docs",name:"docs: \uD83D\uDCDD Documentation only changes",emoji:":memo:"},{value:"style",name:"style: \uD83D\uDC84 Changes that do not affect the meaning of the code",emoji:":lipstick:"},{value:"refactor",name:"refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",emoji:":recycle:"},{value:"perf",name:"perf: \u26A1\uFE0F A code change that improves performance",emoji:":zap:"},{value:"test",name:"test: \u2705 Adding missing tests or adjusting existing tests",emoji:":white_check_mark:"},{value:"build",name:"build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",emoji:":package:"},{value:"ci",name:"ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",emoji:":ferris_wheel:"},{value:"chore",name:"chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",emoji:":hammer:"},{value:"revert",name:"revert: \u23EA\uFE0F Reverts a previous commit",emoji:":rewind:"}]},nK={driver:"argon2",bcrypt:{rounds:10,cost:4},argon2:{memory:65536,threads:1,time:1}},iK={name:"hello-world",owner:"@stacksjs",repository:"stacksjs/stacks",license:"MIT",author:"Chris Breuer",contributors:["Chris Breuer <chris@stacksjs.org>"],defaultLanguage:"en",releaseable:!0,vueComponents:{name:"hello-world-vue",description:"Your Vue component library description",keywords:["component","library","vue","vite","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},webComponents:{name:"hello-world-elements",description:"Your framework agnostic web component library description.",keywords:["custom-elements","web-components","library","framework-agnostic","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},functions:{name:"hello-world-fx",description:"Your function library description.",keywords:["functions","composables","library","typescript","javascript"],shouldGenerateSourcemap:!1,files:["counter","dark"]}},sK={logsPath:QJ("logs/stacks.log"),deploymentsPath:QJ("logs/deployments.log")},aK={default:"email"},rK={driver:"stripe"},oK={frontend:a.PORT??3000,backend:a.PORT_BACKEND??3001,admin:a.PORT_ADMIN??3002,library:a.PORT_LIBRARY??3003,desktop:a.PORT_DESKTOP??3004,email:a.PORT_EMAIL??3005,docs:a.PORT_DOCS??3006,inspect:a.PORT_INSPECT??3007,api:a.PORT_API??3008,systemTray:a.PORT_SYSTEM_TRAY??3009,database:3010},tK={default:"sync",connections:{sync:{driver:"sync"},sqs:{driver:"sqs",key:"",secret:"",prefix:"",suffix:"",queue:"default",region:"us-east-1"}}},eK={driver:"opensearch"},ZU={aws:{accountId:a.AWS_ACCOUNT_ID||"",appId:a.AWS_ACCESS_KEY_ID||"",apiKey:a.AWS_SECRET_ACCESS_KEY||"",region:a.AWS_DEFAULT_REGION||"us-east-1"},algolia:{appId:"",apiKey:""},meilisearch:{appId:"",apiKey:""},lemonSqueezy:{appId:"",apiKey:""},stripe:{appId:"",apiKey:""}},JU={driver:"s3"},XU={name:"Stacks",members:{chris:"chris@stacksjs.org",blake:"blake@stacksjs.org",zoltan:"zoltan@stacksjs.org",freddy:"freddy@stacksjs.org",glenn:"glenn@stacksjs.org",dorell:"dorell@stacksjs.org",avery:"avery@stacksjs.org",adelino:"adelino@stacksjs.org"}},QU={shortcuts:[["btn","inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]],safelist:"prose prose-sm m-auto text-left",trigger:":stx:",classPrefix:"stx-",reset:"tailwind",icons:["heroicons"],fonts:{email:{title:"Mona",text:"Hubot"},desktop:{title:"Mona",text:"Hubot"},mobile:{title:"Mona",text:"Hubot"},web:{title:"Mona",text:"Hubot"}},theme:{colors:{veryCool:"#0000ff",brand:{primary:"hsl(var(--hue, 217) 78% 51%)"}}}},YU={ai:gG,analytics:vG,app:vK,cache:fK,cli:xK,cloud:mK,database:uK,dns:dK,email:cK,errors:pK,git:lK,hashing:nK,library:iK,logging:sK,notification:aK,queue:tK,payment:rK,ports:oK,searchEngine:eK,security:WX,services:ZU,storage:JU,team:XU,ui:QU},qX=YU;async function zU(Z){if(!Z?.port)Z={port:3000};return console.log("Creating local tunnel",Z.port),"localTunnel"}async function G0(Z){return await zU({port:Z})}async function GU({domain:Z=P1.app.url||"stacks",type:J="frontend",localhost:X=!1,https:Q=void 0,network:z=void 0}={}){let G=Z.replace(/\.[^.]+$/,".localhost");switch(J){case"frontend":if(z)return await G0(P1.ports?.frontend||3000);if(X)return`http://localhost:${P1.ports?.frontend}`;break;case"backend":if(z)return await G0(P1.ports?.backend||3001);if(X)return`http://localhost:${P1.ports?.backend}`;G=`api.${G}`;break;case"admin":if(z)return await G0(P1.ports?.admin||3002);if(X)return`http://localhost:${P1.ports?.admin}`;G=`admin.${G}`;break;case"library":if(z)return await G0(P1.ports?.library||3003);if(X)return`http://localhost:${P1.ports?.library}`;G=`libs.${G}`;break;case"email":if(z)return await G0(P1.ports?.email||3005);if(X)return`http://localhost:${P1.ports?.email}`;G=`email.${G}`;break;case"desktop":if(z)return await G0(P1.ports?.desktop||3004);if(X)return`http://localhost:${P1.ports?.desktop}`;G=`desktop.${G}`;break;case"docs":if(z)return await G0(P1.ports?.docs||3006);if(X)return`http://localhost:${P1.ports?.docs}`;G=`docs.${G}`;break;case"inspect":if(z)return await G0(P1.ports?.inspect||3007);if(X)return`http://localhost:${P1.ports?.inspect}`;G=`inspect.${G}`;break;default:if(X)return`http://localhost:${P1.ports?.frontend}`}if(Q)return`https://${G}`;return`http://${G}`}function $U(Z){return Z}function KU(Z){return Z}function UU(Z){return Z}function BU(Z){return Z}function HU(Z){return Z}function WU(Z){return Z}function qU(Z){return Z}function MU(Z){return Z}function FU(Z){return Z}function RU(Z){return Z}function VU(Z){return Z}function IU(Z){return Z}function EU(Z){return Z}function jU(Z){return Z}function AU(Z){return Z}function NU(Z){return Z}function PU(Z){return Z}function OU(Z){return Z}function wU(Z){return Z}function TU(Z){return Z}function LU(Z){return Z}function SU(Z){return Z}function DU(Z){return Z}function CU(Z){return Z}function _U(Z){return Z}function bU(Z){return Z}function kU(Z){return Z}var G1={...r7,...qX},yU=G1.ai,hU=G1.analytics,M0=G1.app,gU=G1.cache,vU=G1.cloud,fU=G1.cli,xU=G1.database,mU=G1.dns,uU=G1.docs,dU=G1.email,cU=G1.errors,pU=G1.git,lU=G1.hashing,nU=G1.library,iU=G1.logging,sU=G1.notification,aU=G1.payment,rU=G1.ports,oU=G1.queue,tU=G1.security,eU=G1.searchEngine,ZB=G1.services,JB=G1.storage,XB=G1.team,QB=G1.ui;function YB(){if(M0.env==="local")return"dev";if(M0.env==="development")return"dev";if(M0.env==="staging")return"stage";if(M0.env==="production")return"prod";if(!M0.env)throw new Error("Couldn\'t determine app environment");return M0.env}var zB={withStackTrace:!1},MX=(Z,J,X=zB)=>{let Q=J.isOk()?{type:"Ok",value:J.value}:{type:"Err",value:J.error},z=X.withStackTrace?new Error().stack:void 0;return{data:Q,message:Z,stack:z}};function O0(Z,J,X,Q){function z(G){return G instanceof X?G:new X(function(Y){Y(G)})}return new(X||(X=Promise))(function(G,Y){function $(H){try{U(Q.next(H))}catch(B){Y(B)}}function K(H){try{U(Q.throw(H))}catch(B){Y(B)}}function U(H){H.done?G(H.value):z(H.value).then($,K)}U((Q=Q.apply(Z,[])).next())})}function O9(Z){var J=typeof Symbol==="function"&&Symbol.iterator,X=J&&Z[J],Q=0;if(X)return X.call(Z);if(Z&&typeof Z.length==="number")return{next:function(){if(Z&&Q>=Z.length)Z=void 0;return{value:Z&&Z[Q++],done:!Z}}};throw new TypeError(J?"Object is not iterable.":"Symbol.iterator is not defined.")}function V0(Z){return this instanceof V0?(this.v=Z,this):new V0(Z)}function GB(Z,J,X){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var Q=X.apply(Z,J||[]),z,G=[];return z={},Y("next"),Y("throw"),Y("return"),z[Symbol.asyncIterator]=function(){return this},z;function Y(W){if(Q[W])z[W]=function(q){return new Promise(function(F,R){G.push([W,q,F,R])>1||$(W,q)})}}function $(W,q){try{K(Q[W](q))}catch(F){B(G[0][3],F)}}function K(W){W.value instanceof V0?Promise.resolve(W.value.v).then(U,H):B(G[0][2],W)}function U(W){$("next",W)}function H(W){$("throw",W)}function B(W,q){if(W(q),G.shift(),G.length)$(G[0][0],G[0][1])}}function $B(Z){var J,X;return J={},Q("next"),Q("throw",function(z){throw z}),Q("return"),J[Symbol.iterator]=function(){return this},J;function Q(z,G){J[z]=Z[z]?function(Y){return(X=!X)?{value:V0(Z[z](Y)),done:z==="return"}:G?G(Y):Y}:G}}function KB(Z){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var J=Z[Symbol.asyncIterator],X;return J?J.call(Z):(Z=typeof O9==="function"?O9(Z):Z[Symbol.iterator](),X={},Q("next"),Q("throw"),Q("return"),X[Symbol.asyncIterator]=function(){return this},X);function Q(G){X[G]=Z[G]&&function(Y){return new Promise(function($,K){Y=Z[G](Y),z($,K,Y.done,Y.value)})}}function z(G,Y,$,K){Promise.resolve(K).then(function(U){G({value:U,done:$})},Y)}}class O1{constructor(Z){this._promise=Z}static fromSafePromise(Z){let J=Z.then((X)=>new c1(X));return new O1(J)}static fromPromise(Z,J){let X=Z.then((Q)=>new c1(Q)).catch((Q)=>new m1(J(Q)));return new O1(X)}static fromThrowable(Z,J){return(...X)=>{return new O1((()=>O0(this,void 0,void 0,function*(){try{return new c1(yield Z(...X))}catch(Q){return new m1(J?J(Q):Q)}}))())}}static combine(Z){return UB(Z)}static combineWithAllErrors(Z){return BB(Z)}map(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return new m1(J.error);return new c1(yield Z(J.value))})))}andThrough(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return new m1(J.error);let X=yield Z(J.value);if(X.isErr())return new m1(X.error);return new c1(J.value)})))}andTee(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return new m1(J.error);try{yield Z(J.value)}catch(X){}return new c1(J.value)})))}mapErr(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isOk())return new c1(J.value);return new m1(yield Z(J.error))})))}andThen(Z){return new O1(this._promise.then((J)=>{if(J.isErr())return new m1(J.error);let X=Z(J.value);return X instanceof O1?X._promise:X}))}orElse(Z){return new O1(this._promise.then((J)=>O0(this,void 0,void 0,function*(){if(J.isErr())return Z(J.error);return new c1(J.value)})))}match(Z,J){return this._promise.then((X)=>X.match(Z,J))}unwrapOr(Z){return this._promise.then((J)=>J.unwrapOr(Z))}safeUnwrap(){return GB(this,arguments,function*Z(){return yield V0(yield V0(yield*$B(KB(yield V0(this._promise.then((J)=>J.safeUnwrap()))))))})}then(Z,J){return this._promise.then(Z,J)}}var M8=(Z)=>new O1(Promise.resolve(new m1(Z))),zF=O1.fromPromise,GF=O1.fromSafePromise,$F=O1.fromThrowable,FX=(Z)=>{let J=R0([]);for(let X of Z)if(X.isErr()){J=e1(X.error);break}else J.map((Q)=>Q.push(X.value));return J},UB=(Z)=>O1.fromSafePromise(Promise.all(Z)).andThen(FX),RX=(Z)=>{let J=R0([]);for(let X of Z)if(X.isErr()&&J.isErr())J.error.push(X.error);else if(X.isErr()&&J.isOk())J=e1([X.error]);else if(X.isOk()&&J.isOk())J.value.push(X.value);return J},BB=(Z)=>O1.fromSafePromise(Promise.all(Z)).andThen(RX),S8;(function(Z){function J(z,G){return(...Y)=>{try{let $=z(...Y);return R0($)}catch($){return e1(G?G($):$)}}}Z.fromThrowable=J;function X(z){return FX(z)}Z.combine=X;function Q(z){return RX(z)}Z.combineWithAllErrors=Q})(S8||(S8={}));var R0=(Z)=>new c1(Z);function e1(Z){return new m1(Z)}class c1{constructor(Z){this.value=Z}isOk(){return!0}isErr(){return!this.isOk()}map(Z){return R0(Z(this.value))}mapErr(Z){return R0(this.value)}andThen(Z){return Z(this.value)}andThrough(Z){return Z(this.value).map((J)=>this.value)}andTee(Z){try{Z(this.value)}catch(J){}return R0(this.value)}orElse(Z){return R0(this.value)}asyncAndThen(Z){return Z(this.value)}asyncAndThrough(Z){return Z(this.value).map(()=>this.value)}asyncMap(Z){return O1.fromSafePromise(Z(this.value))}unwrapOr(Z){return this.value}match(Z,J){return Z(this.value)}safeUnwrap(){let Z=this.value;return function*(){return Z}()}_unsafeUnwrap(Z){return this.value}_unsafeUnwrapErr(Z){throw MX("Called `_unsafeUnwrapErr` on an Ok",this,Z)}}class m1{constructor(Z){this.error=Z}isOk(){return!1}isErr(){return!this.isOk()}map(Z){return e1(this.error)}mapErr(Z){return e1(Z(this.error))}andThrough(Z){return e1(this.error)}andTee(Z){return e1(this.error)}andThen(Z){return e1(this.error)}orElse(Z){return Z(this.error)}asyncAndThen(Z){return M8(this.error)}asyncAndThrough(Z){return M8(this.error)}asyncMap(Z){return M8(this.error)}unwrapOr(Z){return Z}match(Z,J){return J(this.error)}safeUnwrap(){let Z=this.error;return function*(){throw yield e1(Z),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(Z){throw MX("Called `_unsafeUnwrap` on an Err",this,Z)}_unsafeUnwrapErr(Z){return this.error}}var KF=S8.fromThrowable,HB=J1(nz(),1);var WB={};g8(WB,{yellow:()=>wB,white:()=>DB,underline:()=>IB,trueColorBg:()=>JH,trueColor:()=>ZH,stripColors:()=>qB,strikethrough:()=>AB,reset:()=>MB,red:()=>PB,options:()=>C0,magenta:()=>LB,link:()=>XH,lightYellow:()=>yB,lightRed:()=>bB,lightMagenta:()=>gB,lightGreen:()=>kB,lightGray:()=>_B,lightCyan:()=>vB,lightBlue:()=>hB,italic:()=>VB,inverse:()=>EB,hidden:()=>jB,green:()=>OB,gray:()=>CB,dim:()=>RB,cyan:()=>SB,bold:()=>FB,blue:()=>TB,black:()=>NB,bgYellow:()=>uB,bgWhite:()=>lB,bgRed:()=>xB,bgMagenta:()=>cB,bgLightYellow:()=>aB,bgLightRed:()=>iB,bgLightMagenta:()=>oB,bgLightGreen:()=>sB,bgLightGray:()=>eB,bgLightCyan:()=>tB,bgLightBlue:()=>rB,bgGreen:()=>mB,bgGray:()=>nB,bgCyan:()=>pB,bgBlue:()=>dB,bgBlack:()=>fB,ansi256Bg:()=>EX,ansi256:()=>IX});var F0=!0,w0=typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:{},i0=0;if(w0.process&&w0.process.env&&w0.process.stdout){let{FORCE_COLOR:Z,NODE_DISABLE_COLORS:J,NO_COLOR:X,TERM:Q,COLORTERM:z}=w0.process.env;if(J||X||Z==="0")F0=!1;else if(Z==="1"||Z==="2"||Z==="3")F0=!0;else if(Q==="dumb")F0=!1;else if("CI"in w0.process.env&&["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some((G)=>(G in w0.process.env)))F0=!0;else F0=process.stdout.isTTY;if(F0)if(process.platform==="win32")i0=3;else if(z&&(z==="truecolor"||z==="24bit"))i0=3;else if(Q&&(Q.endsWith("-256color")||Q.endsWith("256")))i0=2;else i0=1}var C0={enabled:F0,supportLevel:i0};function r(Z,J,X=1){let Q=`\x1B[${Z}m`,z=`\x1B[${J}m`,G=new RegExp(`\\x1b\\[${J}m`,"g");return(Y)=>{return C0.enabled&&C0.supportLevel>=X?Q+(""+Y).replace(G,Q)+z:""+Y}}function VX(Z,J,X){if(Z>>4===J>>4&&J>>4===X>>4){if(Z<8)return 16;if(Z>248)return 231;return Math.round((Z-8)/247*24)+232}return 16+36*Math.round(Z/255*5)+6*Math.round(J/255*5)+Math.round(X/255*5)}function qB(Z){return(""+Z).replace(/\x1b\[[0-9;]+m/g,"").replace(/\x1b\]8;;.*?\x07(.*?)\x1b\]8;;\x07/g,(J,X)=>X)}var MB=r(0,0),FB=r(1,22),RB=r(2,22),VB=r(3,23),IB=r(4,24),EB=r(7,27),jB=r(8,28),AB=r(9,29),NB=r(30,39),PB=r(31,39),OB=r(32,39),wB=r(33,39),TB=r(34,39),LB=r(35,39),SB=r(36,39),DB=r(97,39),CB=r(90,39),_B=r(37,39),bB=r(91,39),kB=r(92,39),yB=r(93,39),hB=r(94,39),gB=r(95,39),vB=r(96,39),fB=r(40,49),xB=r(41,49),mB=r(42,49),uB=r(43,49),dB=r(44,49),cB=r(45,49),pB=r(46,49),lB=r(107,49),nB=r(100,49),iB=r(101,49),sB=r(102,49),aB=r(103,49),rB=r(104,49),oB=r(105,49),tB=r(106,49),eB=r(47,49),IX=(Z)=>r("38;5;"+Z,0,2),EX=(Z)=>r("48;5;"+Z,0,2),ZH=(Z,J,X)=>{return C0.supportLevel===2?IX(VX(Z,J,X)):r(`38;2;${Z};${J};${X}`,0,3)},JH=(Z,J,X)=>{return C0.supportLevel===2?EX(VX(Z,J,X)):r(`48;2;${Z};${J};${X}`,0,3)},w9="\x1B]",T9="\x07",V6=";";function XH(Z,J){return C0.enabled?w9+"8"+V6+V6+J+T9+Z+w9+"8"+V6+V6+T9:`${Z} (\u200B${J}\u200B)`}function jX(Z){if(Array.isArray(Z)){if(Z=Array.from(new Set(Z)),Array.isArray(Z)&&Z[0]&&!Z[0].startsWith("-"))Z.shift();return Z.join(" ")}if(typeof Z==="object"&&Z!==null)return Object.entries(Z).map(([J,X])=>{if(X===!0)return`--${J}`;return`--${J} ${X}`}).join(" ");return jX(QH.argv.slice(2))}var F8=10,L9=(Z=0)=>(J)=>`\x1B[${J+Z}m`,S9=(Z=0)=>(J)=>`\x1B[${38+Z};5;${J}m`,D9=(Z=0)=>(J,X,Q)=>`\x1B[${38+Z};2;${J};${X};${Q}m`,M1={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},HF=Object.keys(M1.modifier),YH=Object.keys(M1.color),zH=Object.keys(M1.bgColor),WF=[...YH,...zH];function GH(){let Z=new Map;for(let[J,X]of Object.entries(M1)){for(let[Q,z]of Object.entries(X))M1[Q]={open:`\x1B[${z[0]}m`,close:`\x1B[${z[1]}m`},X[Q]=M1[Q],Z.set(z[0],z[1]);Object.defineProperty(M1,J,{value:X,enumerable:!1})}return Object.defineProperty(M1,"codes",{value:Z,enumerable:!1}),M1.color.close="\x1B[39m",M1.bgColor.close="\x1B[49m",M1.color.ansi=L9(),M1.color.ansi256=S9(),M1.color.ansi16m=D9(),M1.bgColor.ansi=L9(F8),M1.bgColor.ansi256=S9(F8),M1.bgColor.ansi16m=D9(F8),Object.defineProperties(M1,{rgbToAnsi256:{value(J,X,Q){if(J===X&&X===Q){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(X/255*5)+Math.round(Q/255*5)},enumerable:!1},hexToRgb:{value(J){let X=/[a-f\d]{6}|[a-f\d]{3}/i.exec(J.toString(16));if(!X)return[0,0,0];let[Q]=X;if(Q.length===3)Q=[...Q].map((G)=>G+G).join("");let z=Number.parseInt(Q,16);return[z>>16&255,z>>8&255,z&255]},enumerable:!1},hexToAnsi256:{value:(J)=>M1.rgbToAnsi256(...M1.hexToRgb(J)),enumerable:!1},ansi256ToAnsi:{value(J){if(J<8)return 30+J;if(J<16)return 90+(J-8);let X,Q,z;if(J>=232)X=((J-232)*10+8)/255,Q=X,z=X;else{J-=16;let $=J%36;X=Math.floor(J/36)/5,Q=Math.floor($/6)/5,z=$%6/5}let G=Math.max(X,Q,z)*2;if(G===0)return 30;let Y=30+(Math.round(z)<<2|Math.round(Q)<<1|Math.round(X));if(G===2)Y+=60;return Y},enumerable:!1},rgbToAnsi:{value:(J,X,Q)=>M1.ansi256ToAnsi(M1.rgbToAnsi256(J,X,Q)),enumerable:!1},hexToAnsi:{value:(J)=>M1.ansi256ToAnsi(M1.hexToAnsi256(J)),enumerable:!1}}),M1}var $H=GH(),p1=$H;function y1(Z,J=globalThis.Deno?globalThis.Deno.args:XZ.argv){let X=Z.startsWith("-")?"":Z.length===1?"-":"--",Q=J.indexOf(X+Z),z=J.indexOf("--");return Q!==-1&&(z===-1||Q<z)}var{env:V1}=XZ,D6;if(y1("no-color")||y1("no-colors")||y1("color=false")||y1("color=never"))D6=0;else if(y1("color")||y1("colors")||y1("color=true")||y1("color=always"))D6=1;function UH(){if("FORCE_COLOR"in V1){if(V1.FORCE_COLOR==="true")return 1;if(V1.FORCE_COLOR==="false")return 0;return V1.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(V1.FORCE_COLOR,10),3)}}function BH(Z){if(Z===0)return!1;return{level:Z,hasBasic:!0,has256:Z>=2,has16m:Z>=3}}function HH(Z,{streamIsTTY:J,sniffFlags:X=!0}={}){let Q=UH();if(Q!==void 0)D6=Q;let z=X?D6:Q;if(z===0)return 0;if(X){if(y1("color=16m")||y1("color=full")||y1("color=truecolor"))return 3;if(y1("color=256"))return 2}if("TF_BUILD"in V1&&"AGENT_NAME"in V1)return 1;if(Z&&!J&&z===void 0)return 0;let G=z||0;if(V1.TERM==="dumb")return G;if(XZ.platform==="win32"){let Y=KH.release().split(".");if(Number(Y[0])>=10&&Number(Y[2])>=10586)return Number(Y[2])>=14931?3:2;return 1}if("CI"in V1){if("GITHUB_ACTIONS"in V1||"GITEA_ACTIONS"in V1)return 3;if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((Y)=>(Y in V1))||V1.CI_NAME==="codeship")return 1;return G}if("TEAMCITY_VERSION"in V1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(V1.TEAMCITY_VERSION)?1:0;if(V1.COLORTERM==="truecolor")return 3;if(V1.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in V1){let Y=Number.parseInt((V1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(V1.TERM_PROGRAM){case"iTerm.app":return Y>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(V1.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(V1.TERM))return 1;if("COLORTERM"in V1)return 1;return G}function _9(Z,J={}){let X=HH(Z,{streamIsTTY:Z&&Z.isTTY,...J});return BH(X)}var WH={stdout:_9({isTTY:C9.isatty(1)}),stderr:_9({isTTY:C9.isatty(2)})},qH=WH;function MH(Z,J,X){let Q=Z.indexOf(J);if(Q===-1)return Z;let z=J.length,G=0,Y="";do Y+=Z.slice(G,Q)+J+X,G=Q+z,Q=Z.indexOf(J,G);while(Q!==-1);return Y+=Z.slice(G),Y}function FH(Z,J,X,Q){let z=0,G="";do{let Y=Z[Q-1]==="\r";G+=Z.slice(z,Y?Q-1:Q)+J+(Y?"\r\n":"\n")+X,z=Q+1,Q=Z.indexOf("\n",z)}while(Q!==-1);return G+=Z.slice(z),G}var{stdout:b9,stderr:k9}=qH,D8=Symbol("GENERATOR"),_0=Symbol("STYLER"),a0=Symbol("IS_EMPTY"),y9=["ansi","ansi","ansi256","ansi16m"],b0=Object.create(null),RH=(Z,J={})=>{if(J.level&&!(Number.isInteger(J.level)&&J.level>=0&&J.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let X=b9?b9.level:0;Z.level=J.level===void 0?X:J.level},VH=(Z)=>{let J=(...X)=>X.join(" ");return RH(J,Z),Object.setPrototypeOf(J,Q6.prototype),J};function Q6(Z){return VH(Z)}Object.setPrototypeOf(Q6.prototype,Function.prototype);for(let[Z,J]of Object.entries(p1))b0[Z]={get(){let X=C6(this,_8(J.open,J.close,this[_0]),this[a0]);return Object.defineProperty(this,Z,{value:X}),X}};b0.visible={get(){let Z=C6(this,this[_0],!0);return Object.defineProperty(this,"visible",{value:Z}),Z}};var C8=(Z,J,X,...Q)=>{if(Z==="rgb"){if(J==="ansi16m")return p1[X].ansi16m(...Q);if(J==="ansi256")return p1[X].ansi256(p1.rgbToAnsi256(...Q));return p1[X].ansi(p1.rgbToAnsi(...Q))}if(Z==="hex")return C8("rgb",J,X,...p1.hexToRgb(...Q));return p1[X][Z](...Q)},IH=["rgb","hex","ansi256"];for(let Z of IH){b0[Z]={get(){let{level:X}=this;return function(...Q){let z=_8(C8(Z,y9[X],"color",...Q),p1.color.close,this[_0]);return C6(this,z,this[a0])}}};let J="bg"+Z[0].toUpperCase()+Z.slice(1);b0[J]={get(){let{level:X}=this;return function(...Q){let z=_8(C8(Z,y9[X],"bgColor",...Q),p1.bgColor.close,this[_0]);return C6(this,z,this[a0])}}}}var EH=Object.defineProperties(()=>{},{...b0,level:{enumerable:!0,get(){return this[D8].level},set(Z){this[D8].level=Z}}}),_8=(Z,J,X)=>{let Q,z;if(X===void 0)Q=Z,z=J;else Q=X.openAll+Z,z=J+X.closeAll;return{open:Z,close:J,openAll:Q,closeAll:z,parent:X}},C6=(Z,J,X)=>{let Q=(...z)=>jH(Q,z.length===1?""+z[0]:z.join(" "));return Object.setPrototypeOf(Q,EH),Q[D8]=Z,Q[_0]=J,Q[a0]=X,Q},jH=(Z,J)=>{if(Z.level<=0||!J)return Z[a0]?"":J;let X=Z[_0];if(X===void 0)return J;let{openAll:Q,closeAll:z}=X;if(J.includes("\x1B"))while(X!==void 0)J=MH(J,X.close,X.open),X=X.parent;let G=J.indexOf("\n");if(G!==-1)J=FH(J,z,Q,G);return Q+J+z};Object.defineProperties(Q6.prototype,b0);var AH=Q6(),RF=Q6({level:k9?k9.level:0}),NH=AH,PH=(Z,J,X,Q)=>{if(X==="length"||X==="prototype")return;if(X==="arguments"||X==="caller")return;let z=Object.getOwnPropertyDescriptor(Z,X),G=Object.getOwnPropertyDescriptor(J,X);if(!OH(z,G)&&Q)return;Object.defineProperty(Z,X,G)},OH=function(Z,J){return Z===void 0||Z.configurable||Z.writable===J.writable&&Z.enumerable===J.enumerable&&Z.configurable===J.configurable&&(Z.writable||Z.value===J.value)},wH=(Z,J)=>{let X=Object.getPrototypeOf(J);if(X===Object.getPrototypeOf(Z))return;Object.setPrototypeOf(Z,X)},TH=(Z,J)=>`/* Wrapped ${Z}*/\n${J}`,LH=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),SH=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),DH=(Z,J,X)=>{let Q=X===""?"":`with ${X.trim()}() `,z=TH.bind(null,Q,J.toString());Object.defineProperty(z,"name",SH);let{writable:G,enumerable:Y,configurable:$}=LH;Object.defineProperty(Z,"toString",{value:z,writable:G,enumerable:Y,configurable:$})};function CH(Z,J,{ignoreNonConfigurable:X=!1}={}){let{name:Q}=Z;for(let z of Reflect.ownKeys(J))PH(Z,J,z,X);return wH(Z,J),DH(Z,J,Q),Z}var _6=new WeakMap,NX=(Z,J={})=>{if(typeof Z!=="function")throw new TypeError("Expected a function");let X,Q=0,z=Z.displayName||Z.name||"<anonymous>",G=function(...Y){if(_6.set(G,++Q),Q===1)X=Z.apply(this,Y),Z=void 0;else if(J.throw===!0)throw new Error(`Function \`${z}\` can only be called once`);return X};return CH(G,Z),_6.set(G,Q),G};NX.callCount=(Z)=>{if(!_6.has(Z))throw new Error(`The given function \`${Z.name}\` is not wrapped by the \`onetime\` package`);return _6.get(Z)};var _H=NX,L0=[];L0.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")L0.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")L0.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var P6=(Z)=>!!Z&&typeof Z==="object"&&typeof Z.removeListener==="function"&&typeof Z.emit==="function"&&typeof Z.reallyExit==="function"&&typeof Z.listeners==="function"&&typeof Z.kill==="function"&&typeof Z.pid==="number"&&typeof Z.on==="function",R8=Symbol.for("signal-exit emitter"),V8=globalThis,bH=Object.defineProperty.bind(Object);class PX{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(V8[R8])return V8[R8];bH(V8,R8,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(Z,J){this.listeners[Z].push(J)}removeListener(Z,J){let X=this.listeners[Z],Q=X.indexOf(J);if(Q===-1)return;if(Q===0&&X.length===1)X.length=0;else X.splice(Q,1)}emit(Z,J,X){if(this.emitted[Z])return!1;this.emitted[Z]=!0;let Q=!1;for(let z of this.listeners[Z])Q=z(J,X)===!0||Q;if(Z==="exit")Q=this.emit("afterExit",J,X)||Q;return Q}}class QZ{}var kH=(Z)=>{return{onExit(J,X){return Z.onExit(J,X)},load(){return Z.load()},unload(){return Z.unload()}}};class OX extends QZ{onExit(){return()=>{}}load(){}unload(){}}class wX extends QZ{#Z=b8.platform==="win32"?"SIGINT":"SIGHUP";#J=new PX;#X;#Q;#Y;#G={};#z=!1;constructor(Z){super();this.#X=Z,this.#G={};for(let J of L0)this.#G[J]=()=>{let X=this.#X.listeners(J),{count:Q}=this.#J,z=Z;if(typeof z.__signal_exit_emitter__==="object"&&typeof z.__signal_exit_emitter__.count==="number")Q+=z.__signal_exit_emitter__.count;if(X.length===Q){this.unload();let G=this.#J.emit("exit",null,J),Y=J==="SIGHUP"?this.#Z:J;if(!G)Z.kill(Z.pid,Y)}};this.#Y=Z.reallyExit,this.#Q=Z.emit}onExit(Z,J){if(!P6(this.#X))return()=>{};if(this.#z===!1)this.load();let X=J?.alwaysLast?"afterExit":"exit";return this.#J.on(X,Z),()=>{if(this.#J.removeListener(X,Z),this.#J.listeners.exit.length===0&&this.#J.listeners.afterExit.length===0)this.unload()}}load(){if(this.#z)return;this.#z=!0,this.#J.count+=1;for(let Z of L0)try{let J=this.#G[Z];if(J)this.#X.on(Z,J)}catch(J){}this.#X.emit=(Z,...J)=>{return this.#q(Z,...J)},this.#X.reallyExit=(Z)=>{return this.#$(Z)}}unload(){if(!this.#z)return;this.#z=!1,L0.forEach((Z)=>{let J=this.#G[Z];if(!J)throw new Error("Listener not defined for signal: "+Z);try{this.#X.removeListener(Z,J)}catch(X){}}),this.#X.emit=this.#Q,this.#X.reallyExit=this.#Y,this.#J.count-=1}#$(Z){if(!P6(this.#X))return 0;return this.#X.exitCode=Z||0,this.#J.emit("exit",this.#X.exitCode,null),this.#Y.call(this.#X,this.#X.exitCode)}#q(Z,...J){let X=this.#Q;if(Z==="exit"&&P6(this.#X)){if(typeof J[0]==="number")this.#X.exitCode=J[0];let Q=X.call(this.#X,Z,...J);return this.#J.emit("exit",this.#X.exitCode,null),Q}else return X.call(this.#X,Z,...J)}}var b8=globalThis.process,{onExit:yH,load:EF,unload:jF}=kH(P6(b8)?new wX(b8):new OX),h9=E6.stderr.isTTY?E6.stderr:E6.stdout.isTTY?E6.stdout:void 0,hH=h9?_H(()=>{yH(()=>{h9.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},gH=hH,b6=!1,S0={};S0.show=(Z=AX.stderr)=>{if(!Z.isTTY)return;b6=!1,Z.write("\x1B[?25h")};S0.hide=(Z=AX.stderr)=>{if(!Z.isTTY)return;gH(),b6=!0,Z.write("\x1B[?25l")};S0.toggle=(Z,J)=>{if(Z!==void 0)b6=Z;if(b6)S0.show(J);else S0.hide(J)};var g9=S0,j6=J1(m7(),1),I8=10,v9=(Z=0)=>(J)=>`\x1B[${J+Z}m`,f9=(Z=0)=>(J)=>`\x1B[${38+Z};5;${J}m`,x9=(Z=0)=>(J,X,Q)=>`\x1B[${38+Z};2;${J};${X};${Q}m`,F1={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},AF=Object.keys(F1.modifier),vH=Object.keys(F1.color),fH=Object.keys(F1.bgColor),NF=[...vH,...fH];function xH(){let Z=new Map;for(let[J,X]of Object.entries(F1)){for(let[Q,z]of Object.entries(X))F1[Q]={open:`\x1B[${z[0]}m`,close:`\x1B[${z[1]}m`},X[Q]=F1[Q],Z.set(z[0],z[1]);Object.defineProperty(F1,J,{value:X,enumerable:!1})}return Object.defineProperty(F1,"codes",{value:Z,enumerable:!1}),F1.color.close="\x1B[39m",F1.bgColor.close="\x1B[49m",F1.color.ansi=v9(),F1.color.ansi256=f9(),F1.color.ansi16m=x9(),F1.bgColor.ansi=v9(I8),F1.bgColor.ansi256=f9(I8),F1.bgColor.ansi16m=x9(I8),Object.defineProperties(F1,{rgbToAnsi256:{value(J,X,Q){if(J===X&&X===Q){if(J<8)return 16;if(J>248)return 231;return Math.round((J-8)/247*24)+232}return 16+36*Math.round(J/255*5)+6*Math.round(X/255*5)+Math.round(Q/255*5)},enumerable:!1},hexToRgb:{value(J){let X=/[a-f\d]{6}|[a-f\d]{3}/i.exec(J.toString(16));if(!X)return[0,0,0];let[Q]=X;if(Q.length===3)Q=[...Q].map((G)=>G+G).join("");let z=Number.parseInt(Q,16);return[z>>16&255,z>>8&255,z&255]},enumerable:!1},hexToAnsi256:{value:(J)=>F1.rgbToAnsi256(...F1.hexToRgb(J)),enumerable:!1},ansi256ToAnsi:{value(J){if(J<8)return 30+J;if(J<16)return 90+(J-8);let X,Q,z;if(J>=232)X=((J-232)*10+8)/255,Q=X,z=X;else{J-=16;let $=J%36;X=Math.floor(J/36)/5,Q=Math.floor($/6)/5,z=$%6/5}let G=Math.max(X,Q,z)*2;if(G===0)return 30;let Y=30+(Math.round(z)<<2|Math.round(Q)<<1|Math.round(X));if(G===2)Y+=60;return Y},enumerable:!1},rgbToAnsi:{value:(J,X,Q)=>F1.ansi256ToAnsi(F1.rgbToAnsi256(J,X,Q)),enumerable:!1},hexToAnsi:{value:(J)=>F1.ansi256ToAnsi(F1.hexToAnsi256(J)),enumerable:!1}}),F1}var mH=xH(),l1=mH;function h1(Z,J=globalThis.Deno?globalThis.Deno.args:YZ.argv){let X=Z.startsWith("-")?"":Z.length===1?"-":"--",Q=J.indexOf(X+Z),z=J.indexOf("--");return Q!==-1&&(z===-1||Q<z)}var{env:I1}=YZ,k6;if(h1("no-color")||h1("no-colors")||h1("color=false")||h1("color=never"))k6=0;else if(h1("color")||h1("colors")||h1("color=true")||h1("color=always"))k6=1;function dH(){if("FORCE_COLOR"in I1){if(I1.FORCE_COLOR==="true")return 1;if(I1.FORCE_COLOR==="false")return 0;return I1.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(I1.FORCE_COLOR,10),3)}}function cH(Z){if(Z===0)return!1;return{level:Z,hasBasic:!0,has256:Z>=2,has16m:Z>=3}}function pH(Z,{streamIsTTY:J,sniffFlags:X=!0}={}){let Q=dH();if(Q!==void 0)k6=Q;let z=X?k6:Q;if(z===0)return 0;if(X){if(h1("color=16m")||h1("color=full")||h1("color=truecolor"))return 3;if(h1("color=256"))return 2}if("TF_BUILD"in I1&&"AGENT_NAME"in I1)return 1;if(Z&&!J&&z===void 0)return 0;let G=z||0;if(I1.TERM==="dumb")return G;if(YZ.platform==="win32"){let Y=uH.release().split(".");if(Number(Y[0])>=10&&Number(Y[2])>=10586)return Number(Y[2])>=14931?3:2;return 1}if("CI"in I1){if("GITHUB_ACTIONS"in I1||"GITEA_ACTIONS"in I1)return 3;if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((Y)=>(Y in I1))||I1.CI_NAME==="codeship")return 1;return G}if("TEAMCITY_VERSION"in I1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(I1.TEAMCITY_VERSION)?1:0;if(I1.COLORTERM==="truecolor")return 3;if(I1.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in I1){let Y=Number.parseInt((I1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(I1.TERM_PROGRAM){case"iTerm.app":return Y>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(I1.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(I1.TERM))return 1;if("COLORTERM"in I1)return 1;return G}function u9(Z,J={}){let X=pH(Z,{streamIsTTY:Z&&Z.isTTY,...J});return cH(X)}var lH={stdout:u9({isTTY:m9.isatty(1)}),stderr:u9({isTTY:m9.isatty(2)})},nH=lH;function iH(Z,J,X){let Q=Z.indexOf(J);if(Q===-1)return Z;let z=J.length,G=0,Y="";do Y+=Z.slice(G,Q)+J+X,G=Q+z,Q=Z.indexOf(J,G);while(Q!==-1);return Y+=Z.slice(G),Y}function sH(Z,J,X,Q){let z=0,G="";do{let Y=Z[Q-1]==="\r";G+=Z.slice(z,Y?Q-1:Q)+J+(Y?"\r\n":"\n")+X,z=Q+1,Q=Z.indexOf("\n",z)}while(Q!==-1);return G+=Z.slice(z),G}var{stdout:d9,stderr:c9}=nH,k8=Symbol("GENERATOR"),k0=Symbol("STYLER"),r0=Symbol("IS_EMPTY"),p9=["ansi","ansi","ansi256","ansi16m"],y0=Object.create(null),aH=(Z,J={})=>{if(J.level&&!(Number.isInteger(J.level)&&J.level>=0&&J.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let X=d9?d9.level:0;Z.level=J.level===void 0?X:J.level},rH=(Z)=>{let J=(...X)=>X.join(" ");return aH(J,Z),Object.setPrototypeOf(J,Y6.prototype),J};function Y6(Z){return rH(Z)}Object.setPrototypeOf(Y6.prototype,Function.prototype);for(let[Z,J]of Object.entries(l1))y0[Z]={get(){let X=y6(this,h8(J.open,J.close,this[k0]),this[r0]);return Object.defineProperty(this,Z,{value:X}),X}};y0.visible={get(){let Z=y6(this,this[k0],!0);return Object.defineProperty(this,"visible",{value:Z}),Z}};var y8=(Z,J,X,...Q)=>{if(Z==="rgb"){if(J==="ansi16m")return l1[X].ansi16m(...Q);if(J==="ansi256")return l1[X].ansi256(l1.rgbToAnsi256(...Q));return l1[X].ansi(l1.rgbToAnsi(...Q))}if(Z==="hex")return y8("rgb",J,X,...l1.hexToRgb(...Q));return l1[X][Z](...Q)},oH=["rgb","hex","ansi256"];for(let Z of oH){y0[Z]={get(){let{level:X}=this;return function(...Q){let z=h8(y8(Z,p9[X],"color",...Q),l1.color.close,this[k0]);return y6(this,z,this[r0])}}};let J="bg"+Z[0].toUpperCase()+Z.slice(1);y0[J]={get(){let{level:X}=this;return function(...Q){let z=h8(y8(Z,p9[X],"bgColor",...Q),l1.bgColor.close,this[k0]);return y6(this,z,this[r0])}}}}var tH=Object.defineProperties(()=>{},{...y0,level:{enumerable:!0,get(){return this[k8].level},set(Z){this[k8].level=Z}}}),h8=(Z,J,X)=>{let Q,z;if(X===void 0)Q=Z,z=J;else Q=X.openAll+Z,z=J+X.closeAll;return{open:Z,close:J,openAll:Q,closeAll:z,parent:X}},y6=(Z,J,X)=>{let Q=(...z)=>eH(Q,z.length===1?""+z[0]:z.join(" "));return Object.setPrototypeOf(Q,tH),Q[k8]=Z,Q[k0]=J,Q[r0]=X,Q},eH=(Z,J)=>{if(Z.level<=0||!J)return Z[r0]?"":J;let X=Z[k0];if(X===void 0)return J;let{openAll:Q,closeAll:z}=X;if(J.includes("\x1B"))while(X!==void 0)J=iH(J,X.close,X.open),X=X.parent;let G=J.indexOf("\n");if(G!==-1)J=sH(J,z,Q,G);return Q+J+z};Object.defineProperties(Y6.prototype,y0);var ZW=Y6(),TF=Y6({level:c9?c9.level:0}),K0=ZW;function JW(){if(x1.platform!=="win32")return x1.env.TERM!=="linux";return Boolean(x1.env.CI)||Boolean(x1.env.WT_SESSION)||Boolean(x1.env.TERMINUS_SUBLIME)||x1.env.ConEmuTask==="{cmd::Cmder}"||x1.env.TERM_PROGRAM==="Terminus-Sublime"||x1.env.TERM_PROGRAM==="vscode"||x1.env.TERM==="xterm-256color"||x1.env.TERM==="alacritty"||x1.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var XW={info:K0.blue("\u2139"),success:K0.green("\u2714"),warning:K0.yellow("\u26A0"),error:K0.red("\u2716")},QW={info:K0.blue("i"),success:K0.green("\u221A"),warning:K0.yellow("\u203C"),error:K0.red("\xD7")},YW=JW()?XW:QW,A6=YW;function zW({onlyFirst:Z=!1}={}){let X=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(X,Z?void 0:"g")}var GW=zW();function TX(Z){if(typeof Z!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof Z}\``);return Z.replace(GW,"")}function $W(Z){return Z===161||Z===164||Z===167||Z===168||Z===170||Z===173||Z===174||Z>=176&&Z<=180||Z>=182&&Z<=186||Z>=188&&Z<=191||Z===198||Z===208||Z===215||Z===216||Z>=222&&Z<=225||Z===230||Z>=232&&Z<=234||Z===236||Z===237||Z===240||Z===242||Z===243||Z>=247&&Z<=250||Z===252||Z===254||Z===257||Z===273||Z===275||Z===283||Z===294||Z===295||Z===299||Z>=305&&Z<=307||Z===312||Z>=319&&Z<=322||Z===324||Z>=328&&Z<=331||Z===333||Z===338||Z===339||Z===358||Z===359||Z===363||Z===462||Z===464||Z===466||Z===468||Z===470||Z===472||Z===474||Z===476||Z===593||Z===609||Z===708||Z===711||Z>=713&&Z<=715||Z===717||Z===720||Z>=728&&Z<=731||Z===733||Z===735||Z>=768&&Z<=879||Z>=913&&Z<=929||Z>=931&&Z<=937||Z>=945&&Z<=961||Z>=963&&Z<=969||Z===1025||Z>=1040&&Z<=1103||Z===1105||Z===8208||Z>=8211&&Z<=8214||Z===8216||Z===8217||Z===8220||Z===8221||Z>=8224&&Z<=8226||Z>=8228&&Z<=8231||Z===8240||Z===8242||Z===8243||Z===8245||Z===8251||Z===8254||Z===8308||Z===8319||Z>=8321&&Z<=8324||Z===8364||Z===8451||Z===8453||Z===8457||Z===8467||Z===8470||Z===8481||Z===8482||Z===8486||Z===8491||Z===8531||Z===8532||Z>=8539&&Z<=8542||Z>=8544&&Z<=8555||Z>=8560&&Z<=8569||Z===8585||Z>=8592&&Z<=8601||Z===8632||Z===8633||Z===8658||Z===8660||Z===8679||Z===8704||Z===8706||Z===8707||Z===8711||Z===8712||Z===8715||Z===8719||Z===8721||Z===8725||Z===8730||Z>=8733&&Z<=8736||Z===8739||Z===8741||Z>=8743&&Z<=8748||Z===8750||Z>=8756&&Z<=8759||Z===8764||Z===8765||Z===8776||Z===8780||Z===8786||Z===8800||Z===8801||Z>=8804&&Z<=8807||Z===8810||Z===8811||Z===8814||Z===8815||Z===8834||Z===8835||Z===8838||Z===8839||Z===8853||Z===8857||Z===8869||Z===8895||Z===8978||Z>=9312&&Z<=9449||Z>=9451&&Z<=9547||Z>=9552&&Z<=9587||Z>=9600&&Z<=9615||Z>=9618&&Z<=9621||Z===9632||Z===9633||Z>=9635&&Z<=9641||Z===9650||Z===9651||Z===9654||Z===9655||Z===9660||Z===9661||Z===9664||Z===9665||Z>=9670&&Z<=9672||Z===9675||Z>=9678&&Z<=9681||Z>=9698&&Z<=9701||Z===9711||Z===9733||Z===9734||Z===9737||Z===9742||Z===9743||Z===9756||Z===9758||Z===9792||Z===9794||Z===9824||Z===9825||Z>=9827&&Z<=9829||Z>=9831&&Z<=9834||Z===9836||Z===9837||Z===9839||Z===9886||Z===9887||Z===9919||Z>=9926&&Z<=9933||Z>=9935&&Z<=9939||Z>=9941&&Z<=9953||Z===9955||Z===9960||Z===9961||Z>=9963&&Z<=9969||Z===9972||Z>=9974&&Z<=9977||Z===9979||Z===9980||Z===9982||Z===9983||Z===10045||Z>=10102&&Z<=10111||Z>=11094&&Z<=11097||Z>=12872&&Z<=12879||Z>=57344&&Z<=63743||Z>=65024&&Z<=65039||Z===65533||Z>=127232&&Z<=127242||Z>=127248&&Z<=127277||Z>=127280&&Z<=127337||Z>=127344&&Z<=127373||Z===127375||Z===127376||Z>=127387&&Z<=127404||Z>=917760&&Z<=917999||Z>=983040&&Z<=1048573||Z>=1048576&&Z<=1114109}function KW(Z){return Z===12288||Z>=65281&&Z<=65376||Z>=65504&&Z<=65510}function UW(Z){return Z>=4352&&Z<=4447||Z===8986||Z===8987||Z===9001||Z===9002||Z>=9193&&Z<=9196||Z===9200||Z===9203||Z===9725||Z===9726||Z===9748||Z===9749||Z>=9776&&Z<=9783||Z>=9800&&Z<=9811||Z===9855||Z>=9866&&Z<=9871||Z===9875||Z===9889||Z===9898||Z===9899||Z===9917||Z===9918||Z===9924||Z===9925||Z===9934||Z===9940||Z===9962||Z===9970||Z===9971||Z===9973||Z===9978||Z===9981||Z===9989||Z===9994||Z===9995||Z===10024||Z===10060||Z===10062||Z>=10067&&Z<=10069||Z===10071||Z>=10133&&Z<=10135||Z===10160||Z===10175||Z===11035||Z===11036||Z===11088||Z===11093||Z>=11904&&Z<=11929||Z>=11931&&Z<=12019||Z>=12032&&Z<=12245||Z>=12272&&Z<=12287||Z>=12289&&Z<=12350||Z>=12353&&Z<=12438||Z>=12441&&Z<=12543||Z>=12549&&Z<=12591||Z>=12593&&Z<=12686||Z>=12688&&Z<=12773||Z>=12783&&Z<=12830||Z>=12832&&Z<=12871||Z>=12880&&Z<=42124||Z>=42128&&Z<=42182||Z>=43360&&Z<=43388||Z>=44032&&Z<=55203||Z>=63744&&Z<=64255||Z>=65040&&Z<=65049||Z>=65072&&Z<=65106||Z>=65108&&Z<=65126||Z>=65128&&Z<=65131||Z>=94176&&Z<=94180||Z===94192||Z===94193||Z>=94208&&Z<=100343||Z>=100352&&Z<=101589||Z>=101631&&Z<=101640||Z>=110576&&Z<=110579||Z>=110581&&Z<=110587||Z===110589||Z===110590||Z>=110592&&Z<=110882||Z===110898||Z>=110928&&Z<=110930||Z===110933||Z>=110948&&Z<=110951||Z>=110960&&Z<=111355||Z>=119552&&Z<=119638||Z>=119648&&Z<=119670||Z===126980||Z===127183||Z===127374||Z>=127377&&Z<=127386||Z>=127488&&Z<=127490||Z>=127504&&Z<=127547||Z>=127552&&Z<=127560||Z===127568||Z===127569||Z>=127584&&Z<=127589||Z>=127744&&Z<=127776||Z>=127789&&Z<=127797||Z>=127799&&Z<=127868||Z>=127870&&Z<=127891||Z>=127904&&Z<=127946||Z>=127951&&Z<=127955||Z>=127968&&Z<=127984||Z===127988||Z>=127992&&Z<=128062||Z===128064||Z>=128066&&Z<=128252||Z>=128255&&Z<=128317||Z>=128331&&Z<=128334||Z>=128336&&Z<=128359||Z===128378||Z===128405||Z===128406||Z===128420||Z>=128507&&Z<=128591||Z>=128640&&Z<=128709||Z===128716||Z>=128720&&Z<=128722||Z>=128725&&Z<=128727||Z>=128732&&Z<=128735||Z===128747||Z===128748||Z>=128756&&Z<=128764||Z>=128992&&Z<=129003||Z===129008||Z>=129292&&Z<=129338||Z>=129340&&Z<=129349||Z>=129351&&Z<=129535||Z>=129648&&Z<=129660||Z>=129664&&Z<=129673||Z>=129679&&Z<=129734||Z>=129742&&Z<=129756||Z>=129759&&Z<=129769||Z>=129776&&Z<=129784||Z>=131072&&Z<=196605||Z>=196608&&Z<=262141}function BW(Z){if(!Number.isSafeInteger(Z))throw new TypeError(`Expected a code point, got \`${typeof Z}\`.`)}function HW(Z,{ambiguousAsWide:J=!1}={}){if(BW(Z),KW(Z)||UW(Z)||J&&$W(Z))return 2;return 1}var WW=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g},qW=new Intl.Segmenter,MW=/^\p{Default_Ignorable_Code_Point}$/u;function FW(Z,J={}){if(typeof Z!=="string"||Z.length===0)return 0;let{ambiguousIsNarrow:X=!0,countAnsiEscapeCodes:Q=!1}=J;if(!Q)Z=TX(Z);if(Z.length===0)return 0;let z=0,G={ambiguousAsWide:!X};for(let{segment:Y}of qW.segment(Z)){let $=Y.codePointAt(0);if($<=31||$>=127&&$<=159)continue;if($>=8203&&$<=8207||$===65279)continue;if($>=768&&$<=879||$>=6832&&$<=6911||$>=7616&&$<=7679||$>=8400&&$<=8447||$>=65056&&$<=65071)continue;if($>=55296&&$<=57343)continue;if($>=65024&&$<=65039)continue;if(MW.test(Y))continue;if(WW().test(Y)){z+=2;continue}z+=HW($,G)}return z}function RW({stream:Z=process.stdout}={}){return Boolean(Z&&Z.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}function VW(){let{env:Z}=l9,{TERM:J,TERM_PROGRAM:X}=Z;if(l9.platform!=="win32")return J!=="linux";return Boolean(Z.WT_SESSION)||Boolean(Z.TERMINUS_SUBLIME)||Z.ConEmuTask==="{cmd::Cmder}"||X==="Terminus-Sublime"||X==="vscode"||J==="xterm-256color"||J==="alacritty"||J==="rxvt-unicode"||J==="rxvt-unicode-256color"||Z.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var IW=3;class LX{#Z=0;start(){if(this.#Z++,this.#Z===1)this.#J()}stop(){if(this.#Z<=0)throw new Error("`stop` called more times than `start`");if(this.#Z--,this.#Z===0)this.#X()}#J(){if(d1.platform==="win32"||!d1.stdin.isTTY)return;d1.stdin.setRawMode(!0),d1.stdin.on("data",this.#Q),d1.stdin.resume()}#X(){if(!d1.stdin.isTTY)return;d1.stdin.off("data",this.#Q),d1.stdin.pause(),d1.stdin.setRawMode(!1)}#Q(Z){if(Z[0]===IW)d1.emit("SIGINT")}}var EW=new LX,n9=EW,CF=J1(m7(),1);class jW{#Z=0;#J=!1;#X=0;#Q=0;#Y;#G;#z;#$;#q;#B;#H;#W;#F;#K;#U;color;constructor(Z){if(typeof Z==="string")Z={text:Z};if(this.#Y={color:"cyan",stream:I6.stderr,discardStdin:!0,hideCursor:!0,...Z},this.color=this.#Y.color,this.spinner=this.#Y.spinner,this.#q=this.#Y.interval,this.#z=this.#Y.stream,this.#B=typeof this.#Y.isEnabled==="boolean"?this.#Y.isEnabled:RW({stream:this.#z}),this.#H=typeof this.#Y.isSilent==="boolean"?this.#Y.isSilent:!1,this.text=this.#Y.text,this.prefixText=this.#Y.prefixText,this.suffixText=this.#Y.suffixText,this.indent=this.#Y.indent,I6.env.NODE_ENV==="test")this._stream=this.#z,this._isEnabled=this.#B,Object.defineProperty(this,"_linesToClear",{get(){return this.#Z},set(J){this.#Z=J}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#Q}}),Object.defineProperty(this,"_lineCount",{get(){return this.#X}})}get indent(){return this.#W}set indent(Z=0){if(!(Z>=0&&Number.isInteger(Z)))throw new Error("The `indent` option must be an integer from 0 and up");this.#W=Z,this.#M()}get interval(){return this.#q??this.#G.interval??100}get spinner(){return this.#G}set spinner(Z){if(this.#Q=0,this.#q=void 0,typeof Z==="object"){if(Z.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#G=Z}else if(!VW())this.#G=j6.default.line;else if(Z===void 0)this.#G=j6.default.dots;else if(Z!=="default"&&j6.default[Z])this.#G=j6.default[Z];else throw new Error(`There is no built-in spinner named '${Z}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#F}set text(Z=""){this.#F=Z,this.#M()}get prefixText(){return this.#K}set prefixText(Z=""){this.#K=Z,this.#M()}get suffixText(){return this.#U}set suffixText(Z=""){this.#U=Z,this.#M()}get isSpinning(){return this.#$!==void 0}#R(Z=this.#K,J=" "){if(typeof Z==="string"&&Z!=="")return Z+J;if(typeof Z==="function")return Z()+J;return""}#V(Z=this.#U,J=" "){if(typeof Z==="string"&&Z!=="")return J+Z;if(typeof Z==="function")return J+Z();return""}#M(){let Z=this.#z.columns??80,J=this.#R(this.#K,"-"),X=this.#V(this.#U,"-"),Q=" ".repeat(this.#W)+J+"--"+this.#F+"--"+X;this.#X=0;for(let z of TX(Q).split("\n"))this.#X+=Math.max(1,Math.ceil(FW(z,{countAnsiEscapeCodes:!0})/Z))}get isEnabled(){return this.#B&&!this.#H}set isEnabled(Z){if(typeof Z!=="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#B=Z}get isSilent(){return this.#H}set isSilent(Z){if(typeof Z!=="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#H=Z}frame(){let{frames:Z}=this.#G,J=Z[this.#Q];if(this.color)J=NH[this.color](J);this.#Q=++this.#Q%Z.length;let X=typeof this.#K==="string"&&this.#K!==""?this.#K+" ":"",Q=typeof this.text==="string"?" "+this.text:"",z=typeof this.#U==="string"&&this.#U!==""?" "+this.#U:"";return X+J+Q+z}clear(){if(!this.#B||!this.#z.isTTY)return this;this.#z.cursorTo(0);for(let Z=0;Z<this.#Z;Z++){if(Z>0)this.#z.moveCursor(0,-1);this.#z.clearLine(1)}if(this.#W||this.lastIndent!==this.#W)this.#z.cursorTo(this.#W);return this.lastIndent=this.#W,this.#Z=0,this}render(){if(this.#H)return this;return this.clear(),this.#z.write(this.frame()),this.#Z=this.#X,this}start(Z){if(Z)this.text=Z;if(this.#H)return this;if(!this.#B){if(this.text)this.#z.write(`- ${this.text}\n`);return this}if(this.isSpinning)return this;if(this.#Y.hideCursor)g9.hide(this.#z);if(this.#Y.discardStdin&&I6.stdin.isTTY)this.#J=!0,n9.start();return this.render(),this.#$=setInterval(this.render.bind(this),this.interval),this}stop(){if(!this.#B)return this;if(clearInterval(this.#$),this.#$=void 0,this.#Q=0,this.clear(),this.#Y.hideCursor)g9.show(this.#z);if(this.#Y.discardStdin&&I6.stdin.isTTY&&this.#J)n9.stop(),this.#J=!1;return this}succeed(Z){return this.stopAndPersist({symbol:A6.success,text:Z})}fail(Z){return this.stopAndPersist({symbol:A6.error,text:Z})}warn(Z){return this.stopAndPersist({symbol:A6.warning,text:Z})}info(Z){return this.stopAndPersist({symbol:A6.info,text:Z})}stopAndPersist(Z={}){if(this.#H)return this;let J=Z.prefixText??this.#K,X=this.#R(J," "),Q=Z.symbol??" ",z=Z.text??this.text,G=typeof z==="string"?" "+z:"",Y=Z.suffixText??this.#U,$=this.#V(Y," "),K=X+Q+G+$+"\n";return this.stop(),this.#z.write(K),this}}function i9(Z){if(Array.isArray(Z))return[...Z];return{...Z}}function NW(Z){if(Array.isArray(Z))return Z;return[Z]}function E8(Z,...J){NW(J).forEach((X)=>{delete Z[X]})}var $0=(Z)=>Array.isArray(Z);function t1(Z){return typeof Z==="object"&&!Array.isArray(Z)&&Z!==null}var D1=(Z)=>typeof Z==="function";function T0(Z,J){try{return J.split(".").reduce((X,Q)=>X[Q],Z)}catch(X){return Z}}function p0(Z){if(Array.isArray(Z))return[...Z];if("all"in Z&&typeof Z.all==="function")return Z.all();return Object.values(Z)}function PW(Z){return new Q1(Z)}class Q1{items;constructor(Z=[]){this.items=Z}[Symbol.iterator]=wW;toJSON(){return this.items}all(){return this.items}average(Z){if(Z===void 0)return this.sum()/Number(this.items.length);if(D1(Z))return Number(new this.constructor(this.items).sum(Z))/Number(this.items.length);return Number(new this.constructor(this.items).pluck(Z).sum())/Number(this.items.length)}avg=this.average;chunk(Z){let J=[],X=Array.isArray(this.items)?this.items:Object.values(this.items);for(let Q=0;Q<X.length;Q+=Z)J.push(X.slice(Q,Q+Z));return new Q1(J)}collapse(){return new this.constructor([].concat(...this.items))}combine(Z){if(typeof Z==="string")Z=[Z];if(!Array.isArray(Z))throw new TypeError("The values must be an array or a string");let J={};return(Array.isArray(this.items)?this.items:Object.keys(this.items)).forEach((Q,z)=>{if(Z[z]!==void 0)J[Q]=Z[z]}),new Q1(J)}concat(Z){let J=Z;if(Z instanceof this.constructor)J=Z.all();else if(typeof Z==="object")J=[],Object.keys(Z).forEach((Q)=>{J.push(Z[Q])});let X=i9(this.items);return J.forEach((Q)=>{if(typeof Q==="object")Object.keys(Q).forEach((z)=>X.push(Q[z]));else X.push(Q)}),new this.constructor(X)}contains(Z,J){if(typeof Z==="function")return this.items.some(Z);if(Array.isArray(this.items))return this.items.includes(Z);if(J!==void 0){if(Array.isArray(this.items))return this.items.some((X)=>X[Z]!==void 0&&X[Z]===J);return Z in this.items&&this.items[Z]===J}if(Array.isArray(this.items))return this.items.includes(Z);return Object.values(this.items).includes(Z)}containsOneItem(){if(typeof this.items==="string")return!0;return Object.keys(this.items).length===1}count(Z){if(Z)return this.filter(Z).count();return Object.keys(this.items).length}countBy(Z){let J={};return this.each((X)=>{let Q=Z?Z(X):X;J[Q]=(J[Q]||0)+1}),new Q1(J)}crossJoin(...Z){function J(X,Q,z){let G=z[0];if(G instanceof Q1)G=G.all();let Y=z.slice(1),$=!Y.length,K=[];for(let U=0;U<G.length;U+=1){let H=X.slice();if(H.push(G[U]),$)K.push(H);else K=K.concat(J(H,Q,Y))}return K}return new this.constructor(J([],this.constructor,[].concat([this.items],Z)))}dd(){console.log(JSON.stringify(this.all(),null,2)),AW.exit()}diff(Z){let J;if(Z instanceof this.constructor)J=Z.all();else J=Z;let X=this.items.filter((Q)=>!J.includes(Q));return new this.constructor(X)}diffAssoc(Z){let J=Z;if(Z instanceof this.constructor)J=Z.all();let X={};return Object.keys(this.items).forEach((Q)=>{if(J[Q]===void 0||J[Q]!==this.items[Q])X[Q]=this.items[Q]}),new this.constructor(X)}diffKeys(Z){let J;if(Z instanceof this.constructor)J=Z.all();else J=Z;let X=Object.keys(J),Q=Object.keys(this.items).filter((z)=>!X.includes(z));return new this.constructor(this.items).only(Q)}diffUsing(Z,J){if(console.log("Original collection:",this.items),console.log("Array to compare:",Z),Z===null)return new Q1(this.items);let X=this.items.filter((Q)=>{return Z.findIndex((G)=>{return J(Q,G)===0})===-1});return new Q1(X)}doesntContain(Z,J){if(console.log("doesntContain called with:",{key:Z,value:J}),typeof Z==="function")return console.log("Function branch"),!this.contains(Z);if(J!==void 0)return console.log("Key-value pair branch"),!this.contains((X)=>{return console.log("Comparing:",X[Z],"with",J),X[Z]===J});return console.log("Single value branch"),!this.contains(Z)}dump(){return console.log(this.items),this}duplicates(){let Z=[],J={},X=(Q)=>{if(Array.isArray(Q)||typeof Q==="object")return JSON.stringify(Q);return Q};if(Array.isArray(this.items))this.items.forEach((Q,z)=>{let G=X(Q);if(!Z.includes(G))Z.push(G);else J[z]=Q});else if(typeof this.items==="object")Object.keys(this.items).forEach((Q)=>{let z=X(this.items[Q]);if(!Z.includes(z))Z.push(z);else J[Q]=this.items[Q]});return new this.constructor(J)}each(Z){let J=!1;if(Array.isArray(this.items)){let{length:X}=this.items;for(let Q=0;Q<X&&!J;Q+=1)J=Z(this.items[Q],Q,this.items)===!1}else{let X=Object.keys(this.items),{length:Q}=X;for(let z=0;z<Q&&!J;z+=1){let G=X[z];J=Z(this.items[G],G,this.items)===!1}}return this}eachSpread(Z){return this.each((J,X)=>{Z(...J,X)}),this}every(Z){return p0(this.items).every(Z)}except(Z){let J={...this.items};return(Array.isArray(Z)?Z:[Z]).forEach((Q)=>delete J[Q]),new Q1(J)}filter(Z){if(console.log("Filter method called with callback:",Z),console.log("Current items:",this.items),typeof Z!=="function"){console.log("No callback provided, removing falsy values");let X=this.items.filter((Q)=>{return console.log("Filtering item:",Q),Boolean(Q)});return console.log("Filtered items:",X),new Q1(X)}let J=this.items.filter((X,Q)=>{return console.log("Filtering item:",X,"at index:",Q),Z(X,Q)});return console.log("Filtered items:",J),new Q1(J)}first(Z,J){if(D1(Z)){let X=Object.keys(this.items);for(let Q=0;Q<X.length;Q+=1){let z=X[Q],G=this.items[z];if(Z(G,z))return G}if(D1(J))return J();return J}if(Array.isArray(this.items)&&this.items.length||Object.keys(this.items).length){if(Array.isArray(this.items))return this.items[0];let X=Object.keys(this.items)[0];return this.items[X]}if(D1(J))return J();return J}firstOrFail(Z){let J=this.items.find(Z||(()=>!0));if(J===void 0)throw new Error("Item not found.");return J}firstWhere(Z,J,X){return this.where(Z,J,X).first()||null}flatMap(Z){return this.map(Z).collapse()}flatten(Z=Number.POSITIVE_INFINITY){let J=(X,Q)=>{if(!Array.isArray(X)&&typeof X!=="object")return[X];return Q>0?Object.values(X).reduce((z,G)=>z.concat(Array.isArray(G)||typeof G==="object"?J(G,Q-1):G),[]):Array.isArray(X)?[...X]:[X]};return new Q1(J(this.items,Z))}flip(){let Z={};if(Array.isArray(this.items))this.items.forEach((J,X)=>{Z[J]=X});else Object.entries(this.items).forEach(([J,X])=>{Z[X]=J});return new this.constructor(Z)}forPage(Z,J){let X={};if(Array.isArray(this.items))X=this.items.slice(Z*J-J,Z*J);else Object.keys(this.items).slice(Z*J-J,Z*J).forEach((Q)=>{X[Q]=this.items[Q]});return new this.constructor(X)}forget(Z){if(Array.isArray(this.items))this.items=this.items.filter((J,X)=>X!==Number.parseInt(Z,10));else if(typeof this.items==="object"&&this.items!==null)delete this.items[Z];return this}get(Z,J=null){if(Array.isArray(this.items))return this.items[Z]??J;return this.items[Z]??J}groupBy(Z){let J={};return this.each((X,Q)=>{let z=typeof Z==="function"?Z(X):X[Z];if(!(z in J))J[z]=new Q1;J[z].push(X)}),new Q1(J)}has(Z){if(Array.isArray(this.items))return Z in this.items;return Z in this.items}implode(Z,J){if(J===void 0)return this.items.join(Z);return new this.constructor(this.items).pluck(Z).all().join(J)}includes(Z){if(Array.isArray(this.items))return this.items.includes(Z);return Object.values(this.items).includes(Z)}intersect(Z){let J=Z;if(Z instanceof this.constructor)J=Z.all();let X=this.items.filter((Q)=>J.includes(Q));return new this.constructor(X)}intersectByKeys(Z){let J=Object.keys(Z);if(Z instanceof this.constructor)J=Object.keys(Z.all());let X={};return Object.keys(this.items).forEach((Q)=>{if(J.includes(Q))X[Q]=this.items[Q]}),new this.constructor(X)}isEmpty(){return this.count()===0}isNotEmpty(){return!this.isEmpty()}join(Z,J){let X=this.values();if(J===void 0)return X.implode(Z);let Q=X.count();if(Q===0)return"";if(Q===1)return X.last();let z=X.pop();return X.implode(Z)+J+z}keyBy(Z){let J={};if(D1(Z))this.items.forEach((X)=>{J[Z(X)]=X});else this.items.forEach((X)=>{let Q=T0(X,Z);J[Q||""]=X});return new this.constructor(J)}keys(){return new Q1(Object.keys(this.items))}last(Z,J){let{items:X}=this;if(D1(Z))X=this.filter(Z).all();if(Array.isArray(X)&&!X.length||!Object.keys(X).length){if(D1(J))return J();return J}if(Array.isArray(X))return X[X.length-1];let Q=Object.keys(X);return X[Q[Q.length-1]]}macro(Z,J){this.constructor.prototype[Z]=J}make(Z=[]){return new this.constructor(Z)}map(Z){if(Array.isArray(this.items))return new this.constructor(this.items.map(Z));let J={};return Object.keys(this.items).forEach((X)=>{J[X]=Z(this.items[X],Number(X))}),new this.constructor(J)}mapSpread(Z){return this.map((J,X)=>Z(...J,X))}mapToDictionary(Z){let J={};return this.items.forEach((X,Q)=>{let[z,G]=Z(X,Q);if(J[z]===void 0)J[z]=[G];else J[z].push(G)}),new this.constructor(J)}mapInto(Z){return this.map((J,X)=>new Z(J,X))}mapToGroups(Z){let J={};return this.items.forEach((X,Q)=>{let[z,G]=Z(X,Q);if(J[z]===void 0)J[z]=[G];else J[z].push(G)}),new this.constructor(J)}mapWithKeys(Z){let J={};if(Array.isArray(this.items))this.items.forEach((X,Q)=>{let[z,G]=Z(X,Q);J[z]=G});else Object.keys(this.items).forEach((X)=>{let[Q,z]=Z(this.items[X],Number(X));J[Q]=z});return new this.constructor(J)}max(Z){if(typeof Z==="string"){let J=this.items.filter((X)=>X[Z]!==void 0);return Math.max(...J.map((X)=>X[Z]))}return Math.max(...this.items)}median(Z){let{length:J}=this.items;if(Z===void 0){if(J%2===0)return(this.items[J/2-1]+this.items[J/2])/2;return this.items[Math.floor(J/2)]}if(J%2===0)return(this.items[J/2-1][Z]+this.items[J/2][Z])/2;return this.items[Math.floor(J/2)][Z]}merge(Z){let J={...this.items,...Z};return new Q1(J)}mergeRecursive(Z){let J=(X,Q)=>{let z={};return Object.keys({...X,...Q}).forEach((Y)=>{if(X[Y]===void 0&&Q[Y]!==void 0)z[Y]=Q[Y];else if(X[Y]!==void 0&&Q[Y]===void 0)z[Y]=X[Y];else if(X[Y]!==void 0&&Q[Y]!==void 0)if(X[Y]===Q[Y])z[Y]=X[Y];else if(!Array.isArray(X[Y])&&typeof X[Y]==="object"&&!Array.isArray(Q[Y])&&typeof Q[Y]==="object")z[Y]=J(X[Y],Q[Y]);else z[Y]=[].concat(X[Y],Q[Y])}),z};if(!Z)return this;if(Z.constructor.name==="Collection")return new this.constructor(J(this.items,Z.all()));return new this.constructor(J(this.items,Z))}min(Z){if(Z!==void 0){let J=this.items.filter((X)=>X[Z]!==void 0);return Math.min(...J.map((X)=>X[Z]))}return Math.min(...this.items)}mode(Z){let J=[],X=1;if(!this.items.length)return null;return this.items.forEach((Q)=>{let z=J.filter((G)=>{if(Z!==void 0)return G.key===Q[Z];return G.key===Q});if(!z.length)if(Z!==void 0)J.push({key:Q[Z],count:1});else J.push({key:Q,count:1});else{z[0].count+=1;let{count:G}=z[0];if(G>X)X=G}}),J.filter((Q)=>Q.count===X).map((Q)=>Q.key)}nth(Z,J=0){let Q=p0(this.items).slice(J).filter((z,G)=>G%Z===0);return new this.constructor(Q)}only(Z){let J={};return Z.forEach((X)=>{if(X in this.items)J[X]=this.items[X]}),new Q1(J)}pad(Z,J){let X=Math.abs(Z),Q=this.count();if(X<=Q)return this;let z=X-Q,G=i9(this.items),Y=Array.isArray(this.items),$=Z<0;for(let K=0;K<z;){if(!Y)if(G[K]!==void 0)z+=1;else G[K]=J;else if($)G.unshift(J);else G.push(J);K+=1}return new this.constructor(G)}partition(Z){let J;if(Array.isArray(this.items))J=[new this.constructor([]),new this.constructor([])],this.items.forEach((X)=>{if(Z(X)===!0)J[0].push(X);else J[1].push(X)});else J=[new this.constructor({}),new this.constructor({})],Object.keys(this.items).forEach((X)=>{let Q=this.items[X];if(Z(Q)===!0)J[0].put(X,Q);else J[1].put(X,Q)});return new this.constructor(J)}pipe(Z){return Z(this)}pluck(Z,J){if(Z.includes("*")){let X=OW(this.items),Q=[];if(J!==void 0){let $=new RegExp(`0.${J}`,"g"),K=`0.${J}`.split(".").length;Object.keys(X).forEach((U)=>{let H=U.match($);if(H){let B=H[0];if(B.split(".").length===K)Q.push(X[B])}})}let z=[],G=new RegExp(`0.${Z}`,"g"),Y=`0.${Z}`.split(".").length;if(Object.keys(X).forEach(($)=>{let K=$.match(G);if(K){let U=K[0];if(U.split(".").length===Y)z.push(X[U])}}),J!==void 0){let $={};return this.items.forEach((K,U)=>{$[Q[U]||""]=z}),new this.constructor($)}return new this.constructor([z])}if(J!==void 0){let X={};return this.items.forEach((Q)=>{if(T0(Q,Z)!==void 0)X[Q[J]||""]=T0(Q,Z);else X[Q[J]||""]=null}),new this.constructor(X)}return this.map((X)=>{if(T0(X,Z)!==void 0)return T0(X,Z);return null})}pop(Z=1){if(this.isEmpty())return null;if($0(this.items)){if(Z===1)return this.items.pop();return new this.constructor(this.items.splice(-Z))}if(t1(this.items)){let J=Object.keys(this.items);if(Z===1){let z=J[J.length-1],G=this.items[z];return E8(this.items,z),G}let X=J.slice(-Z),Q=X.reduce((z,G)=>{return z[G]=this.items[G],z},{});return E8(this.items,X),new this.constructor(Q)}return null}prepend(Z,J){if(J!==void 0)return this.put(J,Z);return this.items.unshift(Z),this}pull(Z,J=null){if(Array.isArray(this.items)){let Q=Number(Z);if(Number.isNaN(Q))return J;let z=this.items[Q];return this.items.splice(Q,1),z??J}let X=this.items[Z];return delete this.items[Z],X??J}push(...Z){return this.items=[...this.items,...Z],this}put(Z,J){return this.items[Z]=J,this}random(Z=null){let J=p0(this.items),X=new this.constructor(J).shuffle();if(Z!==Number.parseInt(Z,10))return X.first();return X.take(Z)}reduce(Z,J){let X=null;if(J!==void 0)X=J;if(Array.isArray(this.items))this.items.forEach((Q)=>{X=Z(X,Q)});else Object.keys(this.items).forEach((Q)=>{X=Z(X,this.items[Q],Q)});return X}reject(Z){return new this.constructor(this.items).filter((J)=>!Z(J))}replace(Z){if(!Z)return this;if(Array.isArray(Z)){let X=this.items.map((Q,z)=>Z[z]||Q);return new this.constructor(X)}if(Z.constructor.name==="Collection"){let X={...this.items,...Z.all()};return new this.constructor(X)}let J={...this.items,...Z};return new this.constructor(J)}replaceRecursive(Z){let J=(X,Q)=>{let z={...X};return Object.keys({...X,...Q}).forEach((Y)=>{if(!Array.isArray(Q[Y])&&typeof Q[Y]==="object")z[Y]=J(X[Y],Q[Y]);else if(X[Y]===void 0&&Q[Y]!==void 0)if(typeof X[Y]==="object")z[Y]={...Q[Y]};else z[Y]=Q[Y];else if(X[Y]!==void 0&&Q[Y]===void 0)if(typeof X[Y]==="object")z[Y]={...X[Y]};else z[Y]=X[Y];else if(X[Y]!==void 0&&Q[Y]!==void 0)if(typeof Q[Y]==="object")z[Y]={...Q[Y]};else z[Y]=Q[Y]}),z};if(!Z)return this;if(!Array.isArray(Z)&&typeof Z!=="object")return new this.constructor(J(this.items,[Z]));if(Z.constructor.name==="Collection")return new this.constructor(J(this.items,Z.all()));return new this.constructor(J(this.items,Z))}reverse(){let Z=[].concat(this.items).reverse();return new this.constructor(Z)}search(Z,J){let X,Q=(z,G)=>{if(D1(Z))return Z(this.items[G],G);if(J)return this.items[G]===Z;return this.items[G]==Z};if($0(this.items))X=this.items.findIndex(Q);else if(t1(this.items))X=Object.keys(this.items).find((z)=>Q(this.items[z],z));if(X===void 0||X<0)return!1;return X}shift(Z=1){if(this.isEmpty())return null;if($0(this.items)){if(Z===1)return this.items.shift();return new this.constructor(this.items.splice(0,Z))}if(t1(this.items)){if(Z===1){let z=Object.keys(this.items)[0],G=this.items[z];return delete this.items[z],G}let X=Object.keys(this.items).slice(0,Z),Q=X.reduce((z,G)=>{return z[G]=this.items[G],z},{});return E8(this.items,X),new this.constructor(Q)}return null}shuffle(){let Z=p0(this.items),J,X,Q;for(Q=Z.length;Q;Q-=1)J=Math.floor(Math.random()*Q),X=Z[Q-1],Z[Q-1]=Z[J],Z[J]=X;return this.items=Z,this}skip(Z){if(t1(this.items))return new this.constructor(Object.keys(this.items).reduce((J,X,Q)=>{if(Q+1>Z)J[X]=this.items[X];return J},{}));return new this.constructor(this.items.slice(Z))}skipUntil(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!0)J=Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!0)J=Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}skipWhile(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!0)J=!Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!0)J=!Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}slice(Z,J){let X=this.items.slice(Z);if(J!==void 0)X=X.slice(0,J);return new this.constructor(X)}sole(){if(this.items.length!==1)throw new Error("Collection does not contain exactly one item.");return this.items[0]}some(Z){return this.items.some((J)=>J.hasOwnProperty(Z))}sort(Z){let J=[].concat(this.items);if(Z===void 0)if(this.every((X)=>typeof X==="number"))J.sort((X,Q)=>X-Q);else J.sort();else J.sort(Z);return new this.constructor(J)}sortDesc(){return this.sort().reverse()}sortBy(Z){let J=[].concat(this.items),X=(Q)=>{if(D1(Z))return Z(Q);return T0(Q,Z)};return J.sort((Q,z)=>{let G=X(Q),Y=X(z);if(G===null||G===void 0)return 1;if(Y===null||Y===void 0)return-1;if(G<Y)return-1;if(G>Y)return 1;return 0}),new this.constructor(J)}sortByDesc(Z){return this.sortBy(Z).reverse()}sortKeys(){let Z={};return Object.keys(this.items).sort().forEach((J)=>{Z[J]=this.items[J]}),new this.constructor(Z)}sortKeysDesc(){let Z={};return Object.keys(this.items).sort().reverse().forEach((J)=>{Z[J]=this.items[J]}),new this.constructor(Z)}splice(Z,J,X){let Q=this.slice(Z,J);if(this.items=this.diff(Q.all()).all(),Array.isArray(X))for(let z=0,{length:G}=X;z<G;z+=1)this.items.splice(Z+z,0,X[z]);return Q}split(Z){let J=this.toArray(),X=[],Q=Math.ceil(J.length/Z);for(let z=0;z<J.length;z+=Q)X.push(J.slice(z,z+Q));return new Q1(X)}sum(Z){let J=p0(this.items),X=0;if(Z===void 0)for(let Q=0,{length:z}=J;Q<z;Q+=1)X+=Number.parseFloat(J[Q]);else if(D1(Z))for(let Q=0,{length:z}=J;Q<z;Q+=1)X+=Number.parseFloat(Z(J[Q]));else for(let Q=0,{length:z}=J;Q<z;Q+=1)X+=Number.parseFloat(J[Q][Z]);return Number.parseFloat(X.toPrecision(12))}take(Z){if(!Array.isArray(this.items)&&typeof this.items==="object"){let J=Object.keys(this.items),X;if(Z<0)X=J.slice(Z);else X=J.slice(0,Z);let Q={};return J.forEach((z)=>{if(X.includes(z))Q[z]=this.items[z]}),new this.constructor(Q)}if(Z<0)return new this.constructor(this.items.slice(Z));return new this.constructor(this.items.slice(0,Z))}takeUntil(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!1)J=!Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!1)J=!Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}takeWhile(Z){let J=null,X,Q=(z)=>z===Z;if(D1(Z))Q=Z;if($0(this.items))X=this.items.filter((z)=>{if(J!==!1)J=Q(z);return J});if(t1(this.items))X=Object.keys(this.items).reduce((z,G)=>{if(J!==!1)J=Q(this.items[G]);if(J!==!1)z[G]=this.items[G];return z},{});return new this.constructor(X)}tap(Z){return Z(this),this}times(Z,J){for(let X=1;X<=Z;X+=1)this.items.push(J(X));return this}toArray(){return Array.isArray(this.items)?this.items:Object.values(this.items)}toJson(){return JSON.stringify(this.items)}transform(Z){if(Array.isArray(this.items))this.items=this.items.map(Z);else{let J={};Object.keys(this.items).forEach((X)=>{J[X]=Z(this.items[X],X)}),this.items=J}return this}undot(){if(Array.isArray(this.items))return this;let Z={};return Object.keys(this.items).forEach((J)=>{if(J.includes(".")){let X=Z;J.split(".").reduce((Q,z,G,Y)=>{if(!Q[z])Q[z]={};if(G===Y.length-1)Q[z]=this.items[J];return Q[z]},X),Z={...Z,...X}}else Z[J]=this.items[J]}),new this.constructor(Z)}unless(Z,J,X){if(!Z)return J(this);if(X)return X();return}unlessEmpty(Z){if(!this.isEmpty())Z(this);return this}unlessNotEmpty(Z){if(this.isEmpty())Z(this);return this}union(Z){let J=JSON.parse(JSON.stringify(this.items));return Object.keys(Z).forEach((X)=>{if(this.items[X]===void 0)J[X]=Z[X]}),new this.constructor(J)}unique(){let Z=Array.from(new Set(this.items));return new this.constructor(Z)}unwrap(){return this.items}values(){return new Q1(Object.values(this.items))}when(Z,J,X){if(Z)J(this,Z);else if(X)X();return this}whenEmpty(Z,J){if(Array.isArray(this.items)&&!this.items.length)return Z(this);if(!Object.keys(this.items).length)return Z(this);if(J!==void 0){if(Array.isArray(this.items)&&this.items.length)return J(this);if(Object.keys(this.items).length)return J(this)}return this}whenNotEmpty(Z,J){if(Array.isArray(this.items)&&this.items.length)return Z(this);if(Object.keys(this.items).length)return Z(this);if(J!==void 0){if(Array.isArray(this.items)&&!this.items.length)return J(this);if(!Object.keys(this.items).length)return J(this)}return this}where(Z,J,X){if(arguments.length===1)return new Q1(this.items.filter((z)=>z[Z]!==void 0));if(arguments.length===2)X=J,J="===";let Q=(z,G,Y,$)=>{let K=z[G];switch($){case"===":return K===Y;case"!==":return K!==Y;case"<":return K<Y;case"<=":return K<=Y;case">":return K>Y;case">=":return K>=Y;default:return K==Y}};return new Q1(this.items.filter((z)=>Q(z,Z,X,J)))}whereBetween(Z,J){return this.filter((X)=>{let Q=typeof X==="object"?X[Z]:X;return Q>=J[0]&&Q<=J[1]})}whereIn(Z,J){return this.filter((X)=>{let Q=typeof X==="object"?X[Z]:X;return J.includes(Q)})}whereNotBetween(Z,J){return this.filter((X)=>{let Q=typeof X==="object"?X[Z]:X;return Q<J[0]||Q>J[1]})}whereNotIn(Z,J){let X=this.items.filter((Q)=>{let z=Z.split("."),G=Q;for(let Y of z){if(G[Y]===void 0)return!0;G=G[Y]}return!J.includes(G)});return new Q1(X)}getNestedValue(Z,J){return J.split(".").reduce((Q,z)=>Q&&Q[z]!==void 0?Q[z]:null,Z)}whereInstanceOf(Z){return this.filter((J)=>J instanceof Z)}whereNotNull(Z){return this.where(Z,"!==",null)}whereNull(Z){return this.where(Z,"===",null)}static wrap(Z){if(Z instanceof Q1)return Z;return new Q1(Array.isArray(Z)?Z:[Z])}static unwrap(Z){if(Z instanceof Q1)return Z.all();return Z}wrap(Z){if(Z instanceof Q1)return Z;if(typeof Z==="object")return new Q1(Z);return new Q1([Z])}zip(...Z){let J=Z.map((Q)=>this.constructor.wrap(Q).all()),X=this.items.map((Q,z)=>{let G=[Q];return J.forEach((Y)=>{G.push(Y[z])}),new this.constructor(G)});return new this.constructor(X)}}var OW=function Z(J){let X={};return J.forEach((Q,z)=>{function G(Y,$){if(t1(Y))Object.keys(Y).forEach((K)=>{G(Y[K],`${$}.${K}`)});else if($0(Y))Y.forEach((K,U)=>{G(K,`${$}.${U}`)});X[$]=Y}G(Q,z)}),X};function wW(){let Z=-1;return{next:()=>{return Z+=1,{value:this.items[Z],done:Z>=this.items.length}}}}g6();var bF=PW(["The best way to get started is to quit talking and begin doing.","The pessimist sees difficulty in every opportunity. The optimist sees opportunity in every difficulty.","Don\u2019t let yesterday take up too much of today.","You learn more from failure than from success. Don\u2019t let it stop you. Failure builds character.","It\u2019s not whether you get knocked down, it\u2019s whether you get up.","If you are working on something that you really care about, you don\u2019t have to be pushed. The vision pulls you.","People who are crazy enough to think they can change the world, are the ones who do.","Failure will never overtake me if my determination to succeed is strong enough.","Entrepreneurs are great at dealing with uncertainty and also very good at minimizing risk. That\u2019s the classic entrepreneur.","We may encounter many defeats but we must not be defeated.","Knowing is not enough; we must apply. Wishing is not enough; we must do.","Imagine your life is perfect in every respect; what would it look like?","We generate fears while we sit. We overcome them by action.","Whether you think you can or think you can\u2019t, you\u2019re right.","Security is mostly a superstition. Life is either a daring adventure or nothing."]),kF=HB.default;var zZ="0.5.3";import{mkdir as jM,rm as AM}from"fs/promises";import{dirname as NM,join as PM,parse as OM,relative as wM}from"path";import TM from"process";var QY=u0(ZY(),1),EZ=u0(K6(),1),YY=u0(K6(),1);import XY,{posix as i6}from"path";var Eq=/\\(?![()[\]{}!+@])/g;function jq(Z){return zY(Z)}function Aq(Z){return GY(Z).replace(Eq,"/")}var SR=process.platform==="win32"?Aq:jq,Nq=/(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g,Pq=/(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g,zY=(Z)=>Z.replace(Nq,"\\$&"),GY=(Z)=>Z.replace(Pq,"\\$&"),DR=process.platform==="win32"?GY:zY;function Oq(Z,J){if((J==null?void 0:J.caseSensitiveMatch)===!1)return!0;let X=YY.default.scan(Z);return X.isGlob||X.negated}function IZ(Z,J,X,Q,z){var G;let Y=Z;if(Z.endsWith("/"))Y=Z.slice(0,-1);if(!Y.endsWith("*")&&J)Y+="/**";if(XY.isAbsolute(Y.replace(/\\(?=[()[\]{}!*+?@|])/g,"")))Y=i6.relative(X,Y);else Y=i6.normalize(Y);let $=/^(\/?\.\.)+/.exec(Y);if($==null?void 0:$[0]){let K=i6.join(X,$[0]);if(Q.root.length>K.length)Q.root=K,Q.depthOffset=-($[0].length+1)/3}else if(!z&&Q.depthOffset>=0){let K=Y.split("/");(G=Q.commonPath)!=null||(Q.commonPath=K);let U=[];for(let H=0;H<Math.min(Q.commonPath.length,K.length);H++){let B=K[H];if(B==="**"&&!K[H+1]){U.pop();break}if(B!==Q.commonPath[H]||Oq(B)||H===K.length-1)break;U.push(B)}Q.depthOffset=U.length,Q.commonPath=U,Q.root=U.length>0?`${X}/${U.join("/")}`:X}return Y}function wq({patterns:Z,ignore:J=[],expandDirectories:X=!0},Q,z){if(typeof Z==="string")Z=[Z];else if(!Z)Z=["**/*"];if(typeof J==="string")J=[J];let G=[],Y=[];for(let $ of J)if(!$.startsWith("!")||$[1]==="("){let K=IZ($,X,Q,z,!0);Y.push(K)}for(let $ of Z)if(!$.startsWith("!")||$[1]==="("){let K=IZ($,X,Q,z,!1);G.push(K)}else if($[1]!=="!"||$[2]==="("){let K=IZ($.slice(1),X,Q,z,!0);Y.push(K)}return{match:G,ignore:Y}}function jZ(Z,J,X){return i6.relative(J,`${X}/${Z}`)}function JY(Z,J,X,Q,z){let G=z?Z.slice(X.length+1)||".":Z;if(X===J)return Q&&G!=="."?G.slice(0,-1):G;return jZ(G,J,X)}function Tq(Z,J,X){let Q={root:J,commonPath:null,depthOffset:0},z=wq(Z,J,Q),G=EZ.default(z.match,{dot:Z.dot,nocase:Z.caseSensitiveMatch===!1,ignore:z.ignore}),Y=EZ.default(z.ignore,{dot:Z.dot,nocase:Z.caseSensitiveMatch===!1}),$={filters:[(U,H)=>G(JY(U,J,Q.root,H,Z.absolute))],exclude:(U,H)=>Y(JY(H,J,Q.root,!0,!0)),pathSeparator:"/",relativePaths:!0,resolveSymlinks:!0};if(Z.deep)$.maxDepth=Math.round(Z.deep-Q.depthOffset);if(Z.absolute)$.relativePaths=!1,$.resolvePaths=!0,$.includeBasePath=!0;if(Z.followSymbolicLinks===!1)$.resolveSymlinks=!1,$.excludeSymlinks=!0;if(Z.onlyDirectories)$.excludeFiles=!0,$.includeDirs=!0;else if(Z.onlyFiles===!1)$.includeDirs=!0;Q.root=Q.root.replace(/\\/g,"");let K=new QY.fdir($).crawl(Q.root);if(J===Q.root||Z.absolute)return X?K.sync():K.withPromise();return X?K.sync().map((U)=>jZ(U,J,Q.root)+(!U||U.endsWith("/")?"/":"")):K.withPromise().then((U)=>U.map((H)=>jZ(H,J,Q.root)+(!H||H.endsWith("/")?"/":"")))}async function $Y(Z,J){if(Z&&(J==null?void 0:J.patterns))throw new Error("Cannot pass patterns as both an argument and an option");let X=Array.isArray(Z)||typeof Z==="string"?{...J,patterns:Z}:Z,Q=X.cwd?XY.resolve(X.cwd).replace(/\\/g,"/"):process.cwd().replace(/\\/g,"/");return Tq(X,Q,!1)}import Dq from"process";import{resolve as Lq}from"path";import Sq from"process";function AZ(Z,...J){if(!J.length)return Z;let X=J.shift();if(s6(Z)&&s6(X)){for(let Q in X)if(Object.prototype.hasOwnProperty.call(X,Q)){let z=X[Q];if(s6(z)&&s6(Z[Q]))Z[Q]=AZ(Z[Q],z);else Z[Q]=z}}return AZ(Z,...J)}function s6(Z){return Z&&typeof Z==="object"&&!Array.isArray(Z)}async function KY({name:Z,cwd:J,defaultConfig:X}){let Q=Lq(J||Sq.cwd(),`${Z}.config`);try{let z=await import(Q),G=z.default||z;return AZ(X,G)}catch(z){return X}}var x0=await KY({name:"dts",defaultConfig:{cwd:Dq.cwd(),root:"./src",entrypoints:["**/*.ts"],outdir:"./dist",keepComments:!0,clean:!0,tsconfigPath:"./tsconfig.json",verbose:!1}});function NZ(Z){if(_("params",`Cleaning parameters: ${Z}`),!Z.trim())return"";let J=[],X="",Q=0,z=!1,G="",Y=!1;for(let K of Z){if(K==='"'||K==="\'"||K==="`"){if(!z)z=!0,G=K;else if(K===G)z=!1}if(!z){if(K==="{")Y=!0,Q++;if(K==="}")Y=!1,Q--;if(K==="<"||K==="(")Q++;if(K===">"||K===")")Q--;if(K===","&&Q===0&&!Y){if(X.trim())J.push(UY(X));X="";continue}}X+=K}if(X.trim())J.push(UY(X));let $=J.join(", ");return _("params",`Cleaned parameters: ${$}`),$}function UY(Z){_("param-clean",`Cleaning parameter: ${Z}`);let J=Z.match(/^([^:]+):\s*([^=]+)(?:=\s*.+)?$/);if(J){let[,Q,z]=J,G=z.replace(/\s*&\s*/g," & ").replace(/\s{2,}/g," ").trim(),Y=`${Q.trim()}: ${G}`;return _("param-clean",`Cleaned to: ${Y}`),Y}let X=Z.match(/^([^=]+)=\s*(.+)$/);if(X){let[,Q,z]=X,G=pq(z.trim()),Y=`${Q.trim()}: ${G}`;return _("param-clean",`Inferred type: ${Y}`),Y}return Z.trim()}async function MY(Z){try{let J=await Bun.file(Z).text();return Cq(J)}catch(J){throw console.error("Failed to extract types:",J),new Error("Failed to extract and generate .d.ts file")}}function Cq(Z){let J=mq();Z.split("\n").forEach((Q)=>{if(Q.includes("import "))IY(Q,J.importTracking)}),$M(Z,J),J.dtsLines.forEach((Q)=>{if(Q.trim()&&!Q.startsWith("import"))qM(Q,J.importTracking),MM(Q,J.importTracking)});let X=gq(J.importTracking);return J.dtsLines=[...X.map((Q)=>`${Q};`),"",...J.dtsLines.filter((Q)=>!Q.trim().startsWith("import"))],fq(J)}function _q(Z){_("signature-start",`Processing declaration: ${Z}`);let J=UM(Z);_("signature-clean",`Clean declaration: ${J}`);let X=bq(J),Q=J.slice(J.indexOf(X)+X.length).trim();_("signature-content",`Content after name: ${Q}`);let{generics:z,rest:G}=kq(Q);Q=G.trim(),_("signature-after-generics",`Remaining content: ${Q}`);let{params:Y,rest:$}=yq(Q);Q=$.trim(),_("signature-after-params",`Remaining content: ${Q}`);let{returnType:K}=hq(Q);_("signature-return",`Extracted return type: ${K}`);let U={name:X,generics:z,params:Y,returnType:K};return _("signature-final",`Final signature object: ${JSON.stringify(U,null,2)}`),U}function bq(Z){let J=Z.match(/^(?:export\s+)?(?:async\s+)?function\s*\*?\s*([^(<\s]+)/);if(!J)throw new Error("Invalid function declaration");return J[1]}function kq(Z){let J="";if(Z.startsWith("<")){let X=1,Q=0,z="<",G=!1,Y="";_("generics-input",`Starting generic extraction with: ${Z}`);for(let $=1;$<Z.length;$++){let K=Z[$],U=$<Z.length-1?Z[$+1]:"",H=$>0?Z[$-1]:"";if(_("generics-char",`Processing char: ${K}, next char: ${U}, depth: ${X}, pos: ${$}`),(K==='"'||K==="\'"||K==="`")&&H!=="\\"){if(!G)G=!0,Y=K,_("generics-string",`Entering string with ${Y}`);else if(K===Y)G=!1,_("generics-string","Exiting string")}if(!G){if(K==="<")X++,_("generics-depth",`Increasing depth to ${X} at pos ${$}`);else if(K===">"){if(X--,_("generics-depth",`Decreasing depth to ${X} at pos ${$}`),X===0&&U===">"){z+=">>",Q=$+1,_("generics-complete",`Found double closing bracket at pos ${$}, final buffer: ${z}`);break}else if(X===0){z+=">",Q=$,_("generics-complete",`Found single closing bracket at pos ${$}, final buffer: ${z}`);break}}}if(X>0)z+=K,_("generics-buffer",`Current buffer: ${z}`)}if(z)J=z,Z=Z.slice(Q+1),_("generics-success",`Successfully extracted generics: ${J}`),_("generics-rest",`Remaining text: ${Z}`);else _("generics-fail",`Failed to extract generics from: ${Z}`)}return{generics:J,rest:Z}}function yq(Z){let J="";if(Z.includes("(")){let X=Z.indexOf("("),Q=1,z=X+1,G="";_("params-extraction-start",`Starting params extraction from pos ${z}: ${Z}`);for(;z<Z.length;z++){let Y=Z[z];if(Y==="(")Q++;if(Y===")"){if(Q--,Q===0){_("params-depth-zero",`Found closing parenthesis at pos ${z}`);break}}G+=Y}J=G.trim(),Z=Z.slice(z+1).trim(),_("signature-params",`Extracted params: ${J}`)}return{params:J,rest:Z}}function hq(Z){let J="void";if(Z.startsWith(":")){_("return-start",`Starting return type extraction with: ${Z}`),Z=Z.slice(1).trim();let X=0,Q="",z=0,G=!1,Y="",$=!1;_("return-extraction","Starting character-by-character extraction");while(z<Z.length&&!$){let K=Z[z],U=z>0?Z[z-1]:"";if(_("return-char",`Pos ${z}: Char "${K}", Depth ${X}, InString ${G}, Buffer length ${Q.length}`),(K==='"'||K==="\'"||K==="`")&&U!=="\\"){if(!G)G=!0,Y=K,_("return-string",`Entering string with ${Y}`);else if(K===Y)G=!1,_("return-string","Exiting string")}if(!G){if(K==="{"||K==="<"||K==="(")X++,_("return-depth",`Opening bracket, increasing depth to ${X}`);else if(K==="}"||K===">"||K===")"){if(X--,_("return-depth",`Closing bracket, decreasing depth to ${X}`),X===0&&K==="}"){if(Q+=K,Z.slice(z+1).trim()[0]==="{"){_("return-end",`Found end of return type at pos ${z}, next char is function body`),$=!0;break}}}if(X===0&&K===";"){_("return-end","Found semicolon at depth 0"),$=!0;break}}Q+=K,_("return-buffer",`Updated buffer: ${Q}`),z++}J=Q.trim(),_("return-final",`Final extracted return type: ${J}`)}return{returnType:J}}function wZ(Z){_("extract-function",`Extracting function type from: ${Z}`);let J=Z.trim(),X=0,Q=J.length;if(!J.startsWith("(")){let W=J.match(/^function\s*\w*\s*\((.*?)\)/s);if(W){let[,q]=W,F=NZ(q||""),R=J.match(/\):\s*([^{;]+)(?:[{;]|$)/),I=R?FM(R[1]):"unknown";return`(${F}) => ${I}`}return null}X++;let z=1,G=X,Y=!1,$="";for(;X<Q;X++){let W=J[X],q=X>0?J[X-1]:"";if(Y){if(W===$&&q!=="\\")Y=!1;else if(W==="\\")X++}else if(W==='"'||W==="\'"||W==="`")Y=!0,$=W;else if(W==="(")z++;else if(W===")"){if(z--,z===0)break}}if(z!==0)return _("extract-function","Unbalanced parentheses in function parameters"),null;let K=X,U=J.slice(G,K);X++;while(X<Q&&/\s/.test(J[X]))X++;let H="unknown";if(J[X]===":"){X++;while(X<Q&&/\s/.test(J[X]))X++;let W=X;while(X<Q&&!J.startsWith("=>",X)&&J[X]!=="{")X++;let q=X;H=J.slice(W,q).trim()}while(X<Q&&/\s/.test(J[X]))X++;if(J.startsWith("=>",X))X+=2;else return _("extract-function",'Function expression missing "=>"'),null;let B=NZ(U||"");return _("extract-function",`Extracted function type: (${B}) => ${H}`),`(${B}) => ${H}`}function gq(Z){let J=[],X=new Set;_("import-gen",`Generating optimized imports. ${Z.exportedTypes.size} exported types`);for(let[Q,z]of Z.typeImports){_("import-type-check",`Checking types from ${Q}: ${Array.from(z).join(", ")}`);let G=Array.from(z).filter((Y)=>{let $=Z.exportedTypes.has(Y)||Z.usedTypes.has(Y);return _("import-type-filter",`Type ${Y}: exported=${Z.exportedTypes.has(Y)}, used=${Z.usedTypes.has(Y)}`),$}).map((Y)=>{let $=Z.valueAliases.get(Y);return $?`${Y} as ${$}`:Y}).sort();if(G.length>0){let Y=`import type { ${G.join(", ")} } from '${Q}'`;if(!X.has(Y))J.push(Y),X.add(Y),_("import-add-type",`Added type import: ${Y}`)}}for(let[Q,z]of Z.valueImports){let G=new Map,Y=Array.from(z).filter(($)=>{let K=Array.from(Z.valueAliases.entries()).find(([H,B])=>B===$)?.[0],U=Z.exportedValues.has($)||Z.usedValues.has($)||$===Z.defaultExportValue||K&&(Z.exportedValues.has(K)||K===Z.defaultExportValue);if(U&&K)G.set($,K);return U}).map(($)=>{let K=G.get($);return K?`${$} as ${K}`:$}).sort();if(Y.length>0){let $=`import { ${Y.join(", ")} } from '${Q}'`;if(!X.has($))J.push($),X.add($),_("import-add-value",`Added value import: ${$}`)}}return J.sort()}function vq(Z){let J=Z.trim();if(!J.startsWith("{"))return null;let X=0,Q=!1,z="";for(let G=0;G<J.length;G++){let Y=J[G],$=G>0?J[G-1]:"";if((Y==='"'||Y==="\'"||Y==="`")&&$!=="\\"){if(!Q)Q=!0,z=Y;else if(Y===z)Q=!1;continue}if(!Q){if(Y==="{")X++;else if(Y==="}"){if(X--,X===0)return J.slice(0,G+1)}}}return null}function fq(Z){let J=new Set;Z.dtsLines.filter((G)=>G.startsWith("import")).forEach((G)=>J.add(G.replace(/;+$/,"")));let X=Z.dtsLines.filter((G)=>!G.startsWith("import")).map((G)=>{let Y=G.trim();if(!Y)return"";if(Y.startsWith("export *")||Y.endsWith(";"))return Y;if(Y.startsWith("export type"))return`${Y};`;return Y.replace(/;+$/,";")}),Q=Array.from(Z.defaultExports).map((G)=>G.trim().replace(/;+$/,";"));return`${[...Array.from(J).map((G)=>`${G};`),"",...X.filter(Boolean),"",...Q].map((G)=>G.replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"")).filter((G)=>G.trim()||G==="").join("\n")}`.trim()}function xq(Z){let J=Z.split("\n"),X=0;while(X<J.length){let Q=J[X].trim();if(Q.startsWith("//")||Q.startsWith("/*")||Q.startsWith("*")||Q==="")X++;else break}return J.slice(X).join("\n")}function mq(){return{dtsLines:[],imports:[],usedTypes:new Set,typeSources:new Map,defaultExport:null,exportAllStatements:[],currentDeclaration:"",lastCommentBlock:"",bracketCount:0,isMultiLineDeclaration:!1,moduleImports:new Map,availableTypes:new Map,availableValues:new Map,currentIndentation:"",declarationBuffer:null,importTracking:uq(),defaultExports:new Set,currentScope:"top"}}function uq(){return{typeImports:new Map,valueImports:new Map,usedTypes:new Set,usedValues:new Set,exportedTypes:new Set,exportedValues:new Set,valueAliases:new Map,importSources:new Map,typeExportSources:new Map,defaultExportValue:void 0}}function BY(Z,J,X){let Q=Z.split("\n");if(Q.length===1)return`${J}${Z}${X?"":" |"}`;let z=[],G=!1,Y=0;return Q.forEach((K)=>{let U=K.trim();if(U.startsWith("Array<"))Y=0;if(U==="}"||U.startsWith("> |")||U===">")G=Y===1;if(U&&!U.startsWith("Array<")&&!U.endsWith(">")&&!U.startsWith("{")&&!U.endsWith("}"))Y++}),Q.map((K,U)=>{let H=K.trim();if(!H)return"";let B=J;if(U>0){let R=z.reduce((I,w)=>I+w.depth,0);if(B=J+" ".repeat(R),H.match(/^['"]/))B+=" ";if((H.startsWith("}")||H.startsWith(">")||H.startsWith("> |"))&&z.length>0)B=J+" ".repeat(Math.max(0,R-1))}let W=H.match(/[{<[]/g)||[],q=H.match(/[}\]>]/g)||[];if(W.forEach((R)=>{let I=H.startsWith("Array")&&R==="<";z.push({char:R,indent:B,isArray:I,depth:1,isSingleElement:G})}),q.length>0){for(let R=0;R<q.length;R++)if(z.length>0)z.pop()}let F=!1;if(!X&&U===Q.length-1&&!H.endsWith(" |")&&!H.endsWith(";"))F=!0;if(H==="}"){if([...z].reverse().find((I)=>I.isArray)?.isSingleElement)F=!1}if(H.endsWith(" |"))F=!1;return`${B}${H}${F?" |":""}`}).filter(Boolean).join("\n")}function dq(Z){let J=Z.split("\n").map((Q)=>Q.trim()).join(" ");if(/^['"`].*['"`]$/.test(J))return J;if(!Number.isNaN(Number(J)))return J;if(J==="true"||J==="false")return J;let X=J.match(/\([^)]*\)\s*:\s*([^=>{]+)/);if(X)return X[1].trim();if(J.includes("=>"))return"(...args: any[]) => unknown";return"unknown"}function a6(Z,J,X=!1){let Q=Z.slice(1,-1).trim(),z=Z.trim().endsWith("as const");if(!Q)return z?"readonly unknown[]":"unknown[]";let G=NY(Q);if(z||G.some((U)=>U.includes("as const"))){let U=G.map((H)=>{let B=H.trim().replace(/\s*as\s*const\s*$/,"").trim();return FY(B,J)});if(iq(U))return`readonly [\n${U.map((B,W)=>BY(B," ",W===U.length-1)).join("\n")}\n ]`;return`readonly [${U.join(", ")}]`}let $=G.map((U)=>{let H=U.trim();if(H.startsWith("["))return a6(H,J);else if(H.startsWith("{"))return m0(H,J);else if(H.includes("=>")||H.includes("function")){let B=wZ(H);return B?`(${B})`:"((...args: any[]) => unknown)"}else return sq(H)}).filter(Boolean);if($.some((U)=>U.includes("\n")||U.includes("{")||U.length>40||$.join(" | ").length>60)&&X)return`Array<\n${$.map((H,B)=>BY(H," ",B===$.length-1)).join("\n")}\n >`;return`Array<${$.join(" | ")}>`}function m0(Z,J,X=0){let Q=vq(Z);if(!Q)return"Record<string, unknown>";let z=" ".repeat(X),G=" ".repeat(X+1),Y=z,$=WM(Q,J,X);if(!$.length)return"{}";return`{\n${$.map(({key:U,value:H})=>{return`${G}${U}: ${H}`}).join(";\n")}\n${Y}}`}function FY(Z,J){if(/^['"`].*['"`]$/.test(Z))return`'${Z.replace(/\]\s*as\s*cons.*$/,"").replace(/^['"`]|['"`]$/g,"")}'`;if(Z.startsWith("[")){let Q=Z.slice(1,-1).trim();return`readonly [${NY(Q).map((Y)=>{let $=Y.trim();if($.includes("] as cons")||$.includes("] as const"))$=$.replace(/\]\s*as\s*cons.*$/,"").replace(/\]\s*as\s*const.*$/,"").trim();if($.startsWith("["))return FY($,J);if($.startsWith("{"))return m0($,J).replace(/^\{/,"{ readonly").replace(/;\s+/g,"; readonly ");if(/^['"`].*['"`]$/.test($))return`'${$.replace(/^['"`]|['"`]$/g,"")}'`;if(!Number.isNaN(Number($)))return $;if($==="true"||$==="false")return $;return`'${$.replace(/\]\s*as\s*cons.*$/,"").replace(/\]\s*as\s*const.*$/,"").replace(/^['"`]|['"`]$/g,"").trim()}'`}).join(", ")}]`}return`'${Z.replace(/\]\s*as\s*cons.*$/,"").replace(/\]\s*as\s*const.*$/,"").replace(/^['"`]|['"`]$/g,"").trim()}'`}function cq(Z,J){if(Z.startsWith("{"))return m0(Z,J);if(Z.startsWith("["))return a6(Z,J,!0);return Z}function pq(Z){if(/^['"`].*['"`]$/.test(Z))return"string";if(!Number.isNaN(Number(Z)))return"number";if(Z==="true"||Z==="false")return"boolean";if(Z.startsWith("["))return"unknown[]";if(Z.startsWith("{"))return"object";if(Z==="null")return"null";if(Z==="undefined")return"undefined";return"unknown"}function RY(Z){return Z.trim().startsWith("export default")}function lq(Z){if(nq(Z))return!1;let J=Z.trim();if(/^(?:export\s+)?(?:async\s+)?function\s*\*?\s*[a-zA-Z_$][\w$]*/.test(J))return!0;return J.startsWith("export ")||J.startsWith("interface ")||J.startsWith("type ")||J.startsWith("const ")||J.startsWith("function ")||J.startsWith("async function ")||J.startsWith("declare ")||J.startsWith("declare module")||/^export\s+(?:interface|type|const|function\*?|async\s+function\*?)/.test(J)}function nq(Z){return Z.includes("\\")||Z.includes("[^")||Z.includes("(?:")||Z.includes("(?=")||Z.includes("(?!")||Z.includes("\\s*")||Z.includes("\\w+")||Z.includes("\\d+")||Z.includes("(?<")||Z.includes("(?!")||Z.includes("(?<=")||Z.includes("(?<!")}function fR(Z){return/^\s*\(.*\)\s*=>\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF])$/.test(Z.trim())}function xR(Z){let X=(Array.isArray(Z)?Z.join("\n"):Z).replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"").trim();return/;\s*$/.test(X)||/\}\s*$/.test(X)}function VY(Z,J){let X=Z.trim();return J.currentScope==="function"&&(X.startsWith("const ")||X.startsWith("let ")||X.startsWith("var ")||/^(?:const|let|var)\s+[a-zA-Z_$][\w$]*\s*(?::|=)/.test(X))}function iq(Z){return Z.some((J)=>J.includes("\n")||J.includes("{")||J.length>40||Z.join(" | ").length>60)}function sq(Z){if(Z.includes("=>")||Z.match(/\bfunction\b/))return"((...args: any[]) => unknown)";if(Z.match(/\w+\s*\([^)]*\)/))return"unknown";if(Z.startsWith("new "))return"unknown";if(Z.includes("."))return"unknown";if(/^[a-z_$][\w$]*$/i.test(Z)&&!["unknown","string","number","boolean","null","undefined","any","never","void"].includes(Z)&&!/^['"`]|^\d/.test(Z)&&Z!=="true"&&Z!=="false")return"unknown";return Z}function PZ(Z,J,X){_("block-processing","Starting block processing");let Q=[],z=0,G=0,Y=0,$=!1,K=Z.length;_("block-scan",`Total available lines: ${K}`);while(Y<K){let B=Z[Y],W=B.trim(),q=(B.match(/\{/g)||[]).length,F=(B.match(/\}/g)||[]).length,R=(B.match(/</g)||[]).length,I=(B.match(/>/g)||[]).length;if(_("block-scan-details",`Scanning line ${Y+1}: "${W}" Current depths - Bracket: ${z}, Angle: ${G} Found body: ${$} Changes - Curly: +${q}/-${F}, Angle: +${R}/-${I}`),Q.push(B),z+=q-F,G+=R-I,W.includes("{"))$=!0,_("block-scan",`Found body start at line ${Y+1}`);if(_("block-collection",`Line ${Y+1}: "${W}" Updated depths - Bracket: ${z}, Angle: ${G} Found body: ${$}`),z===0&&(G===0||$)&&W.endsWith("}")&&$){_("block-scan",`Found complete block at line ${Y+1}`);break}Y++}let U=Q.join("\n");_("block-scan",`Collected block:\n${U}`);let H=xq(U).trim();if(_("block-processing",`Full block content:\n${H}`),!H){_("block-processing","Empty declaration block");return}if(VY(H,X)){_("block-processing","Skipping variable declaration inside function");return}if(H.startsWith("interface")||H.startsWith("export interface")){if(_("block-processing","Processing interface declaration using interface block processor"),oq(H,U,X)){_("block-processing","Interface successfully processed");return}}if(H.includes("\n\nexport function")||H.includes("\n\nfunction")){let B=RM(H);if(B.length>1){_("block-processing",`Found ${B.length} function declarations to process`),B.forEach((W)=>{let q=W.split("\n");PZ(q,J,X)});return}}if(rq(H,X))return;if(aq(H,Z,X))return;if(tq(H,U,X))return;if(eq(H,X))return;if(ZM(H,X))return;if(JM(H,U,X))return;if(GM(H,U,X))return;_("processing",`Unhandled declaration type: ${H.split("\n")[0]}`)}function aq(Z,J,X){if(!Z.match(/^(?:export\s+)?(const|let|var)\s+/))return!1;if(VY(Z,X))return _("variable-processing","Skipping variable inside function"),!0;let z=Z.startsWith("export");if(X.currentScope==="top"){let G=J.join("\n");X.dtsLines.push(jY(G,z,X))}else _("block-processing","Skipping variable declared inside a function");return!0}function rq(Z,J){if(_("function-processing",`Processing potential function block: ${Z.slice(0,100)}...`),/^(?:export\s+)?(?:async\s+)?function\s*\*/.test(Z)){_("block-processing","Processing generator function declaration");let U=BM(Z);if(U)return J.dtsLines.push(U),!0}if(!/^(?:export\s+)?(?:async\s+)?function\s+[a-zA-Z_$][\w$]*/.test(Z))return!1;_("block-processing","Processing function declaration");let X=Z.split(/[\n;]/).map((U)=>U.trim()).filter((U)=>U.startsWith("export function")||U.startsWith("function"));if(X.length>1)return X.forEach((U)=>{if(!U.endsWith("{")){let H=OZ(U,J.usedTypes,U.startsWith("export"));if(H)J.dtsLines.push(H)}}),!0;let Q=0,z=0,G=0;for(let U=0;U<Z.length;U++){let H=Z[U];if(H==="(")z++;if(H===")")z--;if(H==="<")G++;if(H===">")G--;if(H==="{"){if(z===0&&G===0){Q=U;break}}}if(Q===0)Q=Z.length;let Y=Z.slice(0,Q).trim();_("signature-extraction",`Extracted signature: ${Y}`);let $=Y.startsWith("export"),K=OZ(Y,J.usedTypes,$);if(K)_("function-processed",`Generated declaration: ${K}`),J.dtsLines.push(K);return!0}function oq(Z,J,X){if(_("interface-processing",`Starting interface processing with declaration: ${Z.slice(0,100)}...`),!Z.startsWith("interface")&&!Z.startsWith("export interface"))return _("interface-processing","Not an interface declaration, skipping"),!1;let Q=J.split("\n"),z=0,G=0,Y=[],$=!0,K=!1;_("interface-processing",`Processing ${Q.length} lines`);for(let W=0;W<Q.length;W++){let q=Q[W],F=q.trim(),R=(q.match(/\{/g)||[]).length,I=(q.match(/\}/g)||[]).length,w=(q.match(/</g)||[]).length,M=(q.match(/>/g)||[]).length;if(z+=R-I,G+=w-M,F.includes("{"))K=!0;if(_("interface-depth",`Line ${W+1}: "${F}" Bracket depth: ${z}, Angle depth: ${G}, Has started body: ${K}`),$){let V=F.startsWith("export")?"export declare":"declare";Y.push(q.replace(/^(\s*)(?:export\s+)?interface/,`\$1${V} interface`)),$=!1}else Y.push(q)}let U=Y.join("\n"),H=U.includes("{")&&U.includes("}");if(z===0&&(G===0||U.includes(">"))&&H)return _("interface-processing",`Successfully processed interface:\n${U}`),X.dtsLines.push(U),!0;return _("interface-processing",`Interface processing incomplete. Bracket depth: ${z}, Angle depth: ${G}, Has started body: ${K}`),!1}function tq(Z,J,X){if(!Z.startsWith("type")&&!Z.startsWith("export type"))return!1;let Q=Z.startsWith("export");return X.dtsLines.push(EY(J,Q)),!0}function eq(Z,J){if(!RY(Z))return!1;let X=Z.replace(/^export\s+default\s+/,"").replace(/;$/,"");J.importTracking.defaultExportValue=X;let Q=Z.endsWith(";")?Z:`${Z};`;return J.defaultExports.add(Q),!0}function ZM(Z,J){if(!Z.startsWith("export *"))return!1;return J.exportAllStatements.push(Z),J.dtsLines.push(Z),!0}function JM(Z,J,X){if(!Z.startsWith("export"))return!1;if(QM(Z,X))return!0;if(YM(Z,X))return!0;if(zM(Z,X))return!0;if(Z.startsWith("export {"))return X.dtsLines.push(J),!0;return _("processing",`Unhandled exported declaration type: ${Z.split("\n")[0]}`),!0}function XM(Z,J){_("export-processing",`Processing export: ${Z}`);let X=Z.match(/export\s*\{([^}]+)\}(?:\s*from\s*['"]([^'"]+)['"])?/);if(!X){_("export-error","Failed to match export pattern");return}let[,Q,z]=X;_("export-found",`Found exports: ${Q}, source: ${z||"local"}`),Q.split(",").forEach((G)=>{let[Y,$]=G.trim().split(/\s+as\s+/).map((K)=>K.trim());if(Y.startsWith("type ")){let K=Y.replace(/^type\s+/,"").trim(),U=$||K;if(J.importTracking.exportedTypes.add(U),z)J.importTracking.typeExportSources.set(U,z);_("export-type-processed",`Added exported type: ${U}`)}else{let K=$||Y;J.importTracking.exportedValues.add(K),_("export-value-processed",`Added exported value: ${K}`)}})}function QM(Z,J){if(!Z.startsWith("export class")&&!Z.startsWith("export abstract class"))return!1;let X=`export declare ${Z.replace(/^export\s+/,"")}`;return J.dtsLines.push(X),!0}function YM(Z,J){if(!Z.startsWith("export enum")&&!Z.startsWith("export const enum"))return!1;let X=`export declare ${Z.replace(/^export\s+/,"")}`;return J.dtsLines.push(X),!0}function zM(Z,J){if(!Z.startsWith("export namespace"))return!1;let X=`export declare ${Z.replace(/^export\s+/,"")}`;return J.dtsLines.push(X),!0}function GM(Z,J,X){if(!Z.startsWith("declare module"))return!1;let Q=AY(J);return X.dtsLines.push(Q),!0}function mR(Z,J,X){if(RY(Z)){let Q=Z.endsWith(";")?Z:`${Z};`;X.defaultExports.add(Q);return}if(Z.startsWith("declare module")){let Q=AY(J);X.dtsLines.push(Q);return}if(Z.startsWith("export const")||Z.startsWith("const")){let Q=Z.trimStart().startsWith("export"),z=jY(J,Q,X);X.dtsLines.push(z);return}if(Z.startsWith("interface")||Z.startsWith("export interface")){let Q=HM(J,Z.startsWith("export"));X.dtsLines.push(Q);return}if(Z.startsWith("type")||Z.startsWith("export type")){let Q=EY(J,Z.startsWith("export"));X.dtsLines.push(Q);return}if(Z.startsWith("function")||Z.startsWith("export function")||Z.startsWith("async function")||Z.startsWith("export async function")){let Q=OZ(J,X.usedTypes,Z.startsWith("export"));X.dtsLines.push(Q);return}if(Z.startsWith("export *")){X.exportAllStatements.push(Z),X.dtsLines.push(J);return}if(Z.startsWith("export {")){X.dtsLines.push(J);return}if(Z.startsWith("export type {")){X.dtsLines.push(J);return}if(Z.startsWith("class")||Z.startsWith("export class")||Z.startsWith("abstract class")||Z.startsWith("export abstract class")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}if(Z.startsWith("enum")||Z.startsWith("export enum")||Z.startsWith("const enum")||Z.startsWith("export const enum")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}if(Z.startsWith("namespace")||Z.startsWith("export namespace")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}if(Z.startsWith("let")||Z.startsWith("export let")||Z.startsWith("var")||Z.startsWith("export var")){let z=`${Z.startsWith("export")?"export ":""}declare ${Z.replace(/^export\s+/,"")}`;X.dtsLines.push(z);return}console.warn("Unhandled declaration type:",Z.split("\n")[0])}function $M(Z,J){let X=Z.split("\n"),Q=[],z=[],G=0,Y=0,$=!1;J.currentScope="top",_("source-processing",`Processing source file with ${X.length} lines`);for(let K=0;K<X.length;K++){let U=X[K],H=U.trim();if(_("source-scan",`First pass - Line ${K+1}: ${H}`),U.includes("import "))IY(U,J.importTracking),_("import",`Processed import: ${U}`);if(H.startsWith("export type {")){_("type-export",`Found type export: ${H}`),KM(H,J),J.dtsLines.push(U);continue}if(H.startsWith("export {")){_("mixed-export",`Found mixed export: ${H}`),XM(H,J),J.dtsLines.push(U);continue}}for(let K=0;K<X.length;K++){let U=X[K],H=U.trim();if(H.startsWith("import ")||H.startsWith("export type {")||H.startsWith("export {"))continue;if(H.startsWith("/*")||H.startsWith("//")){z.push(U);continue}let B=(U.match(/\{/g)||[]).length,W=(U.match(/\}/g)||[]).length,q=(U.match(/</g)||[]).length,F=(U.match(/>/g)||[]).length;if(!$&&lq(H)){_("declaration",`Found declaration start: ${H}`),$=!0,Q=[U],G=B-W,Y=q-F;continue}if($){Q.push(U),G+=B-W,Y+=q-F;let R=G===0&&Y===0&&H.endsWith("}"),I=K<X.length-1?X[K+1]?.trim():"";if(!(G>0||Y>0||I&&!I.startsWith("export")&&!I.startsWith("interface"))||R)_("declaration-complete",`Declaration complete at line ${K+1}`),PZ(Q,z,J),Q=[],z=[],$=!1,G=0,Y=0}}if(Q.length>0)PZ(Q,z,J)}function IY(Z,J){_("import-processing",`Processing import line: ${Z}`);let X=Z.match(/import\s+type\s*(?:\{([^}]+)\}|([^;\s]+))\s*from\s*['"]([^'"]+)['"]/);if(X){let[,z,G,Y]=X,$=z||G;if(_("import-type",`Found type imports from ${Y}: ${$}`),!J.typeImports.has(Y))J.typeImports.set(Y,new Set);if($)$.split(",").forEach((K)=>{let[U,H]=K.trim().split(/\s+as\s+/).map((B)=>B.trim());if(J.typeImports.get(Y).add(U),J.typeExportSources.set(U,Y),_("import-type-tracking",`Tracking type ${U} from ${Y}`),H)J.valueAliases.set(H,U),_("import-alias",`Registered type alias: ${U} as ${H}`)});return}let Q=Z.match(/import\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/);if(Q){let[,z,G]=Q;if(_("import-value",`Found value imports from ${G}: ${z}`),!J.valueImports.has(G))J.valueImports.set(G,new Set);z.split(",").forEach((Y)=>{let[$,K]=Y.trim().split(/\s+as\s+/).map((U)=>U.trim());if($.startsWith("type ")){let U=$.replace(/^type\s+/,"").trim();if(!J.typeImports.has(G))J.typeImports.set(G,new Set);J.typeImports.get(G).add(U),J.typeExportSources.set(U,G),_("import-type-in-value",`Found inline type import: ${U} from ${G}`)}else if(J.valueImports.get(G).add($),J.importSources.set($,G),K){if(J.valueAliases.set(K,$),K===J.defaultExportValue)J.usedValues.add($);J.valueImports.get(G).add($),_("import-alias",`Registered value alias: ${$} as ${K}`)}})}}function EY(Z,J=!0){let X=Z.split("\n");if(X[0].trim().startsWith("export type {"))return Z;let z=J?"export declare":"declare";return[X[0].replace(/^(\s*)(?:export\s+)?type(?!\s*\{)/,`\$1${z} type`),...X.slice(1)].join("\n")}function KM(Z,J){_("type-export-processing",`Processing type export: ${Z}`);let X=Z.match(/export\s+type\s*\{([^}]+)\}(?:\s*from\s*['"]([^'"]+)['"])?/);if(!X){_("type-export-error","Failed to match type export pattern");return}let[,Q,z]=X;_("type-export-found",`Found types: ${Q}, source: ${z||"local"}`),Q.split(",").forEach((G)=>{let[Y,$]=G.trim().split(/\s+as\s+/).map((U)=>U.trim()),K=$||Y;if(J.importTracking.exportedTypes.add(K),z)J.importTracking.typeExportSources.set(K,z);_("type-export-processed",`Added exported type: ${K}`)})}function jY(Z,J,X){let Q=Z.includes("let ")?"let":Z.includes("var ")?"var":"const",z=Z.match(/(?:export\s+)?(?:const|let|var)\s+([^:\s]+)\s*:\s*([^=]+)=/);if(z){let[,B,W]=z;return`${J?"export ":""}declare ${Q} ${B}: ${W.trim()};`}let G=Z.match(/(?:export\s+)?(?:const|let|var)\s+([^=\s]+)\s*=\s*([\s\S]+)$/);if(!G)return Z;let[,Y,$]=G,K=$.trim(),U=K.match(/^\(\s*.*?\)\s*:\s*([^=>\s{]).*=>/);if(U){let B=U[1];return`${J?"export ":""}declare ${Q} ${Y}: ${B};`}let H;if(K.includes("as const")){let B=K.replace(/\s*as\s*const\s*$/,"");H=cq(B,X)}else if(K.startsWith("{"))H=m0(K,X);else if(K.startsWith("["))H=a6(K,X);else if(K.includes("=>")||K.includes("function"))H=wZ(K)||"(...args: any[]) => unknown";else H=dq(K);return`${J?"export ":""}declare ${Q} ${Y}: ${H};`}function OZ(Z,J,X=!0){_("process-function-start",`Starting to process: ${Z}`);let Q=Z.split("\n").map(($)=>$.trim()).join(" ").replace(/\s+/g," ").replace(/;$/,"");_("process-function-normalized",`Normalized declaration: ${Q}`);let z=_q(Q);if(_("process-function-signature",`Extracted signature: ${JSON.stringify(z,null,2)}`),!z.params&&Q.includes("("))_("process-function-warning","Found parentheses but no params extracted");if(z.returnType==="void"&&Q.includes("):"))_("process-function-warning","Found return type indicator but extracted void");let Y=[X?"export ":"","declare function ",z.name,z.generics,`(${z.params})`,z.returnType?`: ${z.returnType}`:"",";"].filter(Boolean).join("");return _("process-function-final",`Final declaration: ${Y}`),Y}function UM(Z){let J=Z.split("\n"),X=0;while(X<J.length){let Q=J[X].trim();if(!Q.startsWith("//")&&!Q.startsWith("/*")&&!Q.startsWith("*")&&Q!=="")break;X++}return J.slice(X).join("\n").trim()}function BM(Z){_("generator-function",`Processing generator function: ${Z}`);let J=Z.replace(/^export\s+/,"").replace(/^async\s+/,"").trim(),X=J.match(/function\*\s+([^(<\s]+)/);if(!X)return _("generator-function","Failed to match generator function name"),"";let[,Q]=X,z=J.slice(J.indexOf(Q)+Q.length).trim(),G="";if(z.startsWith("<")){let K=1,U=1;for(;U<z.length&&K>0;U++){if(z[U]==="<")K++;if(z[U]===">")K--}G=z.slice(0,U),z=z.slice(U).trim()}let Y="";if(z.startsWith("(")){let K=1,U=1;for(;U<z.length&&K>0;U++){if(z[U]==="(")K++;if(z[U]===")")K--}Y=z.slice(1,U-1).trim(),z=z.slice(U).trim()}let $="any";if(z.startsWith(":")){z=z.slice(1).trim();let K=z.match(/([^{;]+)/);if(K)$=K[1].trim()}return["export declare function ",Q,G?`${G}`:"",`(${Y})`,": ",$].filter(Boolean).join("").concat(";")}function HM(Z,J=!0){let X=Z.split("\n"),Q=X[0],z=J?"export declare":"declare";return[Q.replace(/^(\s*)(?:export\s+)?interface/,`\$1${z} interface`),...X.slice(1)].join("\n")}function AY(Z){let J=Z.split("\n"),X=" ",Q=0;return J.map((G,Y)=>{let $=G.trim();if(!$)return"";if($.startsWith("}"))Q--;let K=" ".repeat(Math.max(0,Q)),U=Y===0?$:`${K}${$}`;if($.endsWith("{"))Q++;if($.includes("}")&&$.includes("{"))Q=Math.max(0,Q);return U}).join("\n")}function HY(Z){let J=/^(?:async\s+)?(\w+)\s*(<[^>]*>)?\s*\(([^)]*)\)\s*(?::\s*([^ {][^;{]*))?/,X=Z.match(J);if(!X)return{name:Z.split("(")[0].trim().replace(/^async\s+/,""),signature:"() => unknown"};let[,Q,z="",G,Y="void"]=X,$=Y.trim();if(/^async\s+/.test(Z)&&!/^Promise<.*>$/.test($))$=`Promise<${$}>`;let U=NZ(G||""),H=[z?`${z}`:"",`(${U})`,"=>",$].filter(Boolean).join(" ").trim();return{name:Q,signature:H}}function WM(Z,J,X=0){let Q=[],z=Z.slice(1,-1).trim();if(!z)return Q;let G="",Y=0,$=!1,K="",U="",H=!0,B=!1;for(let W=0;W<z.length;W++){let q=z[W],F=W>0?z[W-1]:"";if((q==='"'||q==="\'"||q==="`")&&F!=="\\"){if(!$)$=!0,K=q;else if(q===K)$=!1}if(!$){if(q==="{"||q==="["||q==="(")Y++;else if(q==="}"||q==="]"||q===")")Y--;else if(Y===0){if(q===":"&&!B){B=!0,U=G.trim(),G="",H=!1;continue}else if((q===","||q===";")&&!H){if(U){let R=G.trim();if(U.includes("(")||U.match(/^\s*(?:async\s+)?\w+\s*(?:<[^>]+>)?\s*\(/)){let{name:w,signature:M}=HY(U);Q.push({key:w,value:M})}else{let w=WY(R,X+1,J);Q.push({key:qY(U),value:w})}}G="",U="",H=!0,B=!1;continue}}}G+=q}if(U&&!H&&G.trim()){let W=G.trim();if(U.includes("(")||U.match(/^\s*(?:async\s+)?\w+\s*(?:<[^>]+>)?\s*\(/)){let{name:F,signature:R}=HY(U);Q.push({key:F,value:R})}else{let F=WY(W,X+1,J);Q.push({key:qY(U),value:F})}}return Q}function WY(Z,J,X){let Q=Z.trim();if(Q.startsWith("{")&&Q.includes("(")&&Q.includes(")")&&Q.includes(":"))return m0(Q,X,J);if(Q.startsWith("["))return a6(Q,X,!0);if(Q.startsWith("{"))return m0(Q,X,J);if(Q.includes("=>")||Q.includes("function"))return wZ(Q)||"(...args: any[]) => unknown";if(/^(['"`]).*\1$/.test(Q)||!Number.isNaN(Number(Q))||Q==="true"||Q==="false")return Q;return"unknown"}function qM(Z,J){let X=/(?:extends|implements|:|<)\s*([A-Z][a-zA-Z0-9]*(?:<[^>]+>)?)/g,Q;while((Q=X.exec(Z))!==null){let z=Q[1].split("<")[0];J.usedTypes.add(z)}}function MM(Z,J){let X=Z.match(/export\s*\{([^}]+)\}/);if(X)X[1].split(",").map((G)=>G.trim()).forEach((G)=>{let[Y]=G.split(/\s+as\s+/);J.exportedValues.add(Y.trim())});let Q=[/export\s+declare\s+\{\s*([^}\s]+)(?:\s*,\s*[^}\s]+)*\s*\}/g,/export\s+declare\s+(?:const|function|class)\s+([a-zA-Z_$][\w$]*)/g,/export\s+\{\s*([^}\s]+)(?:\s*,\s*[^}\s]+)*\s*\}/g];for(let z of Q){let G;while((G=z.exec(Z))!==null)G[1].split(",").map(($)=>$.trim()).forEach(($)=>{if(!["type","interface","declare","extends","implements","function","const","let","var"].includes($))J.usedValues.add($)})}}function _(Z,J){if(x0.verbose)console.debug(`[dtsx:${Z}] ${J}`)}function FM(Z){return Z.replace(/\s+/g," ").replace(/\s*([<>])\s*/g,"$1").replace(/\s*,\s*/g,", ").trim()}function qY(Z){let J=Z.replace(/^['"`]|['"`]$/g,"");if(!/^[a-z_$][\w$]*$/i.test(J))return`'${J}'`;return J}function NY(Z){let J=[],X="",Q=0,z=!1,G="";for(let $=0;$<Z.length;$++){let K=Z[$],U=$>0?Z[$-1]:"";if((K==='"'||K==="\'"||K==="`")&&U!=="\\"){if(!z)z=!0,G=K;else if(K===G)z=!1}if(!z){if(K==="["||K==="{"||K==="(")Q++;else if(K==="]"||K==="}"||K===")")Q--;else if(K===","&&Q===0){let H=X.trim();if(H)J.push(H);X="";continue}}X+=K}let Y=X.trim();if(Y)J.push(Y);return J}function RM(Z){let J=[],X=Z.split("\n"),Q=[];for(let z=0;z<X.length;z++){let G=X[z].trim();if((G.startsWith("export function")||G.startsWith("function"))&&Q.length>0)J.push(Q.join("\n")),Q=[];Q.push(X[z])}if(Q.length>0)J.push(Q.join("\n"));return J}import{readdir as VM}from"fs/promises";import{extname as IM,join as PY}from"path";import EM from"process";async function OY(Z,J){await Bun.write(Z,J)}async function TZ(Z){let J=Z??x0.root,X=await VM(J,{withFileTypes:!0}),Q=await Promise.all(X.map((z)=>{let G=PY(J,z.name);return z.isDirectory()?TZ(G):G}));return Array.prototype.concat(...Q).filter((z)=>IM(z)===".ts")}async function wY(Z){try{let J=Z?.cwd||EM.cwd();return(await import(Z?.tsconfigPath||PY(J,"tsconfig.json"))).compilerOptions?.isolatedDeclarations===!0}catch(J){return console.log("Error reading tsconfig.json:",J),!1}}async function LM(Z){try{if(!await wY(Z)){console.error("Error: isolatedModules must be set to true in your tsconfig.json. Ensure `tsc --noEmit` does not output any errors.");return}if(Z?.clean)await AM(Z.outdir,{recursive:!0,force:!0});let X=Z?.cwd||TM.cwd(),Q;if(Z?.entrypoints)Q=await $Y(Z.entrypoints,{cwd:Z.root??`${X}/src`,absolute:!0});else Q=await TZ(Z?.root??`${X}/src`);for(let z of Q){let G=await MY(z);if(G){let Y=wM(Z?.root??"./src",z),$=OM(Y),K=PM(Z?.outdir??"./dist",`${$.name}.d.ts`);await jM(NM(K),{recursive:!0}),await OY(K,G)}else console.warn(`No declarations extracted for ${z}`)}}catch(J){console.error("Error generating declarations:",J)}}async function TY(Z){await LM({...x0,...Z})}var U6=new s8("dtsx"),S1={cwd:LY.cwd(),root:"./src",entrypoints:["**/*.ts"],outdir:"./dist",keepComments:!0,clean:!1,tsconfigPath:"tsconfig.json",verbose:!1};U6.command("generate","Generate TypeScript declaration files").option("--cwd <path>","Current working directory",{default:S1.cwd}).option("--root <path>","Root directory of the project",{default:S1.root}).option("--entrypoints <files>","Entry point files (comma-separated)",{default:S1.entrypoints?.join(","),type:[String]}).option("--outdir <path>","Output directory for generated .d.ts files",{default:S1.outdir}).option("--keep-comments","Keep comments in generated .d.ts files",{default:S1.keepComments}).option("--clean","Clean output directory before generation",{default:S1.clean}).option("--tsconfig <path>","Path to tsconfig.json",{default:S1.tsconfigPath}).option("--verbose","Enable verbose logging",{default:S1.verbose}).example("dtsx generate").example("dtsx generate --entrypoints src/index.ts,src/utils.ts --outdir dist/types").action(async(Z)=>{try{let J={entrypoints:Z.entrypoints?Z.entrypoints:S1.entrypoints,cwd:r6(Z.cwd||S1.cwd),root:r6(Z.root||S1.root),outdir:r6(Z.outdir||S1.outdir),tsconfigPath:r6(Z.tsconfigPath||S1.tsconfigPath),keepComments:Z.keepComments||S1.keepComments,clean:Z.clean||S1.clean,verbose:Z.verbose||S1.verbose};await TY(J)}catch(J){console.error("Error generating .d.ts files:",J),LY.exit(1)}});U6.command("version","Show the version of dtsx").action(()=>{console.log(zZ)});U6.version(zZ);U6.help();U6.parse();
@@ -0,0 +1,3 @@
1
+ import type { DtsGenerationConfig } from './types';
2
+
3
+ export declare const config: DtsGenerationConfig;
@@ -0,0 +1,9 @@
1
+ import type { FunctionSignature } from './types';
2
+
3
+ declare function cleanParameterTypes(params: string): string;
4
+ declare function cleanSingleParameter(param: string): string;
5
+ export declare function extract(filePath: string): Promise<string>;
6
+ export declare function extractDtsTypes(sourceCode: string): string;
7
+ declare function extractFunctionSignature(declaration: string): FunctionSignature;
8
+ declare function extractFunctionName(declaration: string): string;
9
+ declare function extractParams(rest: string);
@@ -0,0 +1,4 @@
1
+ import type { DtsGenerationConfig, DtsGenerationOption } from './types';
2
+
3
+ export declare function generateDeclarationsFromFiles(options?: DtsGenerationConfig): Promise<void>;
4
+ export declare function generate(options?: DtsGenerationOption): Promise<void>;
@@ -0,0 +1,5 @@
1
+ export { config } from './config'
2
+ export * from './extract'
3
+ export * from './generate'
4
+ export * from './types'
5
+ export * from './utils'
@@ -0,0 +1,114 @@
1
+ export declare interface DtsGenerationConfig {
2
+ cwd: string
3
+ root: string
4
+ entrypoints: string[]
5
+ outdir: string
6
+ keepComments: boolean
7
+ clean: boolean
8
+ tsconfigPath: string
9
+ verbose: boolean
10
+ }
11
+ export declare type DtsGenerationOption = Partial<DtsGenerationConfig>
12
+
13
+ * DtsGenerationOptions
14
+ *
15
+ * This is the configuration object for the DTS generation process.
16
+ */
17
+ export declare type DtsGenerationOptions = DtsGenerationOption | DtsGenerationOption[]
18
+
19
+ * Regular expression patterns used throughout the module
20
+ */
21
+ export declare interface RegexPatterns {
22
+ readonly typeImport: RegExp
23
+ readonly regularImport: RegExp
24
+ readonly bracketOpen: RegExp
25
+ readonly bracketClose: RegExp
26
+ readonly functionReturn: RegExp
27
+ readonly typeAnnotation: RegExp
28
+ readonly asyncFunction: RegExp
29
+ readonly genericParams: RegExp
30
+ readonly functionParams: RegExp
31
+ readonly functionReturnType: RegExp
32
+ readonly destructuredParams: RegExp
33
+ readonly typePattern: RegExp
34
+ readonly valueReference: RegExp
35
+ readonly typeReference: RegExp
36
+ readonly functionName: RegExp
37
+ readonly exportCleanup: RegExp
38
+ readonly defaultExport: RegExp
39
+ readonly complexType: RegExp
40
+ readonly unionIntersection: RegExp
41
+ readonly mappedType: RegExp
42
+ readonly conditionalType: RegExp
43
+ readonly genericConstraints: RegExp
44
+ readonly functionOverload: RegExp
45
+ readonly moduleDeclaration: RegExp
46
+ readonly moduleAugmentation: RegExp
47
+ }
48
+ export declare interface ImportTrackingState {
49
+ typeImports: Map<string, Set<string>>
50
+ valueImports: Map<string, Set<string>>
51
+ usedTypes: Set<string>
52
+ usedValues: Set<string>
53
+ exportedTypes: Set<string>
54
+ exportedValues: Set<string>
55
+ valueAliases: Map<string, string>
56
+ importSources: Map<string, string>
57
+ typeExportSources: Map<string, string>
58
+ defaultExportValue?: string
59
+ }
60
+ export declare interface ProcessingState {
61
+ dtsLines: string[]
62
+ imports: string[]
63
+ usedTypes: Set<string>
64
+ typeSources: Map<string, string>
65
+ defaultExport: string | null
66
+ exportAllStatements: string[]
67
+ currentDeclaration: string
68
+ lastCommentBlock: string
69
+ bracketCount: number
70
+ isMultiLineDeclaration: boolean
71
+ moduleImports: Map<string, ImportInfo>
72
+ availableTypes: Map<string, string>
73
+ availableValues: Map<string, string>
74
+ currentIndentation: string
75
+ declarationBuffer: {
76
+ type: 'interface' | 'type' | 'const' | 'function' | 'import' | 'export'
77
+ indent: string
78
+ lines: string[]
79
+ comments: string[]
80
+ } | null
81
+ importTracking: ImportTrackingState
82
+ defaultExports: Set<string>
83
+ currentScope: 'top' | 'function'
84
+ }
85
+ export declare interface MethodSignature {
86
+ name: string
87
+ async: boolean
88
+ generics: string
89
+ params: string
90
+ returnType: string
91
+ }
92
+ export declare interface PropertyInfo {
93
+ key: string
94
+ value: string
95
+ type: string
96
+ nested?: PropertyInfo[]
97
+ method?: MethodSignature
98
+ }
99
+ export declare interface ImportInfo {
100
+ kind: 'type' | 'value' | 'mixed'
101
+ usedTypes: Set<string>
102
+ usedValues: Set<string>
103
+ source: string
104
+ }
105
+ export declare interface FunctionSignature {
106
+ name: string
107
+ params: string
108
+ returnType: string
109
+ generics: string
110
+ }
111
+ export declare interface ProcessedMethod {
112
+ name: string
113
+ signature: string
114
+ }
@@ -0,0 +1,5 @@
1
+ import type { DtsGenerationConfig } from './types';
2
+
3
+ export declare function writeToFile(filePath: string, content: string): Promise<void>;
4
+ export declare function getAllTypeScriptFiles(directory?: string): Promise<string[]>;
5
+ export declare function checkIsolatedDeclarations(options?: DtsGenerationConfig): Promise<boolean>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/dtsx",
3
3
  "type": "module",
4
- "version": "0.5.2",
4
+ "version": "0.5.3",
5
5
  "description": "A modern, fast .d.ts generation tool, powered by Bun.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",
@@ -66,7 +66,7 @@
66
66
  "@stacksjs/eslint-config": "^3.8.1-beta.2",
67
67
  "@types/bun": "^1.1.13",
68
68
  "bun-config": "^0.1.2",
69
- "bun-plugin-dtsx": "^0.21.2",
69
+ "bun-plugin-dtsx": "^0.21.3",
70
70
  "tinyglobby": "^0.2.10",
71
71
  "vitepress": "^1.5.0"
72
72
  },