progy 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +19 -19
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1,27 +1,27 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var wQ=Object.create;var{getPrototypeOf:NQ,defineProperty:W0,getOwnPropertyNames:DQ}=Object;var MQ=Object.prototype.hasOwnProperty;var $q=(q,Q,Y)=>{Y=q!=null?wQ(NQ(q)):{};let X=Q||!q||!q.__esModule?W0(Y,"default",{value:q,enumerable:!0}):Y;for(let J of DQ(q))if(!MQ.call(X,J))W0(X,J,{get:()=>q[J],enumerable:!0});return X};var O=(q,Q)=>()=>(Q||q((Q={exports:{}}).exports,Q),Q.exports);var f=import.meta.require;var Vq=O((SQ)=>{class vq extends Error{constructor(q,Q,Y){super(Y);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=Q,this.exitCode=q,this.nestedError=void 0}}class G0 extends vq{constructor(q){super(1,"commander.invalidArgument",q);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}SQ.CommanderError=vq;SQ.InvalidArgumentError=G0});var Mq=O((OQ)=>{var{InvalidArgumentError:ZQ}=Vq();class K0{constructor(q,Q){switch(this.description=Q||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,q[0]){case"<":this.required=!0,this._name=q.slice(1,-1);break;case"[":this.required=!1,this._name=q.slice(1,-1);break;default:this.required=!0,this._name=q;break}if(this._name.length>3&&this._name.slice(-3)==="...")this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_concatValue(q,Q){if(Q===this.defaultValue||!Array.isArray(Q))return[q];return Q.concat(q)}default(q,Q){return this.defaultValue=q,this.defaultValueDescription=Q,this}argParser(q){return this.parseArg=q,this}choices(q){return this.argChoices=q.slice(),this.parseArg=(Q,Y)=>{if(!this.argChoices.includes(Q))throw new ZQ(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(Q,Y);return Q},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function PQ(q){let Q=q.name()+(q.variadic===!0?"...":"");return q.required?"<"+Q+">":"["+Q+"]"}OQ.Argument=K0;OQ.humanReadableArgName=PQ});var hq=O((_Q)=>{var{humanReadableArgName:xQ}=Mq();class $0{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(q){let Q=q.commands.filter((X)=>!X._hidden),Y=q._getHelpCommand();if(Y&&!Y._hidden)Q.push(Y);if(this.sortSubcommands)Q.sort((X,J)=>{return X.name().localeCompare(J.name())});return Q}compareOptions(q,Q){let Y=(X)=>{return X.short?X.short.replace(/^-/,""):X.long.replace(/^--/,"")};return Y(q).localeCompare(Y(Q))}visibleOptions(q){let Q=q.options.filter((X)=>!X.hidden),Y=q._getHelpOption();if(Y&&!Y.hidden){let X=Y.short&&q._findOption(Y.short),J=Y.long&&q._findOption(Y.long);if(!X&&!J)Q.push(Y);else if(Y.long&&!J)Q.push(q.createOption(Y.long,Y.description));else if(Y.short&&!X)Q.push(q.createOption(Y.short,Y.description))}if(this.sortOptions)Q.sort(this.compareOptions);return Q}visibleGlobalOptions(q){if(!this.showGlobalOptions)return[];let Q=[];for(let Y=q.parent;Y;Y=Y.parent){let X=Y.options.filter((J)=>!J.hidden);Q.push(...X)}if(this.sortOptions)Q.sort(this.compareOptions);return Q}visibleArguments(q){if(q._argsDescription)q.registeredArguments.forEach((Q)=>{Q.description=Q.description||q._argsDescription[Q.name()]||""});if(q.registeredArguments.find((Q)=>Q.description))return q.registeredArguments;return[]}subcommandTerm(q){let Q=q.registeredArguments.map((Y)=>xQ(Y)).join(" ");return q._name+(q._aliases[0]?"|"+q._aliases[0]:"")+(q.options.length?" [options]":"")+(Q?" "+Q:"")}optionTerm(q){return q.flags}argumentTerm(q){return q.name()}longestSubcommandTermLength(q,Q){return Q.visibleCommands(q).reduce((Y,X)=>{return Math.max(Y,Q.subcommandTerm(X).length)},0)}longestOptionTermLength(q,Q){return Q.visibleOptions(q).reduce((Y,X)=>{return Math.max(Y,Q.optionTerm(X).length)},0)}longestGlobalOptionTermLength(q,Q){return Q.visibleGlobalOptions(q).reduce((Y,X)=>{return Math.max(Y,Q.optionTerm(X).length)},0)}longestArgumentTermLength(q,Q){return Q.visibleArguments(q).reduce((Y,X)=>{return Math.max(Y,Q.argumentTerm(X).length)},0)}commandUsage(q){let Q=q._name;if(q._aliases[0])Q=Q+"|"+q._aliases[0];let Y="";for(let X=q.parent;X;X=X.parent)Y=X.name()+" "+Y;return Y+Q+" "+q.usage()}commandDescription(q){return q.description()}subcommandDescription(q){return q.summary()||q.description()}optionDescription(q){let Q=[];if(q.argChoices)Q.push(`choices: ${q.argChoices.map((Y)=>JSON.stringify(Y)).join(", ")}`);if(q.defaultValue!==void 0){if(q.required||q.optional||q.isBoolean()&&typeof q.defaultValue==="boolean")Q.push(`default: ${q.defaultValueDescription||JSON.stringify(q.defaultValue)}`)}if(q.presetArg!==void 0&&q.optional)Q.push(`preset: ${JSON.stringify(q.presetArg)}`);if(q.envVar!==void 0)Q.push(`env: ${q.envVar}`);if(Q.length>0)return`${q.description} (${Q.join(", ")})`;return q.description}argumentDescription(q){let Q=[];if(q.argChoices)Q.push(`choices: ${q.argChoices.map((Y)=>JSON.stringify(Y)).join(", ")}`);if(q.defaultValue!==void 0)Q.push(`default: ${q.defaultValueDescription||JSON.stringify(q.defaultValue)}`);if(Q.length>0){let Y=`(${Q.join(", ")})`;if(q.description)return`${q.description} ${Y}`;return Y}return q.description}formatHelp(q,Q){let Y=Q.padWidth(q,Q),X=Q.helpWidth||80,J=2,W=2;function K(V,R){if(R){let H=`${V.padEnd(Y+2)}${R}`;return Q.wrap(H,X-2,Y+2)}return V}function $(V){return V.join(`
4
- `).replace(/^/gm," ".repeat(2))}let L=[`Usage: ${Q.commandUsage(q)}`,""],B=Q.commandDescription(q);if(B.length>0)L=L.concat([Q.wrap(B,X,0),""]);let U=Q.visibleArguments(q).map((V)=>{return K(Q.argumentTerm(V),Q.argumentDescription(V))});if(U.length>0)L=L.concat(["Arguments:",$(U),""]);let w=Q.visibleOptions(q).map((V)=>{return K(Q.optionTerm(V),Q.optionDescription(V))});if(w.length>0)L=L.concat(["Options:",$(w),""]);if(this.showGlobalOptions){let V=Q.visibleGlobalOptions(q).map((R)=>{return K(Q.optionTerm(R),Q.optionDescription(R))});if(V.length>0)L=L.concat(["Global Options:",$(V),""])}let D=Q.visibleCommands(q).map((V)=>{return K(Q.subcommandTerm(V),Q.subcommandDescription(V))});if(D.length>0)L=L.concat(["Commands:",$(D),""]);return L.join(`
3
+ var NQ=Object.create;var{getPrototypeOf:DQ,defineProperty:G0,getOwnPropertyNames:MQ}=Object;var SQ=Object.prototype.hasOwnProperty;var $q=(q,Q,Y)=>{Y=q!=null?NQ(DQ(q)):{};let X=Q||!q||!q.__esModule?G0(Y,"default",{value:q,enumerable:!0}):Y;for(let J of MQ(q))if(!SQ.call(X,J))G0(X,J,{get:()=>q[J],enumerable:!0});return X};var O=(q,Q)=>()=>(Q||q((Q={exports:{}}).exports,Q),Q.exports);var f=import.meta.require;var Vq=O((TQ)=>{class kq extends Error{constructor(q,Q,Y){super(Y);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=Q,this.exitCode=q,this.nestedError=void 0}}class K0 extends kq{constructor(q){super(1,"commander.invalidArgument",q);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}TQ.CommanderError=kq;TQ.InvalidArgumentError=K0});var Mq=O((bQ)=>{var{InvalidArgumentError:PQ}=Vq();class $0{constructor(q,Q){switch(this.description=Q||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,q[0]){case"<":this.required=!0,this._name=q.slice(1,-1);break;case"[":this.required=!1,this._name=q.slice(1,-1);break;default:this.required=!0,this._name=q;break}if(this._name.length>3&&this._name.slice(-3)==="...")this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_concatValue(q,Q){if(Q===this.defaultValue||!Array.isArray(Q))return[q];return Q.concat(q)}default(q,Q){return this.defaultValue=q,this.defaultValueDescription=Q,this}argParser(q){return this.parseArg=q,this}choices(q){return this.argChoices=q.slice(),this.parseArg=(Q,Y)=>{if(!this.argChoices.includes(Q))throw new PQ(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(Q,Y);return Q},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function OQ(q){let Q=q.name()+(q.variadic===!0?"...":"");return q.required?"<"+Q+">":"["+Q+"]"}bQ.Argument=$0;bQ.humanReadableArgName=OQ});var vq=O((kQ)=>{var{humanReadableArgName:_Q}=Mq();class V0{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(q){let Q=q.commands.filter((X)=>!X._hidden),Y=q._getHelpCommand();if(Y&&!Y._hidden)Q.push(Y);if(this.sortSubcommands)Q.sort((X,J)=>{return X.name().localeCompare(J.name())});return Q}compareOptions(q,Q){let Y=(X)=>{return X.short?X.short.replace(/^-/,""):X.long.replace(/^--/,"")};return Y(q).localeCompare(Y(Q))}visibleOptions(q){let Q=q.options.filter((X)=>!X.hidden),Y=q._getHelpOption();if(Y&&!Y.hidden){let X=Y.short&&q._findOption(Y.short),J=Y.long&&q._findOption(Y.long);if(!X&&!J)Q.push(Y);else if(Y.long&&!J)Q.push(q.createOption(Y.long,Y.description));else if(Y.short&&!X)Q.push(q.createOption(Y.short,Y.description))}if(this.sortOptions)Q.sort(this.compareOptions);return Q}visibleGlobalOptions(q){if(!this.showGlobalOptions)return[];let Q=[];for(let Y=q.parent;Y;Y=Y.parent){let X=Y.options.filter((J)=>!J.hidden);Q.push(...X)}if(this.sortOptions)Q.sort(this.compareOptions);return Q}visibleArguments(q){if(q._argsDescription)q.registeredArguments.forEach((Q)=>{Q.description=Q.description||q._argsDescription[Q.name()]||""});if(q.registeredArguments.find((Q)=>Q.description))return q.registeredArguments;return[]}subcommandTerm(q){let Q=q.registeredArguments.map((Y)=>_Q(Y)).join(" ");return q._name+(q._aliases[0]?"|"+q._aliases[0]:"")+(q.options.length?" [options]":"")+(Q?" "+Q:"")}optionTerm(q){return q.flags}argumentTerm(q){return q.name()}longestSubcommandTermLength(q,Q){return Q.visibleCommands(q).reduce((Y,X)=>{return Math.max(Y,Q.subcommandTerm(X).length)},0)}longestOptionTermLength(q,Q){return Q.visibleOptions(q).reduce((Y,X)=>{return Math.max(Y,Q.optionTerm(X).length)},0)}longestGlobalOptionTermLength(q,Q){return Q.visibleGlobalOptions(q).reduce((Y,X)=>{return Math.max(Y,Q.optionTerm(X).length)},0)}longestArgumentTermLength(q,Q){return Q.visibleArguments(q).reduce((Y,X)=>{return Math.max(Y,Q.argumentTerm(X).length)},0)}commandUsage(q){let Q=q._name;if(q._aliases[0])Q=Q+"|"+q._aliases[0];let Y="";for(let X=q.parent;X;X=X.parent)Y=X.name()+" "+Y;return Y+Q+" "+q.usage()}commandDescription(q){return q.description()}subcommandDescription(q){return q.summary()||q.description()}optionDescription(q){let Q=[];if(q.argChoices)Q.push(`choices: ${q.argChoices.map((Y)=>JSON.stringify(Y)).join(", ")}`);if(q.defaultValue!==void 0){if(q.required||q.optional||q.isBoolean()&&typeof q.defaultValue==="boolean")Q.push(`default: ${q.defaultValueDescription||JSON.stringify(q.defaultValue)}`)}if(q.presetArg!==void 0&&q.optional)Q.push(`preset: ${JSON.stringify(q.presetArg)}`);if(q.envVar!==void 0)Q.push(`env: ${q.envVar}`);if(Q.length>0)return`${q.description} (${Q.join(", ")})`;return q.description}argumentDescription(q){let Q=[];if(q.argChoices)Q.push(`choices: ${q.argChoices.map((Y)=>JSON.stringify(Y)).join(", ")}`);if(q.defaultValue!==void 0)Q.push(`default: ${q.defaultValueDescription||JSON.stringify(q.defaultValue)}`);if(Q.length>0){let Y=`(${Q.join(", ")})`;if(q.description)return`${q.description} ${Y}`;return Y}return q.description}formatHelp(q,Q){let Y=Q.padWidth(q,Q),X=Q.helpWidth||80,J=2,W=2;function K(V,R){if(R){let H=`${V.padEnd(Y+2)}${R}`;return Q.wrap(H,X-2,Y+2)}return V}function $(V){return V.join(`
4
+ `).replace(/^/gm," ".repeat(2))}let L=[`Usage: ${Q.commandUsage(q)}`,""],B=Q.commandDescription(q);if(B.length>0)L=L.concat([Q.wrap(B,X,0),""]);let E=Q.visibleArguments(q).map((V)=>{return K(Q.argumentTerm(V),Q.argumentDescription(V))});if(E.length>0)L=L.concat(["Arguments:",$(E),""]);let w=Q.visibleOptions(q).map((V)=>{return K(Q.optionTerm(V),Q.optionDescription(V))});if(w.length>0)L=L.concat(["Options:",$(w),""]);if(this.showGlobalOptions){let V=Q.visibleGlobalOptions(q).map((R)=>{return K(Q.optionTerm(R),Q.optionDescription(R))});if(V.length>0)L=L.concat(["Global Options:",$(V),""])}let M=Q.visibleCommands(q).map((V)=>{return K(Q.subcommandTerm(V),Q.subcommandDescription(V))});if(M.length>0)L=L.concat(["Commands:",$(M),""]);return L.join(`
5
5
  `)}padWidth(q,Q){return Math.max(Q.longestOptionTermLength(q,Q),Q.longestGlobalOptionTermLength(q,Q),Q.longestSubcommandTermLength(q,Q),Q.longestArgumentTermLength(q,Q))}wrap(q,Q,Y,X=40){let W=new RegExp(`[\\n][${" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF"}]+`);if(q.match(W))return q;let K=Q-Y;if(K<X)return q;let $=q.slice(0,Y),L=q.slice(Y).replace(`\r
6
6
  `,`
7
- `),B=" ".repeat(Y),w=`\\s${"\u200B"}`,D=new RegExp(`
8
- |.{1,${K-1}}([${w}]|$)|[^${w}]+?([${w}]|$)`,"g"),V=L.match(D)||[];return $+V.map((R,H)=>{if(R===`
7
+ `),B=" ".repeat(Y),w=`\\s${"\u200B"}`,M=new RegExp(`
8
+ |.{1,${K-1}}([${w}]|$)|[^${w}]+?([${w}]|$)`,"g"),V=L.match(M)||[];return $+V.map((R,H)=>{if(R===`
9
9
  `)return"";return(H>0?B:"")+R.trimEnd()}).join(`
10
- `)}}_Q.Help=$0});var gq=O((yQ)=>{var{InvalidArgumentError:vQ}=Vq();class V0{constructor(q,Q){this.flags=q,this.description=Q||"",this.required=q.includes("<"),this.optional=q.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(q),this.mandatory=!1;let Y=gQ(q);if(this.short=Y.shortFlag,this.long=Y.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(q,Q){return this.defaultValue=q,this.defaultValueDescription=Q,this}preset(q){return this.presetArg=q,this}conflicts(q){return this.conflictsWith=this.conflictsWith.concat(q),this}implies(q){let Q=q;if(typeof q==="string")Q={[q]:!0};return this.implied=Object.assign(this.implied||{},Q),this}env(q){return this.envVar=q,this}argParser(q){return this.parseArg=q,this}makeOptionMandatory(q=!0){return this.mandatory=!!q,this}hideHelp(q=!0){return this.hidden=!!q,this}_concatValue(q,Q){if(Q===this.defaultValue||!Array.isArray(Q))return[q];return Q.concat(q)}choices(q){return this.argChoices=q.slice(),this.parseArg=(Q,Y)=>{if(!this.argChoices.includes(Q))throw new vQ(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(Q,Y);return Q},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){return hQ(this.name().replace(/^no-/,""))}is(q){return this.short===q||this.long===q}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class L0{constructor(q){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,q.forEach((Q)=>{if(Q.negate)this.negativeOptions.set(Q.attributeName(),Q);else this.positiveOptions.set(Q.attributeName(),Q)}),this.negativeOptions.forEach((Q,Y)=>{if(this.positiveOptions.has(Y))this.dualOptions.add(Y)})}valueFromOption(q,Q){let Y=Q.attributeName();if(!this.dualOptions.has(Y))return!0;let X=this.negativeOptions.get(Y).presetArg,J=X!==void 0?X:!1;return Q.negate===(J===q)}}function hQ(q){return q.split("-").reduce((Q,Y)=>{return Q+Y[0].toUpperCase()+Y.slice(1)})}function gQ(q){let Q,Y,X=q.split(/[ |,]+/);if(X.length>1&&!/^[[<]/.test(X[1]))Q=X.shift();if(Y=X.shift(),!Q&&/^-[^-]$/.test(Y))Q=Y,Y=void 0;return{shortFlag:Q,longFlag:Y}}yQ.Option=V0;yQ.DualOptions=L0});var B0=O((pQ)=>{function mQ(q,Q){if(Math.abs(q.length-Q.length)>3)return Math.max(q.length,Q.length);let Y=[];for(let X=0;X<=q.length;X++)Y[X]=[X];for(let X=0;X<=Q.length;X++)Y[0][X]=X;for(let X=1;X<=Q.length;X++)for(let J=1;J<=q.length;J++){let W=1;if(q[J-1]===Q[X-1])W=0;else W=1;if(Y[J][X]=Math.min(Y[J-1][X]+1,Y[J][X-1]+1,Y[J-1][X-1]+W),J>1&&X>1&&q[J-1]===Q[X-2]&&q[J-2]===Q[X-1])Y[J][X]=Math.min(Y[J][X],Y[J-2][X-2]+1)}return Y[q.length][Q.length]}function cQ(q,Q){if(!Q||Q.length===0)return"";Q=Array.from(new Set(Q));let Y=q.startsWith("--");if(Y)q=q.slice(2),Q=Q.map((K)=>K.slice(2));let X=[],J=3,W=0.4;if(Q.forEach((K)=>{if(K.length<=1)return;let $=mQ(q,K),L=Math.max(q.length,K.length);if((L-$)/L>W){if($<J)J=$,X=[K];else if($===J)X.push(K)}}),X.sort((K,$)=>K.localeCompare($)),Y)X=X.map((K)=>`--${K}`);if(X.length>1)return`
10
+ `)}}kQ.Help=V0});var hq=O((uQ)=>{var{InvalidArgumentError:hQ}=Vq();class L0{constructor(q,Q){this.flags=q,this.description=Q||"",this.required=q.includes("<"),this.optional=q.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(q),this.mandatory=!1;let Y=yQ(q);if(this.short=Y.shortFlag,this.long=Y.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(q,Q){return this.defaultValue=q,this.defaultValueDescription=Q,this}preset(q){return this.presetArg=q,this}conflicts(q){return this.conflictsWith=this.conflictsWith.concat(q),this}implies(q){let Q=q;if(typeof q==="string")Q={[q]:!0};return this.implied=Object.assign(this.implied||{},Q),this}env(q){return this.envVar=q,this}argParser(q){return this.parseArg=q,this}makeOptionMandatory(q=!0){return this.mandatory=!!q,this}hideHelp(q=!0){return this.hidden=!!q,this}_concatValue(q,Q){if(Q===this.defaultValue||!Array.isArray(Q))return[q];return Q.concat(q)}choices(q){return this.argChoices=q.slice(),this.parseArg=(Q,Y)=>{if(!this.argChoices.includes(Q))throw new hQ(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._concatValue(Q,Y);return Q},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){return gQ(this.name().replace(/^no-/,""))}is(q){return this.short===q||this.long===q}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class B0{constructor(q){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,q.forEach((Q)=>{if(Q.negate)this.negativeOptions.set(Q.attributeName(),Q);else this.positiveOptions.set(Q.attributeName(),Q)}),this.negativeOptions.forEach((Q,Y)=>{if(this.positiveOptions.has(Y))this.dualOptions.add(Y)})}valueFromOption(q,Q){let Y=Q.attributeName();if(!this.dualOptions.has(Y))return!0;let X=this.negativeOptions.get(Y).presetArg,J=X!==void 0?X:!1;return Q.negate===(J===q)}}function gQ(q){return q.split("-").reduce((Q,Y)=>{return Q+Y[0].toUpperCase()+Y.slice(1)})}function yQ(q){let Q,Y,X=q.split(/[ |,]+/);if(X.length>1&&!/^[[<]/.test(X[1]))Q=X.shift();if(Y=X.shift(),!Q&&/^-[^-]$/.test(Y))Q=Y,Y=void 0;return{shortFlag:Q,longFlag:Y}}uQ.Option=L0;uQ.DualOptions=B0});var R0=O((lQ)=>{function cQ(q,Q){if(Math.abs(q.length-Q.length)>3)return Math.max(q.length,Q.length);let Y=[];for(let X=0;X<=q.length;X++)Y[X]=[X];for(let X=0;X<=Q.length;X++)Y[0][X]=X;for(let X=1;X<=Q.length;X++)for(let J=1;J<=q.length;J++){let W=1;if(q[J-1]===Q[X-1])W=0;else W=1;if(Y[J][X]=Math.min(Y[J-1][X]+1,Y[J][X-1]+1,Y[J-1][X-1]+W),J>1&&X>1&&q[J-1]===Q[X-2]&&q[J-2]===Q[X-1])Y[J][X]=Math.min(Y[J][X],Y[J-2][X-2]+1)}return Y[q.length][Q.length]}function pQ(q,Q){if(!Q||Q.length===0)return"";Q=Array.from(new Set(Q));let Y=q.startsWith("--");if(Y)q=q.slice(2),Q=Q.map((K)=>K.slice(2));let X=[],J=3,W=0.4;if(Q.forEach((K)=>{if(K.length<=1)return;let $=cQ(q,K),L=Math.max(q.length,K.length);if((L-$)/L>W){if($<J)J=$,X=[K];else if($===J)X.push(K)}}),X.sort((K,$)=>K.localeCompare($)),Y)X=X.map((K)=>`--${K}`);if(X.length>1)return`
11
11
  (Did you mean one of ${X.join(", ")}?)`;if(X.length===1)return`
12
- (Did you mean ${X[0]}?)`;return""}pQ.suggestSimilar=cQ});var H0=O((sQ)=>{var dQ=f("events").EventEmitter,yq=f("child_process"),o=f("path"),uq=f("fs"),x=f("process"),{Argument:oQ,humanReadableArgName:rQ}=Mq(),{CommanderError:fq}=Vq(),{Help:iQ}=hq(),{Option:R0,DualOptions:nQ}=gq(),{suggestSimilar:A0}=B0();class mq extends dQ{constructor(q){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=q||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._outputConfiguration={writeOut:(Q)=>x.stdout.write(Q),writeErr:(Q)=>x.stderr.write(Q),getOutHelpWidth:()=>x.stdout.isTTY?x.stdout.columns:void 0,getErrHelpWidth:()=>x.stderr.isTTY?x.stderr.columns:void 0,outputError:(Q,Y)=>Y(Q)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(q){return this._outputConfiguration=q._outputConfiguration,this._helpOption=q._helpOption,this._helpCommand=q._helpCommand,this._helpConfiguration=q._helpConfiguration,this._exitCallback=q._exitCallback,this._storeOptionsAsProperties=q._storeOptionsAsProperties,this._combineFlagAndOptionalValue=q._combineFlagAndOptionalValue,this._allowExcessArguments=q._allowExcessArguments,this._enablePositionalOptions=q._enablePositionalOptions,this._showHelpAfterError=q._showHelpAfterError,this._showSuggestionAfterError=q._showSuggestionAfterError,this}_getCommandAndAncestors(){let q=[];for(let Q=this;Q;Q=Q.parent)q.push(Q);return q}command(q,Q,Y){let X=Q,J=Y;if(typeof X==="object"&&X!==null)J=X,X=null;J=J||{};let[,W,K]=q.match(/([^ ]+) *(.*)/),$=this.createCommand(W);if(X)$.description(X),$._executableHandler=!0;if(J.isDefault)this._defaultCommandName=$._name;if($._hidden=!!(J.noHelp||J.hidden),$._executableFile=J.executableFile||null,K)$.arguments(K);if(this._registerCommand($),$.parent=this,$.copyInheritedSettings(this),X)return this;return $}createCommand(q){return new mq(q)}createHelp(){return Object.assign(new iQ,this.configureHelp())}configureHelp(q){if(q===void 0)return this._helpConfiguration;return this._helpConfiguration=q,this}configureOutput(q){if(q===void 0)return this._outputConfiguration;return Object.assign(this._outputConfiguration,q),this}showHelpAfterError(q=!0){if(typeof q!=="string")q=!!q;return this._showHelpAfterError=q,this}showSuggestionAfterError(q=!0){return this._showSuggestionAfterError=!!q,this}addCommand(q,Q){if(!q._name)throw Error(`Command passed to .addCommand() must have a name
13
- - specify the name in Command constructor or using .name()`);if(Q=Q||{},Q.isDefault)this._defaultCommandName=q._name;if(Q.noHelp||Q.hidden)q._hidden=!0;return this._registerCommand(q),q.parent=this,q._checkForBrokenPassThrough(),this}createArgument(q,Q){return new oQ(q,Q)}argument(q,Q,Y,X){let J=this.createArgument(q,Q);if(typeof Y==="function")J.default(X).argParser(Y);else J.default(Y);return this.addArgument(J),this}arguments(q){return q.trim().split(/ +/).forEach((Q)=>{this.argument(Q)}),this}addArgument(q){let Q=this.registeredArguments.slice(-1)[0];if(Q&&Q.variadic)throw Error(`only the last argument can be variadic '${Q.name()}'`);if(q.required&&q.defaultValue!==void 0&&q.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${q.name()}'`);return this.registeredArguments.push(q),this}helpCommand(q,Q){if(typeof q==="boolean")return this._addImplicitHelpCommand=q,this;q=q??"help [command]";let[,Y,X]=q.match(/([^ ]+) *(.*)/),J=Q??"display help for command",W=this.createCommand(Y);if(W.helpOption(!1),X)W.arguments(X);if(J)W.description(J);return this._addImplicitHelpCommand=!0,this._helpCommand=W,this}addHelpCommand(q,Q){if(typeof q!=="object")return this.helpCommand(q,Q),this;return this._addImplicitHelpCommand=!0,this._helpCommand=q,this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(q,Q){let Y=["preSubcommand","preAction","postAction"];if(!Y.includes(q))throw Error(`Unexpected value for event passed to hook : '${q}'.
14
- Expecting one of '${Y.join("', '")}'`);if(this._lifeCycleHooks[q])this._lifeCycleHooks[q].push(Q);else this._lifeCycleHooks[q]=[Q];return this}exitOverride(q){if(q)this._exitCallback=q;else this._exitCallback=(Q)=>{if(Q.code!=="commander.executeSubCommandAsync")throw Q};return this}_exit(q,Q,Y){if(this._exitCallback)this._exitCallback(new fq(q,Q,Y));x.exit(q)}action(q){let Q=(Y)=>{let X=this.registeredArguments.length,J=Y.slice(0,X);if(this._storeOptionsAsProperties)J[X]=this;else J[X]=this.opts();return J.push(this),q.apply(this,J)};return this._actionHandler=Q,this}createOption(q,Q){return new R0(q,Q)}_callParseArg(q,Q,Y,X){try{return q.parseArg(Q,Y)}catch(J){if(J.code==="commander.invalidArgument"){let W=`${X} ${J.message}`;this.error(W,{exitCode:J.exitCode,code:J.code})}throw J}}_registerOption(q){let Q=q.short&&this._findOption(q.short)||q.long&&this._findOption(q.long);if(Q){let Y=q.long&&this._findOption(q.long)?q.long:q.short;throw Error(`Cannot add option '${q.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${Y}'
15
- - already used by option '${Q.flags}'`)}this.options.push(q)}_registerCommand(q){let Q=(X)=>{return[X.name()].concat(X.aliases())},Y=Q(q).find((X)=>this._findCommand(X));if(Y){let X=Q(this._findCommand(Y)).join("|"),J=Q(q).join("|");throw Error(`cannot add command '${J}' as already have command '${X}'`)}this.commands.push(q)}addOption(q){this._registerOption(q);let Q=q.name(),Y=q.attributeName();if(q.negate){let J=q.long.replace(/^--no-/,"--");if(!this._findOption(J))this.setOptionValueWithSource(Y,q.defaultValue===void 0?!0:q.defaultValue,"default")}else if(q.defaultValue!==void 0)this.setOptionValueWithSource(Y,q.defaultValue,"default");let X=(J,W,K)=>{if(J==null&&q.presetArg!==void 0)J=q.presetArg;let $=this.getOptionValue(Y);if(J!==null&&q.parseArg)J=this._callParseArg(q,J,$,W);else if(J!==null&&q.variadic)J=q._concatValue(J,$);if(J==null)if(q.negate)J=!1;else if(q.isBoolean()||q.optional)J=!0;else J="";this.setOptionValueWithSource(Y,J,K)};if(this.on("option:"+Q,(J)=>{let W=`error: option '${q.flags}' argument '${J}' is invalid.`;X(J,W,"cli")}),q.envVar)this.on("optionEnv:"+Q,(J)=>{let W=`error: option '${q.flags}' value '${J}' from env '${q.envVar}' is invalid.`;X(J,W,"env")});return this}_optionEx(q,Q,Y,X,J){if(typeof Q==="object"&&Q instanceof R0)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let W=this.createOption(Q,Y);if(W.makeOptionMandatory(!!q.mandatory),typeof X==="function")W.default(J).argParser(X);else if(X instanceof RegExp){let K=X;X=($,L)=>{let B=K.exec($);return B?B[0]:L},W.default(J).argParser(X)}else W.default(X);return this.addOption(W)}option(q,Q,Y,X){return this._optionEx({},q,Q,Y,X)}requiredOption(q,Q,Y,X){return this._optionEx({mandatory:!0},q,Q,Y,X)}combineFlagAndOptionalValue(q=!0){return this._combineFlagAndOptionalValue=!!q,this}allowUnknownOption(q=!0){return this._allowUnknownOption=!!q,this}allowExcessArguments(q=!0){return this._allowExcessArguments=!!q,this}enablePositionalOptions(q=!0){return this._enablePositionalOptions=!!q,this}passThroughOptions(q=!0){return this._passThroughOptions=!!q,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(q=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!q,this}getOptionValue(q){if(this._storeOptionsAsProperties)return this[q];return this._optionValues[q]}setOptionValue(q,Q){return this.setOptionValueWithSource(q,Q,void 0)}setOptionValueWithSource(q,Q,Y){if(this._storeOptionsAsProperties)this[q]=Q;else this._optionValues[q]=Q;return this._optionValueSources[q]=Y,this}getOptionValueSource(q){return this._optionValueSources[q]}getOptionValueSourceWithGlobals(q){let Q;return this._getCommandAndAncestors().forEach((Y)=>{if(Y.getOptionValueSource(q)!==void 0)Q=Y.getOptionValueSource(q)}),Q}_prepareUserArgs(q,Q){if(q!==void 0&&!Array.isArray(q))throw Error("first parameter to parse must be array or undefined");if(Q=Q||{},q===void 0&&Q.from===void 0){if(x.versions?.electron)Q.from="electron";let X=x.execArgv??[];if(X.includes("-e")||X.includes("--eval")||X.includes("-p")||X.includes("--print"))Q.from="eval"}if(q===void 0)q=x.argv;this.rawArgs=q.slice();let Y;switch(Q.from){case void 0:case"node":this._scriptPath=q[1],Y=q.slice(2);break;case"electron":if(x.defaultApp)this._scriptPath=q[1],Y=q.slice(2);else Y=q.slice(1);break;case"user":Y=q.slice(0);break;case"eval":Y=q.slice(1);break;default:throw Error(`unexpected parse option { from: '${Q.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",Y}parse(q,Q){let Y=this._prepareUserArgs(q,Q);return this._parseCommand([],Y),this}async parseAsync(q,Q){let Y=this._prepareUserArgs(q,Q);return await this._parseCommand([],Y),this}_executeSubCommand(q,Q){Q=Q.slice();let Y=!1,X=[".js",".ts",".tsx",".mjs",".cjs"];function J(B,U){let w=o.resolve(B,U);if(uq.existsSync(w))return w;if(X.includes(o.extname(U)))return;let D=X.find((V)=>uq.existsSync(`${w}${V}`));if(D)return`${w}${D}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let W=q._executableFile||`${this._name}-${q._name}`,K=this._executableDir||"";if(this._scriptPath){let B;try{B=uq.realpathSync(this._scriptPath)}catch(U){B=this._scriptPath}K=o.resolve(o.dirname(B),K)}if(K){let B=J(K,W);if(!B&&!q._executableFile&&this._scriptPath){let U=o.basename(this._scriptPath,o.extname(this._scriptPath));if(U!==this._name)B=J(K,`${U}-${q._name}`)}W=B||W}Y=X.includes(o.extname(W));let $;if(x.platform!=="win32")if(Y)Q.unshift(W),Q=I0(x.execArgv).concat(Q),$=yq.spawn(x.argv[0],Q,{stdio:"inherit"});else $=yq.spawn(W,Q,{stdio:"inherit"});else Q.unshift(W),Q=I0(x.execArgv).concat(Q),$=yq.spawn(x.execPath,Q,{stdio:"inherit"});if(!$.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((U)=>{x.on(U,()=>{if($.killed===!1&&$.exitCode===null)$.kill(U)})});let L=this._exitCallback;$.on("close",(B)=>{if(B=B??1,!L)x.exit(B);else L(new fq(B,"commander.executeSubCommandAsync","(close)"))}),$.on("error",(B)=>{if(B.code==="ENOENT"){let U=K?`searched for local subcommand relative to directory '${K}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",w=`'${W}' does not exist
12
+ (Did you mean ${X[0]}?)`;return""}lQ.suggestSimilar=pQ});var z0=O((tQ)=>{var oQ=f("events").EventEmitter,gq=f("child_process"),o=f("path"),yq=f("fs"),_=f("process"),{Argument:rQ,humanReadableArgName:iQ}=Mq(),{CommanderError:uq}=Vq(),{Help:nQ}=vq(),{Option:A0,DualOptions:sQ}=hq(),{suggestSimilar:I0}=R0();class fq extends oQ{constructor(q){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=q||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._outputConfiguration={writeOut:(Q)=>_.stdout.write(Q),writeErr:(Q)=>_.stderr.write(Q),getOutHelpWidth:()=>_.stdout.isTTY?_.stdout.columns:void 0,getErrHelpWidth:()=>_.stderr.isTTY?_.stderr.columns:void 0,outputError:(Q,Y)=>Y(Q)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(q){return this._outputConfiguration=q._outputConfiguration,this._helpOption=q._helpOption,this._helpCommand=q._helpCommand,this._helpConfiguration=q._helpConfiguration,this._exitCallback=q._exitCallback,this._storeOptionsAsProperties=q._storeOptionsAsProperties,this._combineFlagAndOptionalValue=q._combineFlagAndOptionalValue,this._allowExcessArguments=q._allowExcessArguments,this._enablePositionalOptions=q._enablePositionalOptions,this._showHelpAfterError=q._showHelpAfterError,this._showSuggestionAfterError=q._showSuggestionAfterError,this}_getCommandAndAncestors(){let q=[];for(let Q=this;Q;Q=Q.parent)q.push(Q);return q}command(q,Q,Y){let X=Q,J=Y;if(typeof X==="object"&&X!==null)J=X,X=null;J=J||{};let[,W,K]=q.match(/([^ ]+) *(.*)/),$=this.createCommand(W);if(X)$.description(X),$._executableHandler=!0;if(J.isDefault)this._defaultCommandName=$._name;if($._hidden=!!(J.noHelp||J.hidden),$._executableFile=J.executableFile||null,K)$.arguments(K);if(this._registerCommand($),$.parent=this,$.copyInheritedSettings(this),X)return this;return $}createCommand(q){return new fq(q)}createHelp(){return Object.assign(new nQ,this.configureHelp())}configureHelp(q){if(q===void 0)return this._helpConfiguration;return this._helpConfiguration=q,this}configureOutput(q){if(q===void 0)return this._outputConfiguration;return Object.assign(this._outputConfiguration,q),this}showHelpAfterError(q=!0){if(typeof q!=="string")q=!!q;return this._showHelpAfterError=q,this}showSuggestionAfterError(q=!0){return this._showSuggestionAfterError=!!q,this}addCommand(q,Q){if(!q._name)throw Error(`Command passed to .addCommand() must have a name
13
+ - specify the name in Command constructor or using .name()`);if(Q=Q||{},Q.isDefault)this._defaultCommandName=q._name;if(Q.noHelp||Q.hidden)q._hidden=!0;return this._registerCommand(q),q.parent=this,q._checkForBrokenPassThrough(),this}createArgument(q,Q){return new rQ(q,Q)}argument(q,Q,Y,X){let J=this.createArgument(q,Q);if(typeof Y==="function")J.default(X).argParser(Y);else J.default(Y);return this.addArgument(J),this}arguments(q){return q.trim().split(/ +/).forEach((Q)=>{this.argument(Q)}),this}addArgument(q){let Q=this.registeredArguments.slice(-1)[0];if(Q&&Q.variadic)throw Error(`only the last argument can be variadic '${Q.name()}'`);if(q.required&&q.defaultValue!==void 0&&q.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${q.name()}'`);return this.registeredArguments.push(q),this}helpCommand(q,Q){if(typeof q==="boolean")return this._addImplicitHelpCommand=q,this;q=q??"help [command]";let[,Y,X]=q.match(/([^ ]+) *(.*)/),J=Q??"display help for command",W=this.createCommand(Y);if(W.helpOption(!1),X)W.arguments(X);if(J)W.description(J);return this._addImplicitHelpCommand=!0,this._helpCommand=W,this}addHelpCommand(q,Q){if(typeof q!=="object")return this.helpCommand(q,Q),this;return this._addImplicitHelpCommand=!0,this._helpCommand=q,this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(q,Q){let Y=["preSubcommand","preAction","postAction"];if(!Y.includes(q))throw Error(`Unexpected value for event passed to hook : '${q}'.
14
+ Expecting one of '${Y.join("', '")}'`);if(this._lifeCycleHooks[q])this._lifeCycleHooks[q].push(Q);else this._lifeCycleHooks[q]=[Q];return this}exitOverride(q){if(q)this._exitCallback=q;else this._exitCallback=(Q)=>{if(Q.code!=="commander.executeSubCommandAsync")throw Q};return this}_exit(q,Q,Y){if(this._exitCallback)this._exitCallback(new uq(q,Q,Y));_.exit(q)}action(q){let Q=(Y)=>{let X=this.registeredArguments.length,J=Y.slice(0,X);if(this._storeOptionsAsProperties)J[X]=this;else J[X]=this.opts();return J.push(this),q.apply(this,J)};return this._actionHandler=Q,this}createOption(q,Q){return new A0(q,Q)}_callParseArg(q,Q,Y,X){try{return q.parseArg(Q,Y)}catch(J){if(J.code==="commander.invalidArgument"){let W=`${X} ${J.message}`;this.error(W,{exitCode:J.exitCode,code:J.code})}throw J}}_registerOption(q){let Q=q.short&&this._findOption(q.short)||q.long&&this._findOption(q.long);if(Q){let Y=q.long&&this._findOption(q.long)?q.long:q.short;throw Error(`Cannot add option '${q.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${Y}'
15
+ - already used by option '${Q.flags}'`)}this.options.push(q)}_registerCommand(q){let Q=(X)=>{return[X.name()].concat(X.aliases())},Y=Q(q).find((X)=>this._findCommand(X));if(Y){let X=Q(this._findCommand(Y)).join("|"),J=Q(q).join("|");throw Error(`cannot add command '${J}' as already have command '${X}'`)}this.commands.push(q)}addOption(q){this._registerOption(q);let Q=q.name(),Y=q.attributeName();if(q.negate){let J=q.long.replace(/^--no-/,"--");if(!this._findOption(J))this.setOptionValueWithSource(Y,q.defaultValue===void 0?!0:q.defaultValue,"default")}else if(q.defaultValue!==void 0)this.setOptionValueWithSource(Y,q.defaultValue,"default");let X=(J,W,K)=>{if(J==null&&q.presetArg!==void 0)J=q.presetArg;let $=this.getOptionValue(Y);if(J!==null&&q.parseArg)J=this._callParseArg(q,J,$,W);else if(J!==null&&q.variadic)J=q._concatValue(J,$);if(J==null)if(q.negate)J=!1;else if(q.isBoolean()||q.optional)J=!0;else J="";this.setOptionValueWithSource(Y,J,K)};if(this.on("option:"+Q,(J)=>{let W=`error: option '${q.flags}' argument '${J}' is invalid.`;X(J,W,"cli")}),q.envVar)this.on("optionEnv:"+Q,(J)=>{let W=`error: option '${q.flags}' value '${J}' from env '${q.envVar}' is invalid.`;X(J,W,"env")});return this}_optionEx(q,Q,Y,X,J){if(typeof Q==="object"&&Q instanceof A0)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let W=this.createOption(Q,Y);if(W.makeOptionMandatory(!!q.mandatory),typeof X==="function")W.default(J).argParser(X);else if(X instanceof RegExp){let K=X;X=($,L)=>{let B=K.exec($);return B?B[0]:L},W.default(J).argParser(X)}else W.default(X);return this.addOption(W)}option(q,Q,Y,X){return this._optionEx({},q,Q,Y,X)}requiredOption(q,Q,Y,X){return this._optionEx({mandatory:!0},q,Q,Y,X)}combineFlagAndOptionalValue(q=!0){return this._combineFlagAndOptionalValue=!!q,this}allowUnknownOption(q=!0){return this._allowUnknownOption=!!q,this}allowExcessArguments(q=!0){return this._allowExcessArguments=!!q,this}enablePositionalOptions(q=!0){return this._enablePositionalOptions=!!q,this}passThroughOptions(q=!0){return this._passThroughOptions=!!q,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(q=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!q,this}getOptionValue(q){if(this._storeOptionsAsProperties)return this[q];return this._optionValues[q]}setOptionValue(q,Q){return this.setOptionValueWithSource(q,Q,void 0)}setOptionValueWithSource(q,Q,Y){if(this._storeOptionsAsProperties)this[q]=Q;else this._optionValues[q]=Q;return this._optionValueSources[q]=Y,this}getOptionValueSource(q){return this._optionValueSources[q]}getOptionValueSourceWithGlobals(q){let Q;return this._getCommandAndAncestors().forEach((Y)=>{if(Y.getOptionValueSource(q)!==void 0)Q=Y.getOptionValueSource(q)}),Q}_prepareUserArgs(q,Q){if(q!==void 0&&!Array.isArray(q))throw Error("first parameter to parse must be array or undefined");if(Q=Q||{},q===void 0&&Q.from===void 0){if(_.versions?.electron)Q.from="electron";let X=_.execArgv??[];if(X.includes("-e")||X.includes("--eval")||X.includes("-p")||X.includes("--print"))Q.from="eval"}if(q===void 0)q=_.argv;this.rawArgs=q.slice();let Y;switch(Q.from){case void 0:case"node":this._scriptPath=q[1],Y=q.slice(2);break;case"electron":if(_.defaultApp)this._scriptPath=q[1],Y=q.slice(2);else Y=q.slice(1);break;case"user":Y=q.slice(0);break;case"eval":Y=q.slice(1);break;default:throw Error(`unexpected parse option { from: '${Q.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",Y}parse(q,Q){let Y=this._prepareUserArgs(q,Q);return this._parseCommand([],Y),this}async parseAsync(q,Q){let Y=this._prepareUserArgs(q,Q);return await this._parseCommand([],Y),this}_executeSubCommand(q,Q){Q=Q.slice();let Y=!1,X=[".js",".ts",".tsx",".mjs",".cjs"];function J(B,E){let w=o.resolve(B,E);if(yq.existsSync(w))return w;if(X.includes(o.extname(E)))return;let M=X.find((V)=>yq.existsSync(`${w}${V}`));if(M)return`${w}${M}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let W=q._executableFile||`${this._name}-${q._name}`,K=this._executableDir||"";if(this._scriptPath){let B;try{B=yq.realpathSync(this._scriptPath)}catch(E){B=this._scriptPath}K=o.resolve(o.dirname(B),K)}if(K){let B=J(K,W);if(!B&&!q._executableFile&&this._scriptPath){let E=o.basename(this._scriptPath,o.extname(this._scriptPath));if(E!==this._name)B=J(K,`${E}-${q._name}`)}W=B||W}Y=X.includes(o.extname(W));let $;if(_.platform!=="win32")if(Y)Q.unshift(W),Q=H0(_.execArgv).concat(Q),$=gq.spawn(_.argv[0],Q,{stdio:"inherit"});else $=gq.spawn(W,Q,{stdio:"inherit"});else Q.unshift(W),Q=H0(_.execArgv).concat(Q),$=gq.spawn(_.execPath,Q,{stdio:"inherit"});if(!$.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((E)=>{_.on(E,()=>{if($.killed===!1&&$.exitCode===null)$.kill(E)})});let L=this._exitCallback;$.on("close",(B)=>{if(B=B??1,!L)_.exit(B);else L(new uq(B,"commander.executeSubCommandAsync","(close)"))}),$.on("error",(B)=>{if(B.code==="ENOENT"){let E=K?`searched for local subcommand relative to directory '${K}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",w=`'${W}' does not exist
16
16
  - if '${q._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
17
17
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
18
- - ${U}`;throw Error(w)}else if(B.code==="EACCES")throw Error(`'${W}' not executable`);if(!L)x.exit(1);else{let U=new fq(1,"commander.executeSubCommandAsync","(error)");U.nestedError=B,L(U)}}),this.runningCommand=$}_dispatchSubcommand(q,Q,Y){let X=this._findCommand(q);if(!X)this.help({error:!0});let J;return J=this._chainOrCallSubCommandHook(J,X,"preSubcommand"),J=this._chainOrCall(J,()=>{if(X._executableHandler)this._executeSubCommand(X,Q.concat(Y));else return X._parseCommand(Q,Y)}),J}_dispatchHelpCommand(q){if(!q)this.help();let Q=this._findCommand(q);if(Q&&!Q._executableHandler)Q.help();return this._dispatchSubcommand(q,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((q,Q)=>{if(q.required&&this.args[Q]==null)this.missingArgument(q.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let q=(Y,X,J)=>{let W=X;if(X!==null&&Y.parseArg){let K=`error: command-argument value '${X}' is invalid for argument '${Y.name()}'.`;W=this._callParseArg(Y,X,J,K)}return W};this._checkNumberOfArguments();let Q=[];this.registeredArguments.forEach((Y,X)=>{let J=Y.defaultValue;if(Y.variadic){if(X<this.args.length){if(J=this.args.slice(X),Y.parseArg)J=J.reduce((W,K)=>{return q(Y,K,W)},Y.defaultValue)}else if(J===void 0)J=[]}else if(X<this.args.length){if(J=this.args[X],Y.parseArg)J=q(Y,J,Y.defaultValue)}Q[X]=J}),this.processedArgs=Q}_chainOrCall(q,Q){if(q&&q.then&&typeof q.then==="function")return q.then(()=>Q());return Q()}_chainOrCallHooks(q,Q){let Y=q,X=[];if(this._getCommandAndAncestors().reverse().filter((J)=>J._lifeCycleHooks[Q]!==void 0).forEach((J)=>{J._lifeCycleHooks[Q].forEach((W)=>{X.push({hookedCommand:J,callback:W})})}),Q==="postAction")X.reverse();return X.forEach((J)=>{Y=this._chainOrCall(Y,()=>{return J.callback(J.hookedCommand,this)})}),Y}_chainOrCallSubCommandHook(q,Q,Y){let X=q;if(this._lifeCycleHooks[Y]!==void 0)this._lifeCycleHooks[Y].forEach((J)=>{X=this._chainOrCall(X,()=>{return J(this,Q)})});return X}_parseCommand(q,Q){let Y=this.parseOptions(Q);if(this._parseOptionsEnv(),this._parseOptionsImplied(),q=q.concat(Y.operands),Q=Y.unknown,this.args=q.concat(Q),q&&this._findCommand(q[0]))return this._dispatchSubcommand(q[0],q.slice(1),Q);if(this._getHelpCommand()&&q[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(q[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(Q),this._dispatchSubcommand(this._defaultCommandName,q,Q);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(Y.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let X=()=>{if(Y.unknown.length>0)this.unknownOption(Y.unknown[0])},J=`command:${this.name()}`;if(this._actionHandler){X(),this._processArguments();let W;if(W=this._chainOrCallHooks(W,"preAction"),W=this._chainOrCall(W,()=>this._actionHandler(this.processedArgs)),this.parent)W=this._chainOrCall(W,()=>{this.parent.emit(J,q,Q)});return W=this._chainOrCallHooks(W,"postAction"),W}if(this.parent&&this.parent.listenerCount(J))X(),this._processArguments(),this.parent.emit(J,q,Q);else if(q.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",q,Q);if(this.listenerCount("command:*"))this.emit("command:*",q,Q);else if(this.commands.length)this.unknownCommand();else X(),this._processArguments()}else if(this.commands.length)X(),this.help({error:!0});else X(),this._processArguments()}_findCommand(q){if(!q)return;return this.commands.find((Q)=>Q._name===q||Q._aliases.includes(q))}_findOption(q){return this.options.find((Q)=>Q.is(q))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((q)=>{q.options.forEach((Q)=>{if(Q.mandatory&&q.getOptionValue(Q.attributeName())===void 0)q.missingMandatoryOptionValue(Q)})})}_checkForConflictingLocalOptions(){let q=this.options.filter((Y)=>{let X=Y.attributeName();if(this.getOptionValue(X)===void 0)return!1;return this.getOptionValueSource(X)!=="default"});q.filter((Y)=>Y.conflictsWith.length>0).forEach((Y)=>{let X=q.find((J)=>Y.conflictsWith.includes(J.attributeName()));if(X)this._conflictingOption(Y,X)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((q)=>{q._checkForConflictingLocalOptions()})}parseOptions(q){let Q=[],Y=[],X=Q,J=q.slice();function W($){return $.length>1&&$[0]==="-"}let K=null;while(J.length){let $=J.shift();if($==="--"){if(X===Y)X.push($);X.push(...J);break}if(K&&!W($)){this.emit(`option:${K.name()}`,$);continue}if(K=null,W($)){let L=this._findOption($);if(L){if(L.required){let B=J.shift();if(B===void 0)this.optionMissingArgument(L);this.emit(`option:${L.name()}`,B)}else if(L.optional){let B=null;if(J.length>0&&!W(J[0]))B=J.shift();this.emit(`option:${L.name()}`,B)}else this.emit(`option:${L.name()}`);K=L.variadic?L:null;continue}}if($.length>2&&$[0]==="-"&&$[1]!=="-"){let L=this._findOption(`-${$[1]}`);if(L){if(L.required||L.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${L.name()}`,$.slice(2));else this.emit(`option:${L.name()}`),J.unshift(`-${$.slice(2)}`);continue}}if(/^--[^=]+=/.test($)){let L=$.indexOf("="),B=this._findOption($.slice(0,L));if(B&&(B.required||B.optional)){this.emit(`option:${B.name()}`,$.slice(L+1));continue}}if(W($))X=Y;if((this._enablePositionalOptions||this._passThroughOptions)&&Q.length===0&&Y.length===0){if(this._findCommand($)){if(Q.push($),J.length>0)Y.push(...J);break}else if(this._getHelpCommand()&&$===this._getHelpCommand().name()){if(Q.push($),J.length>0)Q.push(...J);break}else if(this._defaultCommandName){if(Y.push($),J.length>0)Y.push(...J);break}}if(this._passThroughOptions){if(X.push($),J.length>0)X.push(...J);break}X.push($)}return{operands:Q,unknown:Y}}opts(){if(this._storeOptionsAsProperties){let q={},Q=this.options.length;for(let Y=0;Y<Q;Y++){let X=this.options[Y].attributeName();q[X]=X===this._versionOptionName?this._version:this[X]}return q}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((q,Q)=>Object.assign(q,Q.opts()),{})}error(q,Q){if(this._outputConfiguration.outputError(`${q}
18
+ - ${E}`;throw Error(w)}else if(B.code==="EACCES")throw Error(`'${W}' not executable`);if(!L)_.exit(1);else{let E=new uq(1,"commander.executeSubCommandAsync","(error)");E.nestedError=B,L(E)}}),this.runningCommand=$}_dispatchSubcommand(q,Q,Y){let X=this._findCommand(q);if(!X)this.help({error:!0});let J;return J=this._chainOrCallSubCommandHook(J,X,"preSubcommand"),J=this._chainOrCall(J,()=>{if(X._executableHandler)this._executeSubCommand(X,Q.concat(Y));else return X._parseCommand(Q,Y)}),J}_dispatchHelpCommand(q){if(!q)this.help();let Q=this._findCommand(q);if(Q&&!Q._executableHandler)Q.help();return this._dispatchSubcommand(q,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((q,Q)=>{if(q.required&&this.args[Q]==null)this.missingArgument(q.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let q=(Y,X,J)=>{let W=X;if(X!==null&&Y.parseArg){let K=`error: command-argument value '${X}' is invalid for argument '${Y.name()}'.`;W=this._callParseArg(Y,X,J,K)}return W};this._checkNumberOfArguments();let Q=[];this.registeredArguments.forEach((Y,X)=>{let J=Y.defaultValue;if(Y.variadic){if(X<this.args.length){if(J=this.args.slice(X),Y.parseArg)J=J.reduce((W,K)=>{return q(Y,K,W)},Y.defaultValue)}else if(J===void 0)J=[]}else if(X<this.args.length){if(J=this.args[X],Y.parseArg)J=q(Y,J,Y.defaultValue)}Q[X]=J}),this.processedArgs=Q}_chainOrCall(q,Q){if(q&&q.then&&typeof q.then==="function")return q.then(()=>Q());return Q()}_chainOrCallHooks(q,Q){let Y=q,X=[];if(this._getCommandAndAncestors().reverse().filter((J)=>J._lifeCycleHooks[Q]!==void 0).forEach((J)=>{J._lifeCycleHooks[Q].forEach((W)=>{X.push({hookedCommand:J,callback:W})})}),Q==="postAction")X.reverse();return X.forEach((J)=>{Y=this._chainOrCall(Y,()=>{return J.callback(J.hookedCommand,this)})}),Y}_chainOrCallSubCommandHook(q,Q,Y){let X=q;if(this._lifeCycleHooks[Y]!==void 0)this._lifeCycleHooks[Y].forEach((J)=>{X=this._chainOrCall(X,()=>{return J(this,Q)})});return X}_parseCommand(q,Q){let Y=this.parseOptions(Q);if(this._parseOptionsEnv(),this._parseOptionsImplied(),q=q.concat(Y.operands),Q=Y.unknown,this.args=q.concat(Q),q&&this._findCommand(q[0]))return this._dispatchSubcommand(q[0],q.slice(1),Q);if(this._getHelpCommand()&&q[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(q[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(Q),this._dispatchSubcommand(this._defaultCommandName,q,Q);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(Y.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let X=()=>{if(Y.unknown.length>0)this.unknownOption(Y.unknown[0])},J=`command:${this.name()}`;if(this._actionHandler){X(),this._processArguments();let W;if(W=this._chainOrCallHooks(W,"preAction"),W=this._chainOrCall(W,()=>this._actionHandler(this.processedArgs)),this.parent)W=this._chainOrCall(W,()=>{this.parent.emit(J,q,Q)});return W=this._chainOrCallHooks(W,"postAction"),W}if(this.parent&&this.parent.listenerCount(J))X(),this._processArguments(),this.parent.emit(J,q,Q);else if(q.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",q,Q);if(this.listenerCount("command:*"))this.emit("command:*",q,Q);else if(this.commands.length)this.unknownCommand();else X(),this._processArguments()}else if(this.commands.length)X(),this.help({error:!0});else X(),this._processArguments()}_findCommand(q){if(!q)return;return this.commands.find((Q)=>Q._name===q||Q._aliases.includes(q))}_findOption(q){return this.options.find((Q)=>Q.is(q))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((q)=>{q.options.forEach((Q)=>{if(Q.mandatory&&q.getOptionValue(Q.attributeName())===void 0)q.missingMandatoryOptionValue(Q)})})}_checkForConflictingLocalOptions(){let q=this.options.filter((Y)=>{let X=Y.attributeName();if(this.getOptionValue(X)===void 0)return!1;return this.getOptionValueSource(X)!=="default"});q.filter((Y)=>Y.conflictsWith.length>0).forEach((Y)=>{let X=q.find((J)=>Y.conflictsWith.includes(J.attributeName()));if(X)this._conflictingOption(Y,X)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((q)=>{q._checkForConflictingLocalOptions()})}parseOptions(q){let Q=[],Y=[],X=Q,J=q.slice();function W($){return $.length>1&&$[0]==="-"}let K=null;while(J.length){let $=J.shift();if($==="--"){if(X===Y)X.push($);X.push(...J);break}if(K&&!W($)){this.emit(`option:${K.name()}`,$);continue}if(K=null,W($)){let L=this._findOption($);if(L){if(L.required){let B=J.shift();if(B===void 0)this.optionMissingArgument(L);this.emit(`option:${L.name()}`,B)}else if(L.optional){let B=null;if(J.length>0&&!W(J[0]))B=J.shift();this.emit(`option:${L.name()}`,B)}else this.emit(`option:${L.name()}`);K=L.variadic?L:null;continue}}if($.length>2&&$[0]==="-"&&$[1]!=="-"){let L=this._findOption(`-${$[1]}`);if(L){if(L.required||L.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${L.name()}`,$.slice(2));else this.emit(`option:${L.name()}`),J.unshift(`-${$.slice(2)}`);continue}}if(/^--[^=]+=/.test($)){let L=$.indexOf("="),B=this._findOption($.slice(0,L));if(B&&(B.required||B.optional)){this.emit(`option:${B.name()}`,$.slice(L+1));continue}}if(W($))X=Y;if((this._enablePositionalOptions||this._passThroughOptions)&&Q.length===0&&Y.length===0){if(this._findCommand($)){if(Q.push($),J.length>0)Y.push(...J);break}else if(this._getHelpCommand()&&$===this._getHelpCommand().name()){if(Q.push($),J.length>0)Q.push(...J);break}else if(this._defaultCommandName){if(Y.push($),J.length>0)Y.push(...J);break}}if(this._passThroughOptions){if(X.push($),J.length>0)X.push(...J);break}X.push($)}return{operands:Q,unknown:Y}}opts(){if(this._storeOptionsAsProperties){let q={},Q=this.options.length;for(let Y=0;Y<Q;Y++){let X=this.options[Y].attributeName();q[X]=X===this._versionOptionName?this._version:this[X]}return q}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((q,Q)=>Object.assign(q,Q.opts()),{})}error(q,Q){if(this._outputConfiguration.outputError(`${q}
19
19
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
20
20
  `);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
21
- `),this.outputHelp({error:!0});let Y=Q||{},X=Y.exitCode||1,J=Y.code||"commander.error";this._exit(X,J,q)}_parseOptionsEnv(){this.options.forEach((q)=>{if(q.envVar&&q.envVar in x.env){let Q=q.attributeName();if(this.getOptionValue(Q)===void 0||["default","config","env"].includes(this.getOptionValueSource(Q)))if(q.required||q.optional)this.emit(`optionEnv:${q.name()}`,x.env[q.envVar]);else this.emit(`optionEnv:${q.name()}`)}})}_parseOptionsImplied(){let q=new nQ(this.options),Q=(Y)=>{return this.getOptionValue(Y)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(Y))};this.options.filter((Y)=>Y.implied!==void 0&&Q(Y.attributeName())&&q.valueFromOption(this.getOptionValue(Y.attributeName()),Y)).forEach((Y)=>{Object.keys(Y.implied).filter((X)=>!Q(X)).forEach((X)=>{this.setOptionValueWithSource(X,Y.implied[X],"implied")})})}missingArgument(q){let Q=`error: missing required argument '${q}'`;this.error(Q,{code:"commander.missingArgument"})}optionMissingArgument(q){let Q=`error: option '${q.flags}' argument missing`;this.error(Q,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(q){let Q=`error: required option '${q.flags}' not specified`;this.error(Q,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(q,Q){let Y=(W)=>{let K=W.attributeName(),$=this.getOptionValue(K),L=this.options.find((U)=>U.negate&&K===U.attributeName()),B=this.options.find((U)=>!U.negate&&K===U.attributeName());if(L&&(L.presetArg===void 0&&$===!1||L.presetArg!==void 0&&$===L.presetArg))return L;return B||W},X=(W)=>{let K=Y(W),$=K.attributeName();if(this.getOptionValueSource($)==="env")return`environment variable '${K.envVar}'`;return`option '${K.flags}'`},J=`error: ${X(q)} cannot be used with ${X(Q)}`;this.error(J,{code:"commander.conflictingOption"})}unknownOption(q){if(this._allowUnknownOption)return;let Q="";if(q.startsWith("--")&&this._showSuggestionAfterError){let X=[],J=this;do{let W=J.createHelp().visibleOptions(J).filter((K)=>K.long).map((K)=>K.long);X=X.concat(W),J=J.parent}while(J&&!J._enablePositionalOptions);Q=A0(q,X)}let Y=`error: unknown option '${q}'${Q}`;this.error(Y,{code:"commander.unknownOption"})}_excessArguments(q){if(this._allowExcessArguments)return;let Q=this.registeredArguments.length,Y=Q===1?"":"s",J=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${Q} argument${Y} but got ${q.length}.`;this.error(J,{code:"commander.excessArguments"})}unknownCommand(){let q=this.args[0],Q="";if(this._showSuggestionAfterError){let X=[];this.createHelp().visibleCommands(this).forEach((J)=>{if(X.push(J.name()),J.alias())X.push(J.alias())}),Q=A0(q,X)}let Y=`error: unknown command '${q}'${Q}`;this.error(Y,{code:"commander.unknownCommand"})}version(q,Q,Y){if(q===void 0)return this._version;this._version=q,Q=Q||"-V, --version",Y=Y||"output the version number";let X=this.createOption(Q,Y);return this._versionOptionName=X.attributeName(),this._registerOption(X),this.on("option:"+X.name(),()=>{this._outputConfiguration.writeOut(`${q}
22
- `),this._exit(0,"commander.version",q)}),this}description(q,Q){if(q===void 0&&Q===void 0)return this._description;if(this._description=q,Q)this._argsDescription=Q;return this}summary(q){if(q===void 0)return this._summary;return this._summary=q,this}alias(q){if(q===void 0)return this._aliases[0];let Q=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)Q=this.commands[this.commands.length-1];if(q===Q._name)throw Error("Command alias can't be the same as its name");let Y=this.parent?._findCommand(q);if(Y){let X=[Y.name()].concat(Y.aliases()).join("|");throw Error(`cannot add alias '${q}' to command '${this.name()}' as already have command '${X}'`)}return Q._aliases.push(q),this}aliases(q){if(q===void 0)return this._aliases;return q.forEach((Q)=>this.alias(Q)),this}usage(q){if(q===void 0){if(this._usage)return this._usage;let Q=this.registeredArguments.map((Y)=>{return rQ(Y)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?Q:[]).join(" ")}return this._usage=q,this}name(q){if(q===void 0)return this._name;return this._name=q,this}nameFromFilename(q){return this._name=o.basename(q,o.extname(q)),this}executableDir(q){if(q===void 0)return this._executableDir;return this._executableDir=q,this}helpInformation(q){let Q=this.createHelp();if(Q.helpWidth===void 0)Q.helpWidth=q&&q.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth();return Q.formatHelp(this,Q)}_getHelpContext(q){q=q||{};let Q={error:!!q.error},Y;if(Q.error)Y=(X)=>this._outputConfiguration.writeErr(X);else Y=(X)=>this._outputConfiguration.writeOut(X);return Q.write=q.write||Y,Q.command=this,Q}outputHelp(q){let Q;if(typeof q==="function")Q=q,q=void 0;let Y=this._getHelpContext(q);this._getCommandAndAncestors().reverse().forEach((J)=>J.emit("beforeAllHelp",Y)),this.emit("beforeHelp",Y);let X=this.helpInformation(Y);if(Q){if(X=Q(X),typeof X!=="string"&&!Buffer.isBuffer(X))throw Error("outputHelp callback must return a string or a Buffer")}if(Y.write(X),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",Y),this._getCommandAndAncestors().forEach((J)=>J.emit("afterAllHelp",Y))}helpOption(q,Q){if(typeof q==="boolean"){if(q)this._helpOption=this._helpOption??void 0;else this._helpOption=null;return this}return q=q??"-h, --help",Q=Q??"display help for command",this._helpOption=this.createOption(q,Q),this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(q){return this._helpOption=q,this}help(q){this.outputHelp(q);let Q=x.exitCode||0;if(Q===0&&q&&typeof q!=="function"&&q.error)Q=1;this._exit(Q,"commander.help","(outputHelp)")}addHelpText(q,Q){let Y=["beforeAll","before","after","afterAll"];if(!Y.includes(q))throw Error(`Unexpected value for position to addHelpText.
21
+ `),this.outputHelp({error:!0});let Y=Q||{},X=Y.exitCode||1,J=Y.code||"commander.error";this._exit(X,J,q)}_parseOptionsEnv(){this.options.forEach((q)=>{if(q.envVar&&q.envVar in _.env){let Q=q.attributeName();if(this.getOptionValue(Q)===void 0||["default","config","env"].includes(this.getOptionValueSource(Q)))if(q.required||q.optional)this.emit(`optionEnv:${q.name()}`,_.env[q.envVar]);else this.emit(`optionEnv:${q.name()}`)}})}_parseOptionsImplied(){let q=new sQ(this.options),Q=(Y)=>{return this.getOptionValue(Y)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(Y))};this.options.filter((Y)=>Y.implied!==void 0&&Q(Y.attributeName())&&q.valueFromOption(this.getOptionValue(Y.attributeName()),Y)).forEach((Y)=>{Object.keys(Y.implied).filter((X)=>!Q(X)).forEach((X)=>{this.setOptionValueWithSource(X,Y.implied[X],"implied")})})}missingArgument(q){let Q=`error: missing required argument '${q}'`;this.error(Q,{code:"commander.missingArgument"})}optionMissingArgument(q){let Q=`error: option '${q.flags}' argument missing`;this.error(Q,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(q){let Q=`error: required option '${q.flags}' not specified`;this.error(Q,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(q,Q){let Y=(W)=>{let K=W.attributeName(),$=this.getOptionValue(K),L=this.options.find((E)=>E.negate&&K===E.attributeName()),B=this.options.find((E)=>!E.negate&&K===E.attributeName());if(L&&(L.presetArg===void 0&&$===!1||L.presetArg!==void 0&&$===L.presetArg))return L;return B||W},X=(W)=>{let K=Y(W),$=K.attributeName();if(this.getOptionValueSource($)==="env")return`environment variable '${K.envVar}'`;return`option '${K.flags}'`},J=`error: ${X(q)} cannot be used with ${X(Q)}`;this.error(J,{code:"commander.conflictingOption"})}unknownOption(q){if(this._allowUnknownOption)return;let Q="";if(q.startsWith("--")&&this._showSuggestionAfterError){let X=[],J=this;do{let W=J.createHelp().visibleOptions(J).filter((K)=>K.long).map((K)=>K.long);X=X.concat(W),J=J.parent}while(J&&!J._enablePositionalOptions);Q=I0(q,X)}let Y=`error: unknown option '${q}'${Q}`;this.error(Y,{code:"commander.unknownOption"})}_excessArguments(q){if(this._allowExcessArguments)return;let Q=this.registeredArguments.length,Y=Q===1?"":"s",J=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${Q} argument${Y} but got ${q.length}.`;this.error(J,{code:"commander.excessArguments"})}unknownCommand(){let q=this.args[0],Q="";if(this._showSuggestionAfterError){let X=[];this.createHelp().visibleCommands(this).forEach((J)=>{if(X.push(J.name()),J.alias())X.push(J.alias())}),Q=I0(q,X)}let Y=`error: unknown command '${q}'${Q}`;this.error(Y,{code:"commander.unknownCommand"})}version(q,Q,Y){if(q===void 0)return this._version;this._version=q,Q=Q||"-V, --version",Y=Y||"output the version number";let X=this.createOption(Q,Y);return this._versionOptionName=X.attributeName(),this._registerOption(X),this.on("option:"+X.name(),()=>{this._outputConfiguration.writeOut(`${q}
22
+ `),this._exit(0,"commander.version",q)}),this}description(q,Q){if(q===void 0&&Q===void 0)return this._description;if(this._description=q,Q)this._argsDescription=Q;return this}summary(q){if(q===void 0)return this._summary;return this._summary=q,this}alias(q){if(q===void 0)return this._aliases[0];let Q=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)Q=this.commands[this.commands.length-1];if(q===Q._name)throw Error("Command alias can't be the same as its name");let Y=this.parent?._findCommand(q);if(Y){let X=[Y.name()].concat(Y.aliases()).join("|");throw Error(`cannot add alias '${q}' to command '${this.name()}' as already have command '${X}'`)}return Q._aliases.push(q),this}aliases(q){if(q===void 0)return this._aliases;return q.forEach((Q)=>this.alias(Q)),this}usage(q){if(q===void 0){if(this._usage)return this._usage;let Q=this.registeredArguments.map((Y)=>{return iQ(Y)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?Q:[]).join(" ")}return this._usage=q,this}name(q){if(q===void 0)return this._name;return this._name=q,this}nameFromFilename(q){return this._name=o.basename(q,o.extname(q)),this}executableDir(q){if(q===void 0)return this._executableDir;return this._executableDir=q,this}helpInformation(q){let Q=this.createHelp();if(Q.helpWidth===void 0)Q.helpWidth=q&&q.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth();return Q.formatHelp(this,Q)}_getHelpContext(q){q=q||{};let Q={error:!!q.error},Y;if(Q.error)Y=(X)=>this._outputConfiguration.writeErr(X);else Y=(X)=>this._outputConfiguration.writeOut(X);return Q.write=q.write||Y,Q.command=this,Q}outputHelp(q){let Q;if(typeof q==="function")Q=q,q=void 0;let Y=this._getHelpContext(q);this._getCommandAndAncestors().reverse().forEach((J)=>J.emit("beforeAllHelp",Y)),this.emit("beforeHelp",Y);let X=this.helpInformation(Y);if(Q){if(X=Q(X),typeof X!=="string"&&!Buffer.isBuffer(X))throw Error("outputHelp callback must return a string or a Buffer")}if(Y.write(X),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",Y),this._getCommandAndAncestors().forEach((J)=>J.emit("afterAllHelp",Y))}helpOption(q,Q){if(typeof q==="boolean"){if(q)this._helpOption=this._helpOption??void 0;else this._helpOption=null;return this}return q=q??"-h, --help",Q=Q??"display help for command",this._helpOption=this.createOption(q,Q),this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(q){return this._helpOption=q,this}help(q){this.outputHelp(q);let Q=_.exitCode||0;if(Q===0&&q&&typeof q!=="function"&&q.error)Q=1;this._exit(Q,"commander.help","(outputHelp)")}addHelpText(q,Q){let Y=["beforeAll","before","after","afterAll"];if(!Y.includes(q))throw Error(`Unexpected value for position to addHelpText.
23
23
  Expecting one of '${Y.join("', '")}'`);let X=`${q}Help`;return this.on(X,(J)=>{let W;if(typeof Q==="function")W=Q({error:J.error,command:J.command});else W=Q;if(W)J.write(`${W}
24
- `)}),this}_outputHelpIfRequested(q){let Q=this._getHelpOption();if(Q&&q.find((X)=>Q.is(X)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function I0(q){return q.map((Q)=>{if(!Q.startsWith("--inspect"))return Q;let Y,X="127.0.0.1",J="9229",W;if((W=Q.match(/^(--inspect(-brk)?)$/))!==null)Y=W[1];else if((W=Q.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(Y=W[1],/^\d+$/.test(W[3]))J=W[3];else X=W[3];else if((W=Q.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)Y=W[1],X=W[3],J=W[4];if(Y&&J!=="0")return`${Y}=${X}:${parseInt(J)+1}`;return Q})}sQ.Command=mq});var E0=O((qY)=>{var{Argument:z0}=Mq(),{Command:cq}=H0(),{CommanderError:aQ,InvalidArgumentError:j0}=Vq(),{Help:eQ}=hq(),{Option:U0}=gq();qY.program=new cq;qY.createCommand=(q)=>new cq(q);qY.createOption=(q,Q)=>new U0(q,Q);qY.createArgument=(q,Q)=>new z0(q,Q);qY.Command=cq;qY.Option=U0;qY.Argument=z0;qY.Help=eQ;qY.CommanderError=aQ;qY.InvalidArgumentError=j0;qY.InvalidOptionArgumentError=j0});var tq=O((jJ,g0)=>{g0.exports={LOCHDR:30,LOCSIG:67324752,LOCVER:4,LOCFLG:6,LOCHOW:8,LOCTIM:10,LOCCRC:14,LOCSIZ:18,LOCLEN:22,LOCNAM:26,LOCEXT:28,EXTSIG:134695760,EXTHDR:16,EXTCRC:4,EXTSIZ:8,EXTLEN:12,CENHDR:46,CENSIG:33639248,CENVEM:4,CENVER:6,CENFLG:8,CENHOW:10,CENTIM:12,CENCRC:16,CENSIZ:20,CENLEN:24,CENNAM:28,CENEXT:30,CENCOM:32,CENDSK:34,CENATT:36,CENATX:38,CENOFF:42,ENDHDR:22,ENDSIG:101010256,ENDSUB:8,ENDTOT:10,ENDSIZ:12,ENDOFF:16,ENDCOM:20,END64HDR:20,END64SIG:117853008,END64START:4,END64OFF:8,END64NUMDISKS:16,ZIP64SIG:101075792,ZIP64HDR:56,ZIP64LEAD:12,ZIP64SIZE:4,ZIP64VEM:12,ZIP64VER:14,ZIP64DSK:16,ZIP64DSKDIR:20,ZIP64SUB:24,ZIP64TOT:32,ZIP64SIZB:40,ZIP64OFF:48,ZIP64EXTRA:56,STORED:0,SHRUNK:1,REDUCED1:2,REDUCED2:3,REDUCED3:4,REDUCED4:5,IMPLODED:6,DEFLATED:8,ENHANCED_DEFLATED:9,PKWARE:10,BZIP2:12,LZMA:14,IBM_TERSE:18,IBM_LZ77:19,AES_ENCRYPT:99,FLG_ENC:1,FLG_COMP1:2,FLG_COMP2:4,FLG_DESC:8,FLG_ENH:16,FLG_PATCH:32,FLG_STR:64,FLG_EFS:2048,FLG_MSK:4096,FILE:2,BUFFER:1,NONE:0,EF_ID:0,EF_SIZE:2,ID_ZIP64:1,ID_AVINFO:7,ID_PFS:8,ID_OS2:9,ID_NTFS:10,ID_OPENVMS:12,ID_UNIX:13,ID_FORK:14,ID_PATCH:15,ID_X509_PKCS7:20,ID_X509_CERTID_F:21,ID_X509_CERTID_C:22,ID_STRONGENC:23,ID_RECORD_MGT:24,ID_X509_PKCS7_RL:25,ID_IBM1:101,ID_IBM2:102,ID_POSZIP:18064,EF_ZIP64_OR_32:4294967295,EF_ZIP64_OR_16:65535,EF_ZIP64_SUNCOMP:0,EF_ZIP64_SCOMP:8,EF_ZIP64_RHO:16,EF_ZIP64_DSN:24}});var Oq=O((u0)=>{var y0={INVALID_LOC:"Invalid LOC header (bad signature)",INVALID_CEN:"Invalid CEN header (bad signature)",INVALID_END:"Invalid END header (bad signature)",DESCRIPTOR_NOT_EXIST:"No descriptor present",DESCRIPTOR_UNKNOWN:"Unknown descriptor format",DESCRIPTOR_FAULTY:"Descriptor data is malformed",NO_DATA:"Nothing to decompress",BAD_CRC:"CRC32 checksum failed {0}",FILE_IN_THE_WAY:"There is a file in the way: {0}",UNKNOWN_METHOD:"Invalid/unsupported compression method",AVAIL_DATA:"inflate::Available inflate data did not terminate",INVALID_DISTANCE:"inflate::Invalid literal/length or distance code in fixed or dynamic block",TO_MANY_CODES:"inflate::Dynamic block code description: too many length or distance codes",INVALID_REPEAT_LEN:"inflate::Dynamic block code description: repeat more than specified lengths",INVALID_REPEAT_FIRST:"inflate::Dynamic block code description: repeat lengths with no first length",INCOMPLETE_CODES:"inflate::Dynamic block code description: code lengths codes incomplete",INVALID_DYN_DISTANCE:"inflate::Dynamic block code description: invalid distance code lengths",INVALID_CODES_LEN:"inflate::Dynamic block code description: invalid literal/length code lengths",INVALID_STORE_BLOCK:"inflate::Stored block length did not match one's complement",INVALID_BLOCK_TYPE:"inflate::Invalid block type (type == 3)",CANT_EXTRACT_FILE:"Could not extract the file",CANT_OVERRIDE:"Target file already exists",DISK_ENTRY_TOO_LARGE:"Number of disk entries is too large",NO_ZIP:"No zip file was loaded",NO_ENTRY:"Entry doesn't exist",DIRECTORY_CONTENT_ERROR:"A directory cannot have content",FILE_NOT_FOUND:'File not found: "{0}"',NOT_IMPLEMENTED:"Not implemented",INVALID_FILENAME:"Invalid filename",INVALID_FORMAT:"Invalid or unsupported zip format. No END header found",INVALID_PASS_PARAM:"Incompatible password parameter",WRONG_PASSWORD:"Wrong Password",COMMENT_TOO_LONG:"Comment is too long",EXTRA_FIELD_PARSE_ERROR:"Extra field parsing error"};function hY(q){return function(...Q){if(Q.length)q=q.replace(/\{(\d)\}/g,(Y,X)=>Q[X]||"");return Error("ADM-ZIP: "+q)}}for(let q of Object.keys(y0))u0[q]=hY(y0[q])});var l0=O((EJ,p0)=>{var gY=f("fs"),g=f("path"),f0=tq(),yY=Oq(),uY=typeof process==="object"&&process.platform==="win32",m0=(q)=>typeof q==="object"&&q!==null,c0=new Uint32Array(256).map((q,Q)=>{for(let Y=0;Y<8;Y++)if((Q&1)!==0)Q=3988292384^Q>>>1;else Q>>>=1;return Q>>>0});function _(q){if(this.sep=g.sep,this.fs=gY,m0(q)){if(m0(q.fs)&&typeof q.fs.statSync==="function")this.fs=q.fs}}p0.exports=_;_.prototype.makeDir=function(q){let Q=this;function Y(X){let J=X.split(Q.sep)[0];X.split(Q.sep).forEach(function(W){if(!W||W.substr(-1,1)===":")return;J+=Q.sep+W;var K;try{K=Q.fs.statSync(J)}catch($){Q.fs.mkdirSync(J)}if(K&&K.isFile())throw yY.FILE_IN_THE_WAY(`"${J}"`)})}Y(q)};_.prototype.writeFileTo=function(q,Q,Y,X){let J=this;if(J.fs.existsSync(q)){if(!Y)return!1;var W=J.fs.statSync(q);if(W.isDirectory())return!1}var K=g.dirname(q);if(!J.fs.existsSync(K))J.makeDir(K);var $;try{$=J.fs.openSync(q,"w",438)}catch(L){J.fs.chmodSync(q,438),$=J.fs.openSync(q,"w",438)}if($)try{J.fs.writeSync($,Q,0,Q.length,0)}finally{J.fs.closeSync($)}return J.fs.chmodSync(q,X||438),!0};_.prototype.writeFileToAsync=function(q,Q,Y,X,J){if(typeof X==="function")J=X,X=void 0;let W=this;W.fs.exists(q,function(K){if(K&&!Y)return J(!1);W.fs.stat(q,function($,L){if(K&&L.isDirectory())return J(!1);var B=g.dirname(q);W.fs.exists(B,function(U){if(!U)W.makeDir(B);W.fs.open(q,"w",438,function(w,D){if(w)W.fs.chmod(q,438,function(){W.fs.open(q,"w",438,function(V,R){W.fs.write(R,Q,0,Q.length,0,function(){W.fs.close(R,function(){W.fs.chmod(q,X||438,function(){J(!0)})})})})});else if(D)W.fs.write(D,Q,0,Q.length,0,function(){W.fs.close(D,function(){W.fs.chmod(q,X||438,function(){J(!0)})})});else W.fs.chmod(q,X||438,function(){J(!0)})})})})})};_.prototype.findFiles=function(q){let Q=this;function Y(X,J,W){if(typeof J==="boolean")W=J,J=void 0;let K=[];return Q.fs.readdirSync(X).forEach(function($){let L=g.join(X,$),B=Q.fs.statSync(L);if(!J||J.test(L))K.push(g.normalize(L)+(B.isDirectory()?Q.sep:""));if(B.isDirectory()&&W)K=K.concat(Y(L,J,W))}),K}return Y(q,void 0,!0)};_.prototype.findFilesAsync=function(q,Q){let Y=this,X=[];Y.fs.readdir(q,function(J,W){if(J)return Q(J);let K=W.length;if(!K)return Q(null,X);W.forEach(function($){$=g.join(q,$),Y.fs.stat($,function(L,B){if(L)return Q(L);if(B){if(X.push(g.normalize($)+(B.isDirectory()?Y.sep:"")),B.isDirectory())Y.findFilesAsync($,function(U,w){if(U)return Q(U);if(X=X.concat(w),!--K)Q(null,X)});else if(!--K)Q(null,X)}})})})};_.prototype.getAttributes=function(){};_.prototype.setAttributes=function(){};_.crc32update=function(q,Q){return c0[(q^Q)&255]^q>>>8};_.crc32=function(q){if(typeof q==="string")q=Buffer.from(q,"utf8");let Q=q.length,Y=-1;for(let X=0;X<Q;)Y=_.crc32update(Y,q[X++]);return~Y>>>0};_.methodToString=function(q){switch(q){case f0.STORED:return"STORED ("+q+")";case f0.DEFLATED:return"DEFLATED ("+q+")";default:return"UNSUPPORTED ("+q+")"}};_.canonical=function(q){if(!q)return"";let Q=g.posix.normalize("/"+q.split("\\").join("/"));return g.join(".",Q)};_.zipnamefix=function(q){if(!q)return"";let Q=g.posix.normalize("/"+q.split("\\").join("/"));return g.posix.join(".",Q)};_.findLast=function(q,Q){if(!Array.isArray(q))throw TypeError("arr is not array");let Y=q.length>>>0;for(let X=Y-1;X>=0;X--)if(Q(q[X],X,q))return q[X];return};_.sanitize=function(q,Q){q=g.resolve(g.normalize(q));var Y=Q.split("/");for(var X=0,J=Y.length;X<J;X++){var W=g.normalize(g.join(q,Y.slice(X,J).join(g.sep)));if(W.indexOf(q)===0)return W}return g.normalize(g.join(q,g.basename(Q)))};_.toBuffer=function(Q,Y){if(Buffer.isBuffer(Q))return Q;else if(Q instanceof Uint8Array)return Buffer.from(Q);else return typeof Q==="string"?Y(Q):Buffer.alloc(0)};_.readBigUInt64LE=function(q,Q){var Y=Buffer.from(q.slice(Q,Q+8));return Y.swap64(),parseInt(`0x${Y.toString("hex")}`)};_.fromDOS2Date=function(q){return new Date((q>>25&127)+1980,Math.max((q>>21&15)-1,0),Math.max(q>>16&31,1),q>>11&31,q>>5&63,(q&31)<<1)};_.fromDate2DOS=function(q){let Q=0,Y=0;if(q.getFullYear()>1979)Q=(q.getFullYear()-1980&127)<<9|q.getMonth()+1<<5|q.getDate(),Y=q.getHours()<<11|q.getMinutes()<<5|q.getSeconds()>>1;return Q<<16|Y};_.isWin=uY;_.crcTable=c0});var o0=O((wJ,d0)=>{var fY=f("path");d0.exports=function(q,{fs:Q}){var Y=q||"",X=W(),J=null;function W(){return{directory:!1,readonly:!1,hidden:!1,executable:!1,mtime:0,atime:0}}if(Y&&Q.existsSync(Y))J=Q.statSync(Y),X.directory=J.isDirectory(),X.mtime=J.mtime,X.atime=J.atime,X.executable=(73&J.mode)!==0,X.readonly=(128&J.mode)===0,X.hidden=fY.basename(Y)[0]===".";else console.warn("Invalid path: "+Y);return{get directory(){return X.directory},get readOnly(){return X.readonly},get hidden(){return X.hidden},get mtime(){return X.mtime},get atime(){return X.atime},get executable(){return X.executable},decodeAttributes:function(){},encodeAttributes:function(){},toJSON:function(){return{path:Y,isDirectory:X.directory,isReadOnly:X.readonly,isHidden:X.hidden,isExecutable:X.executable,mTime:X.mtime,aTime:X.atime}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var i0=O((NJ,r0)=>{r0.exports={efs:!0,encode:(q)=>Buffer.from(q,"utf8"),decode:(q)=>q.toString("utf8")}});var Jq=O((DJ,Xq)=>{Xq.exports=l0();Xq.exports.Constants=tq();Xq.exports.Errors=Oq();Xq.exports.FileAttr=o0();Xq.exports.decoder=i0()});var s0=O((MJ,n0)=>{var i=Jq(),N=i.Constants;n0.exports=function(){var q=20,Q=10,Y=0,X=0,J=0,W=0,K=0,$=0,L=0,B=0,U=0,w=0,D=0,V=0,R=0;q|=i.isWin?2560:768,Y|=N.FLG_EFS;let H={extraLen:0},A=(G)=>Math.max(0,G)>>>0,j=(G)=>Math.max(0,G)&65535,E=(G)=>Math.max(0,G)&255;return J=i.fromDate2DOS(new Date),{get made(){return q},set made(G){q=G},get version(){return Q},set version(G){Q=G},get flags(){return Y},set flags(G){Y=G},get flags_efs(){return(Y&N.FLG_EFS)>0},set flags_efs(G){if(G)Y|=N.FLG_EFS;else Y&=~N.FLG_EFS},get flags_desc(){return(Y&N.FLG_DESC)>0},set flags_desc(G){if(G)Y|=N.FLG_DESC;else Y&=~N.FLG_DESC},get method(){return X},set method(G){switch(G){case N.STORED:this.version=10;case N.DEFLATED:default:this.version=20}X=G},get time(){return i.fromDOS2Date(this.timeval)},set time(G){this.timeval=i.fromDate2DOS(G)},get timeval(){return J},set timeval(G){J=A(G)},get timeHighByte(){return E(J>>>8)},get crc(){return W},set crc(G){W=A(G)},get compressedSize(){return K},set compressedSize(G){K=A(G)},get size(){return $},set size(G){$=A(G)},get fileNameLength(){return L},set fileNameLength(G){L=G},get extraLength(){return B},set extraLength(G){B=G},get extraLocalLength(){return H.extraLen},set extraLocalLength(G){H.extraLen=G},get commentLength(){return U},set commentLength(G){U=G},get diskNumStart(){return w},set diskNumStart(G){w=A(G)},get inAttr(){return D},set inAttr(G){D=A(G)},get attr(){return V},set attr(G){V=A(G)},get fileAttr(){return(V||0)>>16&4095},get offset(){return R},set offset(G){R=A(G)},get encrypted(){return(Y&N.FLG_ENC)===N.FLG_ENC},get centralHeaderSize(){return N.CENHDR+L+B+U},get realDataOffset(){return R+N.LOCHDR+H.fnameLen+H.extraLen},get localHeader(){return H},loadLocalHeaderFromBinary:function(G){var I=G.slice(R,R+N.LOCHDR);if(I.readUInt32LE(0)!==N.LOCSIG)throw i.Errors.INVALID_LOC();H.version=I.readUInt16LE(N.LOCVER),H.flags=I.readUInt16LE(N.LOCFLG),H.method=I.readUInt16LE(N.LOCHOW),H.time=I.readUInt32LE(N.LOCTIM),H.crc=I.readUInt32LE(N.LOCCRC),H.compressedSize=I.readUInt32LE(N.LOCSIZ),H.size=I.readUInt32LE(N.LOCLEN),H.fnameLen=I.readUInt16LE(N.LOCNAM),H.extraLen=I.readUInt16LE(N.LOCEXT);let z=R+N.LOCHDR+H.fnameLen,S=z+H.extraLen;return G.slice(z,S)},loadFromBinary:function(G){if(G.length!==N.CENHDR||G.readUInt32LE(0)!==N.CENSIG)throw i.Errors.INVALID_CEN();q=G.readUInt16LE(N.CENVEM),Q=G.readUInt16LE(N.CENVER),Y=G.readUInt16LE(N.CENFLG),X=G.readUInt16LE(N.CENHOW),J=G.readUInt32LE(N.CENTIM),W=G.readUInt32LE(N.CENCRC),K=G.readUInt32LE(N.CENSIZ),$=G.readUInt32LE(N.CENLEN),L=G.readUInt16LE(N.CENNAM),B=G.readUInt16LE(N.CENEXT),U=G.readUInt16LE(N.CENCOM),w=G.readUInt16LE(N.CENDSK),D=G.readUInt16LE(N.CENATT),V=G.readUInt32LE(N.CENATX),R=G.readUInt32LE(N.CENOFF)},localHeaderToBinary:function(){var G=Buffer.alloc(N.LOCHDR);return G.writeUInt32LE(N.LOCSIG,0),G.writeUInt16LE(Q,N.LOCVER),G.writeUInt16LE(Y,N.LOCFLG),G.writeUInt16LE(X,N.LOCHOW),G.writeUInt32LE(J,N.LOCTIM),G.writeUInt32LE(W,N.LOCCRC),G.writeUInt32LE(K,N.LOCSIZ),G.writeUInt32LE($,N.LOCLEN),G.writeUInt16LE(L,N.LOCNAM),G.writeUInt16LE(H.extraLen,N.LOCEXT),G},centralHeaderToBinary:function(){var G=Buffer.alloc(N.CENHDR+L+B+U);return G.writeUInt32LE(N.CENSIG,0),G.writeUInt16LE(q,N.CENVEM),G.writeUInt16LE(Q,N.CENVER),G.writeUInt16LE(Y,N.CENFLG),G.writeUInt16LE(X,N.CENHOW),G.writeUInt32LE(J,N.CENTIM),G.writeUInt32LE(W,N.CENCRC),G.writeUInt32LE(K,N.CENSIZ),G.writeUInt32LE($,N.CENLEN),G.writeUInt16LE(L,N.CENNAM),G.writeUInt16LE(B,N.CENEXT),G.writeUInt16LE(U,N.CENCOM),G.writeUInt16LE(w,N.CENDSK),G.writeUInt16LE(D,N.CENATT),G.writeUInt32LE(V,N.CENATX),G.writeUInt32LE(R,N.CENOFF),G},toJSON:function(){let G=function(I){return I+" bytes"};return{made:q,version:Q,flags:Y,method:i.methodToString(X),time:this.time,crc:"0x"+W.toString(16).toUpperCase(),compressedSize:G(K),size:G($),fileNameLength:G(L),extraLength:G(B),commentLength:G(U),diskNumStart:w,inAttr:D,attr:V,offset:R,centralHeaderSize:G(N.CENHDR+L+B+U)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var a0=O((SJ,t0)=>{var Wq=Jq(),b=Wq.Constants;t0.exports=function(){var q=0,Q=0,Y=0,X=0,J=0;return{get diskEntries(){return q},set diskEntries(W){q=Q=W},get totalEntries(){return Q},set totalEntries(W){Q=q=W},get size(){return Y},set size(W){Y=W},get offset(){return X},set offset(W){X=W},get commentLength(){return J},set commentLength(W){J=W},get mainHeaderSize(){return b.ENDHDR+J},loadFromBinary:function(W){if((W.length!==b.ENDHDR||W.readUInt32LE(0)!==b.ENDSIG)&&(W.length<b.ZIP64HDR||W.readUInt32LE(0)!==b.ZIP64SIG))throw Wq.Errors.INVALID_END();if(W.readUInt32LE(0)===b.ENDSIG)q=W.readUInt16LE(b.ENDSUB),Q=W.readUInt16LE(b.ENDTOT),Y=W.readUInt32LE(b.ENDSIZ),X=W.readUInt32LE(b.ENDOFF),J=W.readUInt16LE(b.ENDCOM);else q=Wq.readBigUInt64LE(W,b.ZIP64SUB),Q=Wq.readBigUInt64LE(W,b.ZIP64TOT),Y=Wq.readBigUInt64LE(W,b.ZIP64SIZE),X=Wq.readBigUInt64LE(W,b.ZIP64OFF),J=0},toBinary:function(){var W=Buffer.alloc(b.ENDHDR+J);return W.writeUInt32LE(b.ENDSIG,0),W.writeUInt32LE(0,4),W.writeUInt16LE(q,b.ENDSUB),W.writeUInt16LE(Q,b.ENDTOT),W.writeUInt32LE(Y,b.ENDSIZ),W.writeUInt32LE(X,b.ENDOFF),W.writeUInt16LE(J,b.ENDCOM),W.fill(" ",b.ENDHDR),W},toJSON:function(){let W=function(K,$){let L=K.toString(16).toUpperCase();while(L.length<$)L="0"+L;return"0x"+L};return{diskEntries:q,totalEntries:Q,size:Y+" bytes",offset:W(X,4),commentLength:J}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var aq=O((mY)=>{mY.EntryHeader=s0();mY.MainHeader=a0()});var qQ=O((FJ,e0)=>{e0.exports=function(q){var Q=f("zlib"),Y={chunkSize:(parseInt(q.length/1024)+1)*1024};return{deflate:function(){return Q.deflateRawSync(q,Y)},deflateAsync:function(X){var J=Q.createDeflateRaw(Y),W=[],K=0;J.on("data",function($){W.push($),K+=$.length}),J.on("end",function(){var $=Buffer.alloc(K),L=0;$.fill(0);for(var B=0;B<W.length;B++){var U=W[B];U.copy($,L),L+=U.length}X&&X($)}),J.end(q)}}}});var YQ=O((ZJ,QQ)=>{var lY=+(process.versions?process.versions.node:"").split(".")[0]||0;QQ.exports=function(q,Q){var Y=f("zlib");let X=lY>=15&&Q>0?{maxOutputLength:Q}:{};return{inflate:function(){return Y.inflateRawSync(q,X)},inflateAsync:function(J){var W=Y.createInflateRaw(X),K=[],$=0;W.on("data",function(L){K.push(L),$+=L.length}),W.on("end",function(){var L=Buffer.alloc($),B=0;L.fill(0);for(var U=0;U<K.length;U++){var w=K[U];w.copy(L,B),B+=w.length}J&&J(L)}),W.end(q)}}}});var KQ=O((PJ,GQ)=>{var{randomFillSync:XQ}=f("crypto"),dY=Oq(),oY=new Uint32Array(256).map((q,Q)=>{for(let Y=0;Y<8;Y++)if((Q&1)!==0)Q=Q>>>1^3988292384;else Q>>>=1;return Q>>>0}),WQ=(q,Q)=>Math.imul(q,Q)>>>0,JQ=(q,Q)=>{return oY[(q^Q)&255]^q>>>8},wq=()=>{if(typeof XQ==="function")return XQ(Buffer.alloc(12));else return wq.node()};wq.node=()=>{let q=Buffer.alloc(12),Q=q.length;for(let Y=0;Y<Q;Y++)q[Y]=Math.random()*256&255;return q};var bq={genSalt:wq};function Cq(q){let Q=Buffer.isBuffer(q)?q:Buffer.from(q);this.keys=new Uint32Array([305419896,591751049,878082192]);for(let Y=0;Y<Q.length;Y++)this.updateKeys(Q[Y])}Cq.prototype.updateKeys=function(q){let Q=this.keys;return Q[0]=JQ(Q[0],q),Q[1]+=Q[0]&255,Q[1]=WQ(Q[1],134775813)+1,Q[2]=JQ(Q[2],Q[1]>>>24),q};Cq.prototype.next=function(){let q=(this.keys[2]|2)>>>0;return WQ(q,q^1)>>8&255};function rY(q){let Q=new Cq(q);return function(Y){let X=Buffer.alloc(Y.length),J=0;for(let W of Y)X[J++]=Q.updateKeys(W^Q.next());return X}}function iY(q){let Q=new Cq(q);return function(Y,X,J=0){if(!X)X=Buffer.alloc(Y.length);for(let W of Y){let K=Q.next();X[J++]=W^K,Q.updateKeys(W)}return X}}function nY(q,Q,Y){if(!q||!Buffer.isBuffer(q)||q.length<12)return Buffer.alloc(0);let X=rY(Y),J=X(q.slice(0,12)),W=(Q.flags&8)===8?Q.timeHighByte:Q.crc>>>24;if(J[11]!==W)throw dY.WRONG_PASSWORD();return X(q.slice(12))}function sY(q){if(Buffer.isBuffer(q)&&q.length>=12)bq.genSalt=function(){return q.slice(0,12)};else if(q==="node")bq.genSalt=wq.node;else bq.genSalt=wq}function tY(q,Q,Y,X=!1){if(q==null)q=Buffer.alloc(0);if(!Buffer.isBuffer(q))q=Buffer.from(q.toString());let J=iY(Y),W=bq.genSalt();if(W[11]=Q.crc>>>24&255,X)W[10]=Q.crc>>>16&255;let K=Buffer.alloc(q.length+12);return J(W,K),J(q,K,12)}GQ.exports={decrypt:nY,encrypt:tY,_salter:sY}});var $Q=O((aY)=>{aY.Deflater=qQ();aY.Inflater=YQ();aY.ZipCrypto=KQ()});var q0=O((bJ,VQ)=>{var F=Jq(),Y8=aq(),k=F.Constants,eq=$Q();VQ.exports=function(q,Q){var Y=new Y8.EntryHeader,X=Buffer.alloc(0),J=Buffer.alloc(0),W=!1,K=null,$=Buffer.alloc(0),L=Buffer.alloc(0),B=!0;let U=q,w=typeof U.decoder==="object"?U.decoder:F.decoder;B=w.hasOwnProperty("efs")?w.efs:!1;function D(){if(!Q||!(Q instanceof Uint8Array))return Buffer.alloc(0);return L=Y.loadLocalHeaderFromBinary(Q),Q.slice(Y.realDataOffset,Y.realDataOffset+Y.compressedSize)}function V(G){if(!Y.flags_desc){if(F.crc32(G)!==Y.localHeader.crc)return!1}else{let I={},z=Y.realDataOffset+Y.compressedSize;if(Q.readUInt32LE(z)==k.LOCSIG||Q.readUInt32LE(z)==k.CENSIG)throw F.Errors.DESCRIPTOR_NOT_EXIST();if(Q.readUInt32LE(z)==k.EXTSIG)I.crc=Q.readUInt32LE(z+k.EXTCRC),I.compressedSize=Q.readUInt32LE(z+k.EXTSIZ),I.size=Q.readUInt32LE(z+k.EXTLEN);else if(Q.readUInt16LE(z+12)===19280)I.crc=Q.readUInt32LE(z+k.EXTCRC-4),I.compressedSize=Q.readUInt32LE(z+k.EXTSIZ-4),I.size=Q.readUInt32LE(z+k.EXTLEN-4);else throw F.Errors.DESCRIPTOR_UNKNOWN();if(I.compressedSize!==Y.compressedSize||I.size!==Y.size||I.crc!==Y.crc)throw F.Errors.DESCRIPTOR_FAULTY();if(F.crc32(G)!==I.crc)return!1}return!0}function R(G,I,z){if(typeof I>"u"&&typeof G==="string")z=G,G=void 0;if(W){if(G&&I)I(Buffer.alloc(0),F.Errors.DIRECTORY_CONTENT_ERROR());return Buffer.alloc(0)}var S=D();if(S.length===0){if(G&&I)I(S);return S}if(Y.encrypted){if(typeof z!=="string"&&!Buffer.isBuffer(z))throw F.Errors.INVALID_PASS_PARAM();S=eq.ZipCrypto.decrypt(S,Y,z)}var M=Buffer.alloc(Y.size);switch(Y.method){case F.Constants.STORED:if(S.copy(M),!V(M)){if(G&&I)I(M,F.Errors.BAD_CRC());throw F.Errors.BAD_CRC()}else{if(G&&I)I(M);return M}case F.Constants.DEFLATED:var Z=new eq.Inflater(S,Y.size);if(!G){if(Z.inflate(M).copy(M,0),!V(M))throw F.Errors.BAD_CRC(`"${w.decode(X)}"`);return M}else Z.inflateAsync(function(T){if(T.copy(T,0),I)if(!V(T))I(T,F.Errors.BAD_CRC());else I(T)});break;default:if(G&&I)I(Buffer.alloc(0),F.Errors.UNKNOWN_METHOD());throw F.Errors.UNKNOWN_METHOD()}}function H(G,I){if((!K||!K.length)&&Buffer.isBuffer(Q)){if(G&&I)I(D());return D()}if(K.length&&!W){var z;switch(Y.method){case F.Constants.STORED:if(Y.compressedSize=Y.size,z=Buffer.alloc(K.length),K.copy(z),G&&I)I(z);return z;default:case F.Constants.DEFLATED:var S=new eq.Deflater(K);if(!G){var M=S.deflate();return Y.compressedSize=M.length,M}else S.deflateAsync(function(Z){z=Buffer.alloc(Z.length),Y.compressedSize=Z.length,Z.copy(z),I&&I(z)});S=null;break}}else if(G&&I)I(Buffer.alloc(0));else return Buffer.alloc(0)}function A(G,I){return(G.readUInt32LE(I+4)<<4)+G.readUInt32LE(I)}function j(G){try{var I=0,z,S,M;while(I+4<G.length)if(z=G.readUInt16LE(I),I+=2,S=G.readUInt16LE(I),I+=2,M=G.slice(I,I+S),I+=S,k.ID_ZIP64===z)E(M)}catch(Z){throw F.Errors.EXTRA_FIELD_PARSE_ERROR()}}function E(G){var I,z,S,M;if(G.length>=k.EF_ZIP64_SCOMP){if(I=A(G,k.EF_ZIP64_SUNCOMP),Y.size===k.EF_ZIP64_OR_32)Y.size=I}if(G.length>=k.EF_ZIP64_RHO){if(z=A(G,k.EF_ZIP64_SCOMP),Y.compressedSize===k.EF_ZIP64_OR_32)Y.compressedSize=z}if(G.length>=k.EF_ZIP64_DSN){if(S=A(G,k.EF_ZIP64_RHO),Y.offset===k.EF_ZIP64_OR_32)Y.offset=S}if(G.length>=k.EF_ZIP64_DSN+4){if(M=G.readUInt32LE(k.EF_ZIP64_DSN),Y.diskNumStart===k.EF_ZIP64_OR_16)Y.diskNumStart=M}}return{get entryName(){return w.decode(X)},get rawEntryName(){return X},set entryName(G){X=F.toBuffer(G,w.encode);var I=X[X.length-1];W=I===47||I===92,Y.fileNameLength=X.length},get efs(){if(typeof B==="function")return B(this.entryName);else return B},get extra(){return $},set extra(G){$=G,Y.extraLength=G.length,j(G)},get comment(){return w.decode(J)},set comment(G){if(J=F.toBuffer(G,w.encode),Y.commentLength=J.length,J.length>65535)throw F.Errors.COMMENT_TOO_LONG()},get name(){var G=w.decode(X);return W?G.substr(G.length-1).split("/").pop():G.split("/").pop()},get isDirectory(){return W},getCompressedData:function(){return H(!1,null)},getCompressedDataAsync:function(G){H(!0,G)},setData:function(G){if(K=F.toBuffer(G,F.decoder.encode),!W&&K.length)Y.size=K.length,Y.method=F.Constants.DEFLATED,Y.crc=F.crc32(G),Y.changed=!0;else Y.method=F.Constants.STORED},getData:function(G){if(Y.changed)return K;else return R(!1,null,G)},getDataAsync:function(G,I){if(Y.changed)G(K);else R(!0,G,I)},set attr(G){Y.attr=G},get attr(){return Y.attr},set header(G){Y.loadFromBinary(G)},get header(){return Y},packCentralHeader:function(){Y.flags_efs=this.efs,Y.extraLength=$.length;var G=Y.centralHeaderToBinary(),I=F.Constants.CENHDR;return X.copy(G,I),I+=X.length,$.copy(G,I),I+=Y.extraLength,J.copy(G,I),G},packLocalHeader:function(){let G=0;Y.flags_efs=this.efs,Y.extraLocalLength=L.length;let I=Y.localHeaderToBinary(),z=Buffer.alloc(I.length+X.length+Y.extraLocalLength);return I.copy(z,G),G+=I.length,X.copy(z,G),G+=X.length,L.copy(z,G),G+=L.length,z},toJSON:function(){let G=function(I){return"<"+(I&&I.length+" bytes buffer"||"null")+">"};return{entryName:this.entryName,name:this.name,comment:this.comment,isDirectory:this.isDirectory,header:Y.toJSON(),compressedData:G(Q),data:G(K)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var RQ=O((CJ,BQ)=>{var LQ=q0(),X8=aq(),u=Jq();BQ.exports=function(q,Q){var Y=[],X={},J=Buffer.alloc(0),W=new X8.MainHeader,K=!1,$=null;let L=new Set,B=Q,{noSort:U,decoder:w}=B;if(q)R(B.readEntries);else K=!0;function D(){let A=new Set;for(let j of Object.keys(X)){let E=j.split("/");if(E.pop(),!E.length)continue;for(let G=0;G<E.length;G++){let I=E.slice(0,G+1).join("/")+"/";A.add(I)}}for(let j of A)if(!(j in X)){let E=new LQ(B);E.entryName=j,E.attr=16,E.temporary=!0,Y.push(E),X[E.entryName]=E,L.add(E)}}function V(){if(K=!0,X={},W.diskEntries>(q.length-W.offset)/u.Constants.CENHDR)throw u.Errors.DISK_ENTRY_TOO_LARGE();Y=Array(W.diskEntries);var A=W.offset;for(var j=0;j<Y.length;j++){var E=A,G=new LQ(B,q);if(G.header=q.slice(E,E+=u.Constants.CENHDR),G.entryName=q.slice(E,E+=G.header.fileNameLength),G.header.extraLength)G.extra=q.slice(E,E+=G.header.extraLength);if(G.header.commentLength)G.comment=q.slice(E,E+G.header.commentLength);A+=G.header.centralHeaderSize,Y[j]=G,X[G.entryName]=G}L.clear(),D()}function R(A){var j=q.length-u.Constants.ENDHDR,E=Math.max(0,j-65535),G=E,I=q.length,z=-1,S=0;if(typeof B.trailingSpace==="boolean"?B.trailingSpace:!1)E=0;for(j;j>=G;j--){if(q[j]!==80)continue;if(q.readUInt32LE(j)===u.Constants.ENDSIG){z=j,S=j,I=j+u.Constants.ENDHDR,G=j-u.Constants.END64HDR;continue}if(q.readUInt32LE(j)===u.Constants.END64SIG){G=E;continue}if(q.readUInt32LE(j)===u.Constants.ZIP64SIG){z=j,I=j+u.readBigUInt64LE(q,j+u.Constants.ZIP64SIZE)+u.Constants.ZIP64LEAD;break}}if(z==-1)throw u.Errors.INVALID_FORMAT();if(W.loadFromBinary(q.slice(z,I)),W.commentLength)J=q.slice(S+u.Constants.ENDHDR);if(A)V()}function H(){if(Y.length>1&&!U)Y.sort((A,j)=>A.entryName.toLowerCase().localeCompare(j.entryName.toLowerCase()))}return{get entries(){if(!K)V();return Y.filter((A)=>!L.has(A))},get comment(){return w.decode(J)},set comment(A){J=u.toBuffer(A,w.encode),W.commentLength=J.length},getEntryCount:function(){if(!K)return W.diskEntries;return Y.length},forEach:function(A){this.entries.forEach(A)},getEntry:function(A){if(!K)V();return X[A]||null},setEntry:function(A){if(!K)V();Y.push(A),X[A.entryName]=A,W.totalEntries=Y.length},deleteFile:function(A,j=!0){if(!K)V();let E=X[A];this.getEntryChildren(E,j).map((I)=>I.entryName).forEach(this.deleteEntry)},deleteEntry:function(A){if(!K)V();let j=X[A],E=Y.indexOf(j);if(E>=0)Y.splice(E,1),delete X[A],W.totalEntries=Y.length},getEntryChildren:function(A,j=!0){if(!K)V();if(typeof A==="object")if(A.isDirectory&&j){let E=[],G=A.entryName;for(let I of Y)if(I.entryName.startsWith(G))E.push(I);return E}else return[A];return[]},getChildCount:function(A){if(A&&A.isDirectory){let j=this.getEntryChildren(A);return j.includes(A)?j.length-1:j.length}return 0},compressToBuffer:function(){if(!K)V();H();let A=[],j=[],E=0,G=0;W.size=0,W.offset=0;let I=0;for(let M of this.entries){let Z=M.getCompressedData();M.header.offset=G;let T=M.packLocalHeader(),y=T.length+Z.length;G+=y,A.push(T),A.push(Z);let P=M.packCentralHeader();j.push(P),W.size+=P.length,E+=y+P.length,I++}E+=W.mainHeaderSize,W.offset=G,W.totalEntries=I,G=0;let z=Buffer.alloc(E);for(let M of A)M.copy(z,G),G+=M.length;for(let M of j)M.copy(z,G),G+=M.length;let S=W.toBinary();if(J)J.copy(S,u.Constants.ENDHDR);return S.copy(z,G),q=z,K=!1,z},toAsyncBuffer:function(A,j,E,G){try{if(!K)V();H();let I=[],z=[],S=0,M=0,Z=0;W.size=0,W.offset=0;let T=function(y){if(y.length>0){let P=y.shift(),d=P.entryName+P.extra.toString();if(E)E(d);P.getCompressedDataAsync(function(p){if(G)G(d);P.header.offset=M;let Dq=P.packLocalHeader(),J0=Dq.length+p.length;M+=J0,I.push(Dq),I.push(p);let kq=P.packCentralHeader();z.push(kq),W.size+=kq.length,S+=J0+kq.length,Z++,T(y)})}else{S+=W.mainHeaderSize,W.offset=M,W.totalEntries=Z,M=0;let P=Buffer.alloc(S);I.forEach(function(p){p.copy(P,M),M+=p.length}),z.forEach(function(p){p.copy(P,M),M+=p.length});let d=W.toBinary();if(J)J.copy(d,u.Constants.ENDHDR);d.copy(P,M),q=P,K=!1,A(P)}};T(Array.from(this.entries))}catch(I){j(I)}}}}});var HQ=O((xJ,IQ)=>{var C=Jq(),v=f("path"),J8=q0(),W8=RQ(),t=(...q)=>C.findLast(q,(Q)=>typeof Q==="boolean"),AQ=(...q)=>C.findLast(q,(Q)=>typeof Q==="string"),G8=(...q)=>C.findLast(q,(Q)=>typeof Q==="function"),K8={noSort:!1,readEntries:!1,method:C.Constants.NONE,fs:null};IQ.exports=function(q,Q){let Y=null,X=Object.assign(Object.create(null),K8);if(q&&typeof q==="object"){if(!(q instanceof Uint8Array)){if(Object.assign(X,q),q=X.input?X.input:void 0,X.input)delete X.input}if(Buffer.isBuffer(q))Y=q,X.method=C.Constants.BUFFER,q=void 0}Object.assign(X,Q);let J=new C(X);if(typeof X.decoder!=="object"||typeof X.decoder.encode!=="function"||typeof X.decoder.decode!=="function")X.decoder=C.decoder;if(q&&typeof q==="string")if(J.fs.existsSync(q))X.method=C.Constants.FILE,X.filename=q,Y=J.fs.readFileSync(q);else throw C.Errors.INVALID_FILENAME();let W=new W8(Y,X),{canonical:K,sanitize:$,zipnamefix:L}=C;function B(V){if(V&&W){var R;if(typeof V==="string")R=W.getEntry(v.posix.normalize(V));if(typeof V==="object"&&typeof V.entryName<"u"&&typeof V.header<"u")R=W.getEntry(V.entryName);if(R)return R}return null}function U(V){let{join:R,normalize:H,sep:A}=v.posix;return R(".",H(A+V.split("\\").join(A)+A))}function w(V){if(V instanceof RegExp)return function(R){return function(H){return R.test(H)}}(V);else if(typeof V!=="function")return()=>!0;return V}let D=(V,R)=>{let H=R.slice(-1);return H=H===J.sep?J.sep:"",v.relative(V,R)+H};return{readFile:function(V,R){var H=B(V);return H&&H.getData(R)||null},childCount:function(V){let R=B(V);if(R)return W.getChildCount(R)},readFileAsync:function(V,R){var H=B(V);if(H)H.getDataAsync(R);else R(null,"getEntry failed for:"+V)},readAsText:function(V,R){var H=B(V);if(H){var A=H.getData();if(A&&A.length)return A.toString(R||"utf8")}return""},readAsTextAsync:function(V,R,H){var A=B(V);if(A)A.getDataAsync(function(j,E){if(E){R(j,E);return}if(j&&j.length)R(j.toString(H||"utf8"));else R("")});else R("")},deleteFile:function(V,R=!0){var H=B(V);if(H)W.deleteFile(H.entryName,R)},deleteEntry:function(V){var R=B(V);if(R)W.deleteEntry(R.entryName)},addZipComment:function(V){W.comment=V},getZipComment:function(){return W.comment||""},addZipEntryComment:function(V,R){var H=B(V);if(H)H.comment=R},getZipEntryComment:function(V){var R=B(V);if(R)return R.comment||"";return""},updateFile:function(V,R){var H=B(V);if(H)H.setData(R)},addLocalFile:function(V,R,H,A){if(J.fs.existsSync(V)){R=R?U(R):"";let j=v.win32.basename(v.win32.normalize(V));R+=H?H:j;let E=J.fs.statSync(V),G=E.isFile()?J.fs.readFileSync(V):Buffer.alloc(0);if(E.isDirectory())R+=J.sep;this.addFile(R,G,A,E)}else throw C.Errors.FILE_NOT_FOUND(V)},addLocalFileAsync:function(V,R){V=typeof V==="object"?V:{localPath:V};let H=v.resolve(V.localPath),{comment:A}=V,{zipPath:j,zipName:E}=V,G=this;J.fs.stat(H,function(I,z){if(I)return R(I,!1);j=j?U(j):"";let S=v.win32.basename(v.win32.normalize(H));if(j+=E?E:S,z.isFile())J.fs.readFile(H,function(M,Z){if(M)return R(M,!1);return G.addFile(j,Z,A,z),setImmediate(R,void 0,!0)});else if(z.isDirectory())return j+=J.sep,G.addFile(j,Buffer.alloc(0),A,z),setImmediate(R,void 0,!0)})},addLocalFolder:function(V,R,H){if(H=w(H),R=R?U(R):"",V=v.normalize(V),J.fs.existsSync(V)){let A=J.findFiles(V),j=this;if(A.length)for(let E of A){let G=v.join(R,D(V,E));if(H(G))j.addLocalFile(E,v.dirname(G))}}else throw C.Errors.FILE_NOT_FOUND(V)},addLocalFolderAsync:function(V,R,H,A){A=w(A),H=H?U(H):"",V=v.normalize(V);var j=this;J.fs.open(V,"r",function(E){if(E&&E.code==="ENOENT")R(void 0,C.Errors.FILE_NOT_FOUND(V));else if(E)R(void 0,E);else{var G=J.findFiles(V),I=-1,z=function(){if(I+=1,I<G.length){var S=G[I],M=D(V,S).split("\\").join("/");if(M=M.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,""),A(M))J.fs.stat(S,function(Z,T){if(Z)R(void 0,Z);if(T.isFile())J.fs.readFile(S,function(y,P){if(y)R(void 0,y);else j.addFile(H+M,P,"",T),z()});else j.addFile(H+M+"/",Buffer.alloc(0),"",T),z()});else process.nextTick(()=>{z()})}else R(!0,void 0)};z()}})},addLocalFolderAsync2:function(V,R){let H=this;V=typeof V==="object"?V:{localPath:V},localPath=v.resolve(U(V.localPath));let{zipPath:A,filter:j,namefix:E}=V;if(j instanceof RegExp)j=function(z){return function(S){return z.test(S)}}(j);else if(typeof j!=="function")j=function(){return!0};if(A=A?U(A):"",E=="latin1")E=(z)=>z.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,"");if(typeof E!=="function")E=(z)=>z;let G=(z)=>v.join(A,E(D(localPath,z))),I=(z)=>v.win32.basename(v.win32.normalize(E(z)));J.fs.open(localPath,"r",function(z){if(z&&z.code==="ENOENT")R(void 0,C.Errors.FILE_NOT_FOUND(localPath));else if(z)R(void 0,z);else J.findFilesAsync(localPath,function(S,M){if(S)return R(S);if(M=M.filter((Z)=>j(G(Z))),!M.length)R(void 0,!1);setImmediate(M.reverse().reduce(function(Z,T){return function(y,P){if(y||P===!1)return setImmediate(Z,y,!1);H.addLocalFileAsync({localPath:T,zipPath:v.dirname(G(T)),zipName:I(T)},Z)}},R))})})},addLocalFolderPromise:function(V,R){return new Promise((H,A)=>{this.addLocalFolderAsync2(Object.assign({localPath:V},R),(j,E)=>{if(j)A(j);if(E)H(this)})})},addFile:function(V,R,H,A){V=L(V);let j=B(V),E=j!=null;if(!E)j=new J8(X),j.entryName=V;j.comment=H||"";let G=typeof A==="object"&&A instanceof J.fs.Stats;if(G)j.header.time=A.mtime;var I=j.isDirectory?16:0;let z=j.isDirectory?16384:32768;if(G)z|=4095&A.mode;else if(typeof A==="number")z|=4095&A;else z|=j.isDirectory?493:420;if(I=(I|z<<16)>>>0,j.attr=I,j.setData(R),!E)W.setEntry(j);return j},getEntries:function(V){return W.password=V,W?W.entries:[]},getEntry:function(V){return B(V)},getEntryCount:function(){return W.getEntryCount()},forEach:function(V){return W.forEach(V)},extractEntryTo:function(V,R,H,A,j,E){A=t(!1,A),j=t(!1,j),H=t(!0,H),E=AQ(j,E);var G=B(V);if(!G)throw C.Errors.NO_ENTRY();var I=K(G.entryName),z=$(R,E&&!G.isDirectory?E:H?I:v.basename(I));if(G.isDirectory){var S=W.getEntryChildren(G);return S.forEach(function(T){if(T.isDirectory)return;var y=T.getData();if(!y)throw C.Errors.CANT_EXTRACT_FILE();var P=K(T.entryName),d=$(R,H?P:v.basename(P));let p=j?T.header.fileAttr:void 0;J.writeFileTo(d,y,A,p)}),!0}var M=G.getData(W.password);if(!M)throw C.Errors.CANT_EXTRACT_FILE();if(J.fs.existsSync(z)&&!A)throw C.Errors.CANT_OVERRIDE();let Z=j?V.header.fileAttr:void 0;return J.writeFileTo(z,M,A,Z),!0},test:function(V){if(!W)return!1;for(var R in W.entries)try{if(R.isDirectory)continue;var H=W.entries[R].getData(V);if(!H)return!1}catch(A){return!1}return!0},extractAllTo:function(V,R,H,A){if(H=t(!1,H),A=AQ(H,A),R=t(!1,R),!W)throw C.Errors.NO_ZIP();W.entries.forEach(function(j){var E=$(V,K(j.entryName));if(j.isDirectory){J.makeDir(E);return}var G=j.getData(A);if(!G)throw C.Errors.CANT_EXTRACT_FILE();let I=H?j.header.fileAttr:void 0;J.writeFileTo(E,G,R,I);try{J.fs.utimesSync(E,j.header.time,j.header.time)}catch(z){throw C.Errors.CANT_EXTRACT_FILE()}})},extractAllToAsync:function(V,R,H,A){if(A=G8(R,H,A),H=t(!1,H),R=t(!1,R),!A)return new Promise((z,S)=>{this.extractAllToAsync(V,R,H,function(M){if(M)S(M);else z(this)})});if(!W){A(C.Errors.NO_ZIP());return}V=v.resolve(V);let j=(z)=>$(V,v.normalize(K(z.entryName))),E=(z,S)=>Error(z+': "'+S+'"'),G=[],I=[];W.entries.forEach((z)=>{if(z.isDirectory)G.push(z);else I.push(z)});for(let z of G){let S=j(z),M=H?z.header.fileAttr:void 0;try{if(J.makeDir(S),M)J.fs.chmodSync(S,M);J.fs.utimesSync(S,z.header.time,z.header.time)}catch(Z){A(E("Unable to create folder",S))}}I.reverse().reduce(function(z,S){return function(M){if(M)z(M);else{let Z=v.normalize(K(S.entryName)),T=$(V,Z);S.getDataAsync(function(y,P){if(P)z(P);else if(!y)z(C.Errors.CANT_EXTRACT_FILE());else{let d=H?S.header.fileAttr:void 0;J.writeFileToAsync(T,y,R,d,function(p){if(!p)z(E("Unable to write file",T));J.fs.utimes(T,S.header.time,S.header.time,function(Dq){if(Dq)z(E("Unable to set times",T));else z()})})}})}}},A)()},writeZip:function(V,R){if(arguments.length===1){if(typeof V==="function")R=V,V=""}if(!V&&X.filename)V=X.filename;if(!V)return;var H=W.compressToBuffer();if(H){var A=J.writeFileTo(V,H,!0);if(typeof R==="function")R(!A?Error("failed"):null,"")}},writeZipPromise:function(V,R){let{overwrite:H,perm:A}=Object.assign({overwrite:!0},R);return new Promise((j,E)=>{if(!V&&X.filename)V=X.filename;if(!V)E("ADM-ZIP: ZIP File Name Missing");this.toBufferPromise().then((G)=>{let I=(z)=>z?j(z):E("ADM-ZIP: Wasn't able to write zip file");J.writeFileToAsync(V,G,H,A,I)},E)})},toBufferPromise:function(){return new Promise((V,R)=>{W.toAsyncBuffer(V,R)})},toBuffer:function(V,R,H,A){if(typeof V==="function")return W.toAsyncBuffer(V,R,H,A),null;return W.compressToBuffer()}}}});var w0=$q(E0(),1),{program:s,createCommand:h8,createArgument:g8,createOption:y8,CommanderError:u8,InvalidArgumentError:f8,InvalidOptionArgumentError:m8,Command:c8,Argument:p8,Option:l8,Help:d8}=w0.default;import{cp as z8,mkdir as Nq,writeFile as n,readFile as jQ,rm as _q,readdir as j8}from"fs/promises";import{join as h,resolve as U8,relative as dJ,basename as E8}from"path";import{spawn as UQ}from"child_process";import{homedir as w8,tmpdir as N8}from"os";import{stat as D8}from"fs/promises";var pq={rust:{courseJson:{id:"{{id}}",name:"{{name}}",runner:{command:"cargo",args:["test","--quiet","--manifest-path","./content/{{id}}/Cargo.toml"],cwd:"."},content:{root:".",exercises:"content"},setup:{checks:[{name:"Rust Compiler",type:"command",command:"rustc --version"},{name:"Cargo Package Manager",type:"command",command:"cargo --version"}],guide:"SETUP.md"}},setupMd:`# \uD83E\uDD80 Rust Setup Guide
24
+ `)}),this}_outputHelpIfRequested(q){let Q=this._getHelpOption();if(Q&&q.find((X)=>Q.is(X)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function H0(q){return q.map((Q)=>{if(!Q.startsWith("--inspect"))return Q;let Y,X="127.0.0.1",J="9229",W;if((W=Q.match(/^(--inspect(-brk)?)$/))!==null)Y=W[1];else if((W=Q.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(Y=W[1],/^\d+$/.test(W[3]))J=W[3];else X=W[3];else if((W=Q.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)Y=W[1],X=W[3],J=W[4];if(Y&&J!=="0")return`${Y}=${X}:${parseInt(J)+1}`;return Q})}tQ.Command=fq});var w0=O((QY)=>{var{Argument:j0}=Mq(),{Command:mq}=z0(),{CommanderError:eQ,InvalidArgumentError:U0}=Vq(),{Help:qY}=vq(),{Option:E0}=hq();QY.program=new mq;QY.createCommand=(q)=>new mq(q);QY.createOption=(q,Q)=>new E0(q,Q);QY.createArgument=(q,Q)=>new j0(q,Q);QY.Command=mq;QY.Option=E0;QY.Argument=j0;QY.Help=qY;QY.CommanderError=eQ;QY.InvalidArgumentError=U0;QY.InvalidOptionArgumentError=U0});var sq=O((UJ,y0)=>{y0.exports={LOCHDR:30,LOCSIG:67324752,LOCVER:4,LOCFLG:6,LOCHOW:8,LOCTIM:10,LOCCRC:14,LOCSIZ:18,LOCLEN:22,LOCNAM:26,LOCEXT:28,EXTSIG:134695760,EXTHDR:16,EXTCRC:4,EXTSIZ:8,EXTLEN:12,CENHDR:46,CENSIG:33639248,CENVEM:4,CENVER:6,CENFLG:8,CENHOW:10,CENTIM:12,CENCRC:16,CENSIZ:20,CENLEN:24,CENNAM:28,CENEXT:30,CENCOM:32,CENDSK:34,CENATT:36,CENATX:38,CENOFF:42,ENDHDR:22,ENDSIG:101010256,ENDSUB:8,ENDTOT:10,ENDSIZ:12,ENDOFF:16,ENDCOM:20,END64HDR:20,END64SIG:117853008,END64START:4,END64OFF:8,END64NUMDISKS:16,ZIP64SIG:101075792,ZIP64HDR:56,ZIP64LEAD:12,ZIP64SIZE:4,ZIP64VEM:12,ZIP64VER:14,ZIP64DSK:16,ZIP64DSKDIR:20,ZIP64SUB:24,ZIP64TOT:32,ZIP64SIZB:40,ZIP64OFF:48,ZIP64EXTRA:56,STORED:0,SHRUNK:1,REDUCED1:2,REDUCED2:3,REDUCED3:4,REDUCED4:5,IMPLODED:6,DEFLATED:8,ENHANCED_DEFLATED:9,PKWARE:10,BZIP2:12,LZMA:14,IBM_TERSE:18,IBM_LZ77:19,AES_ENCRYPT:99,FLG_ENC:1,FLG_COMP1:2,FLG_COMP2:4,FLG_DESC:8,FLG_ENH:16,FLG_PATCH:32,FLG_STR:64,FLG_EFS:2048,FLG_MSK:4096,FILE:2,BUFFER:1,NONE:0,EF_ID:0,EF_SIZE:2,ID_ZIP64:1,ID_AVINFO:7,ID_PFS:8,ID_OS2:9,ID_NTFS:10,ID_OPENVMS:12,ID_UNIX:13,ID_FORK:14,ID_PATCH:15,ID_X509_PKCS7:20,ID_X509_CERTID_F:21,ID_X509_CERTID_C:22,ID_STRONGENC:23,ID_RECORD_MGT:24,ID_X509_PKCS7_RL:25,ID_IBM1:101,ID_IBM2:102,ID_POSZIP:18064,EF_ZIP64_OR_32:4294967295,EF_ZIP64_OR_16:65535,EF_ZIP64_SUNCOMP:0,EF_ZIP64_SCOMP:8,EF_ZIP64_RHO:16,EF_ZIP64_DSN:24}});var Oq=O((f0)=>{var u0={INVALID_LOC:"Invalid LOC header (bad signature)",INVALID_CEN:"Invalid CEN header (bad signature)",INVALID_END:"Invalid END header (bad signature)",DESCRIPTOR_NOT_EXIST:"No descriptor present",DESCRIPTOR_UNKNOWN:"Unknown descriptor format",DESCRIPTOR_FAULTY:"Descriptor data is malformed",NO_DATA:"Nothing to decompress",BAD_CRC:"CRC32 checksum failed {0}",FILE_IN_THE_WAY:"There is a file in the way: {0}",UNKNOWN_METHOD:"Invalid/unsupported compression method",AVAIL_DATA:"inflate::Available inflate data did not terminate",INVALID_DISTANCE:"inflate::Invalid literal/length or distance code in fixed or dynamic block",TO_MANY_CODES:"inflate::Dynamic block code description: too many length or distance codes",INVALID_REPEAT_LEN:"inflate::Dynamic block code description: repeat more than specified lengths",INVALID_REPEAT_FIRST:"inflate::Dynamic block code description: repeat lengths with no first length",INCOMPLETE_CODES:"inflate::Dynamic block code description: code lengths codes incomplete",INVALID_DYN_DISTANCE:"inflate::Dynamic block code description: invalid distance code lengths",INVALID_CODES_LEN:"inflate::Dynamic block code description: invalid literal/length code lengths",INVALID_STORE_BLOCK:"inflate::Stored block length did not match one's complement",INVALID_BLOCK_TYPE:"inflate::Invalid block type (type == 3)",CANT_EXTRACT_FILE:"Could not extract the file",CANT_OVERRIDE:"Target file already exists",DISK_ENTRY_TOO_LARGE:"Number of disk entries is too large",NO_ZIP:"No zip file was loaded",NO_ENTRY:"Entry doesn't exist",DIRECTORY_CONTENT_ERROR:"A directory cannot have content",FILE_NOT_FOUND:'File not found: "{0}"',NOT_IMPLEMENTED:"Not implemented",INVALID_FILENAME:"Invalid filename",INVALID_FORMAT:"Invalid or unsupported zip format. No END header found",INVALID_PASS_PARAM:"Incompatible password parameter",WRONG_PASSWORD:"Wrong Password",COMMENT_TOO_LONG:"Comment is too long",EXTRA_FIELD_PARSE_ERROR:"Extra field parsing error"};function gY(q){return function(...Q){if(Q.length)q=q.replace(/\{(\d)\}/g,(Y,X)=>Q[X]||"");return Error("ADM-ZIP: "+q)}}for(let q of Object.keys(u0))f0[q]=gY(u0[q])});var d0=O((wJ,l0)=>{var yY=f("fs"),g=f("path"),m0=sq(),uY=Oq(),fY=typeof process==="object"&&process.platform==="win32",c0=(q)=>typeof q==="object"&&q!==null,p0=new Uint32Array(256).map((q,Q)=>{for(let Y=0;Y<8;Y++)if((Q&1)!==0)Q=3988292384^Q>>>1;else Q>>>=1;return Q>>>0});function k(q){if(this.sep=g.sep,this.fs=yY,c0(q)){if(c0(q.fs)&&typeof q.fs.statSync==="function")this.fs=q.fs}}l0.exports=k;k.prototype.makeDir=function(q){let Q=this;function Y(X){let J=X.split(Q.sep)[0];X.split(Q.sep).forEach(function(W){if(!W||W.substr(-1,1)===":")return;J+=Q.sep+W;var K;try{K=Q.fs.statSync(J)}catch($){Q.fs.mkdirSync(J)}if(K&&K.isFile())throw uY.FILE_IN_THE_WAY(`"${J}"`)})}Y(q)};k.prototype.writeFileTo=function(q,Q,Y,X){let J=this;if(J.fs.existsSync(q)){if(!Y)return!1;var W=J.fs.statSync(q);if(W.isDirectory())return!1}var K=g.dirname(q);if(!J.fs.existsSync(K))J.makeDir(K);var $;try{$=J.fs.openSync(q,"w",438)}catch(L){J.fs.chmodSync(q,438),$=J.fs.openSync(q,"w",438)}if($)try{J.fs.writeSync($,Q,0,Q.length,0)}finally{J.fs.closeSync($)}return J.fs.chmodSync(q,X||438),!0};k.prototype.writeFileToAsync=function(q,Q,Y,X,J){if(typeof X==="function")J=X,X=void 0;let W=this;W.fs.exists(q,function(K){if(K&&!Y)return J(!1);W.fs.stat(q,function($,L){if(K&&L.isDirectory())return J(!1);var B=g.dirname(q);W.fs.exists(B,function(E){if(!E)W.makeDir(B);W.fs.open(q,"w",438,function(w,M){if(w)W.fs.chmod(q,438,function(){W.fs.open(q,"w",438,function(V,R){W.fs.write(R,Q,0,Q.length,0,function(){W.fs.close(R,function(){W.fs.chmod(q,X||438,function(){J(!0)})})})})});else if(M)W.fs.write(M,Q,0,Q.length,0,function(){W.fs.close(M,function(){W.fs.chmod(q,X||438,function(){J(!0)})})});else W.fs.chmod(q,X||438,function(){J(!0)})})})})})};k.prototype.findFiles=function(q){let Q=this;function Y(X,J,W){if(typeof J==="boolean")W=J,J=void 0;let K=[];return Q.fs.readdirSync(X).forEach(function($){let L=g.join(X,$),B=Q.fs.statSync(L);if(!J||J.test(L))K.push(g.normalize(L)+(B.isDirectory()?Q.sep:""));if(B.isDirectory()&&W)K=K.concat(Y(L,J,W))}),K}return Y(q,void 0,!0)};k.prototype.findFilesAsync=function(q,Q){let Y=this,X=[];Y.fs.readdir(q,function(J,W){if(J)return Q(J);let K=W.length;if(!K)return Q(null,X);W.forEach(function($){$=g.join(q,$),Y.fs.stat($,function(L,B){if(L)return Q(L);if(B){if(X.push(g.normalize($)+(B.isDirectory()?Y.sep:"")),B.isDirectory())Y.findFilesAsync($,function(E,w){if(E)return Q(E);if(X=X.concat(w),!--K)Q(null,X)});else if(!--K)Q(null,X)}})})})};k.prototype.getAttributes=function(){};k.prototype.setAttributes=function(){};k.crc32update=function(q,Q){return p0[(q^Q)&255]^q>>>8};k.crc32=function(q){if(typeof q==="string")q=Buffer.from(q,"utf8");let Q=q.length,Y=-1;for(let X=0;X<Q;)Y=k.crc32update(Y,q[X++]);return~Y>>>0};k.methodToString=function(q){switch(q){case m0.STORED:return"STORED ("+q+")";case m0.DEFLATED:return"DEFLATED ("+q+")";default:return"UNSUPPORTED ("+q+")"}};k.canonical=function(q){if(!q)return"";let Q=g.posix.normalize("/"+q.split("\\").join("/"));return g.join(".",Q)};k.zipnamefix=function(q){if(!q)return"";let Q=g.posix.normalize("/"+q.split("\\").join("/"));return g.posix.join(".",Q)};k.findLast=function(q,Q){if(!Array.isArray(q))throw TypeError("arr is not array");let Y=q.length>>>0;for(let X=Y-1;X>=0;X--)if(Q(q[X],X,q))return q[X];return};k.sanitize=function(q,Q){q=g.resolve(g.normalize(q));var Y=Q.split("/");for(var X=0,J=Y.length;X<J;X++){var W=g.normalize(g.join(q,Y.slice(X,J).join(g.sep)));if(W.indexOf(q)===0)return W}return g.normalize(g.join(q,g.basename(Q)))};k.toBuffer=function(Q,Y){if(Buffer.isBuffer(Q))return Q;else if(Q instanceof Uint8Array)return Buffer.from(Q);else return typeof Q==="string"?Y(Q):Buffer.alloc(0)};k.readBigUInt64LE=function(q,Q){var Y=Buffer.from(q.slice(Q,Q+8));return Y.swap64(),parseInt(`0x${Y.toString("hex")}`)};k.fromDOS2Date=function(q){return new Date((q>>25&127)+1980,Math.max((q>>21&15)-1,0),Math.max(q>>16&31,1),q>>11&31,q>>5&63,(q&31)<<1)};k.fromDate2DOS=function(q){let Q=0,Y=0;if(q.getFullYear()>1979)Q=(q.getFullYear()-1980&127)<<9|q.getMonth()+1<<5|q.getDate(),Y=q.getHours()<<11|q.getMinutes()<<5|q.getSeconds()>>1;return Q<<16|Y};k.isWin=fY;k.crcTable=p0});var r0=O((NJ,o0)=>{var mY=f("path");o0.exports=function(q,{fs:Q}){var Y=q||"",X=W(),J=null;function W(){return{directory:!1,readonly:!1,hidden:!1,executable:!1,mtime:0,atime:0}}if(Y&&Q.existsSync(Y))J=Q.statSync(Y),X.directory=J.isDirectory(),X.mtime=J.mtime,X.atime=J.atime,X.executable=(73&J.mode)!==0,X.readonly=(128&J.mode)===0,X.hidden=mY.basename(Y)[0]===".";else console.warn("Invalid path: "+Y);return{get directory(){return X.directory},get readOnly(){return X.readonly},get hidden(){return X.hidden},get mtime(){return X.mtime},get atime(){return X.atime},get executable(){return X.executable},decodeAttributes:function(){},encodeAttributes:function(){},toJSON:function(){return{path:Y,isDirectory:X.directory,isReadOnly:X.readonly,isHidden:X.hidden,isExecutable:X.executable,mTime:X.mtime,aTime:X.atime}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var n0=O((DJ,i0)=>{i0.exports={efs:!0,encode:(q)=>Buffer.from(q,"utf8"),decode:(q)=>q.toString("utf8")}});var Jq=O((MJ,Xq)=>{Xq.exports=d0();Xq.exports.Constants=sq();Xq.exports.Errors=Oq();Xq.exports.FileAttr=r0();Xq.exports.decoder=n0()});var t0=O((SJ,s0)=>{var i=Jq(),N=i.Constants;s0.exports=function(){var q=20,Q=10,Y=0,X=0,J=0,W=0,K=0,$=0,L=0,B=0,E=0,w=0,M=0,V=0,R=0;q|=i.isWin?2560:768,Y|=N.FLG_EFS;let H={extraLen:0},A=(G)=>Math.max(0,G)>>>0,j=(G)=>Math.max(0,G)&65535,U=(G)=>Math.max(0,G)&255;return J=i.fromDate2DOS(new Date),{get made(){return q},set made(G){q=G},get version(){return Q},set version(G){Q=G},get flags(){return Y},set flags(G){Y=G},get flags_efs(){return(Y&N.FLG_EFS)>0},set flags_efs(G){if(G)Y|=N.FLG_EFS;else Y&=~N.FLG_EFS},get flags_desc(){return(Y&N.FLG_DESC)>0},set flags_desc(G){if(G)Y|=N.FLG_DESC;else Y&=~N.FLG_DESC},get method(){return X},set method(G){switch(G){case N.STORED:this.version=10;case N.DEFLATED:default:this.version=20}X=G},get time(){return i.fromDOS2Date(this.timeval)},set time(G){this.timeval=i.fromDate2DOS(G)},get timeval(){return J},set timeval(G){J=A(G)},get timeHighByte(){return U(J>>>8)},get crc(){return W},set crc(G){W=A(G)},get compressedSize(){return K},set compressedSize(G){K=A(G)},get size(){return $},set size(G){$=A(G)},get fileNameLength(){return L},set fileNameLength(G){L=G},get extraLength(){return B},set extraLength(G){B=G},get extraLocalLength(){return H.extraLen},set extraLocalLength(G){H.extraLen=G},get commentLength(){return E},set commentLength(G){E=G},get diskNumStart(){return w},set diskNumStart(G){w=A(G)},get inAttr(){return M},set inAttr(G){M=A(G)},get attr(){return V},set attr(G){V=A(G)},get fileAttr(){return(V||0)>>16&4095},get offset(){return R},set offset(G){R=A(G)},get encrypted(){return(Y&N.FLG_ENC)===N.FLG_ENC},get centralHeaderSize(){return N.CENHDR+L+B+E},get realDataOffset(){return R+N.LOCHDR+H.fnameLen+H.extraLen},get localHeader(){return H},loadLocalHeaderFromBinary:function(G){var I=G.slice(R,R+N.LOCHDR);if(I.readUInt32LE(0)!==N.LOCSIG)throw i.Errors.INVALID_LOC();H.version=I.readUInt16LE(N.LOCVER),H.flags=I.readUInt16LE(N.LOCFLG),H.method=I.readUInt16LE(N.LOCHOW),H.time=I.readUInt32LE(N.LOCTIM),H.crc=I.readUInt32LE(N.LOCCRC),H.compressedSize=I.readUInt32LE(N.LOCSIZ),H.size=I.readUInt32LE(N.LOCLEN),H.fnameLen=I.readUInt16LE(N.LOCNAM),H.extraLen=I.readUInt16LE(N.LOCEXT);let z=R+N.LOCHDR+H.fnameLen,S=z+H.extraLen;return G.slice(z,S)},loadFromBinary:function(G){if(G.length!==N.CENHDR||G.readUInt32LE(0)!==N.CENSIG)throw i.Errors.INVALID_CEN();q=G.readUInt16LE(N.CENVEM),Q=G.readUInt16LE(N.CENVER),Y=G.readUInt16LE(N.CENFLG),X=G.readUInt16LE(N.CENHOW),J=G.readUInt32LE(N.CENTIM),W=G.readUInt32LE(N.CENCRC),K=G.readUInt32LE(N.CENSIZ),$=G.readUInt32LE(N.CENLEN),L=G.readUInt16LE(N.CENNAM),B=G.readUInt16LE(N.CENEXT),E=G.readUInt16LE(N.CENCOM),w=G.readUInt16LE(N.CENDSK),M=G.readUInt16LE(N.CENATT),V=G.readUInt32LE(N.CENATX),R=G.readUInt32LE(N.CENOFF)},localHeaderToBinary:function(){var G=Buffer.alloc(N.LOCHDR);return G.writeUInt32LE(N.LOCSIG,0),G.writeUInt16LE(Q,N.LOCVER),G.writeUInt16LE(Y,N.LOCFLG),G.writeUInt16LE(X,N.LOCHOW),G.writeUInt32LE(J,N.LOCTIM),G.writeUInt32LE(W,N.LOCCRC),G.writeUInt32LE(K,N.LOCSIZ),G.writeUInt32LE($,N.LOCLEN),G.writeUInt16LE(L,N.LOCNAM),G.writeUInt16LE(H.extraLen,N.LOCEXT),G},centralHeaderToBinary:function(){var G=Buffer.alloc(N.CENHDR+L+B+E);return G.writeUInt32LE(N.CENSIG,0),G.writeUInt16LE(q,N.CENVEM),G.writeUInt16LE(Q,N.CENVER),G.writeUInt16LE(Y,N.CENFLG),G.writeUInt16LE(X,N.CENHOW),G.writeUInt32LE(J,N.CENTIM),G.writeUInt32LE(W,N.CENCRC),G.writeUInt32LE(K,N.CENSIZ),G.writeUInt32LE($,N.CENLEN),G.writeUInt16LE(L,N.CENNAM),G.writeUInt16LE(B,N.CENEXT),G.writeUInt16LE(E,N.CENCOM),G.writeUInt16LE(w,N.CENDSK),G.writeUInt16LE(M,N.CENATT),G.writeUInt32LE(V,N.CENATX),G.writeUInt32LE(R,N.CENOFF),G},toJSON:function(){let G=function(I){return I+" bytes"};return{made:q,version:Q,flags:Y,method:i.methodToString(X),time:this.time,crc:"0x"+W.toString(16).toUpperCase(),compressedSize:G(K),size:G($),fileNameLength:G(L),extraLength:G(B),commentLength:G(E),diskNumStart:w,inAttr:M,attr:V,offset:R,centralHeaderSize:G(N.CENHDR+L+B+E)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var e0=O((TJ,a0)=>{var Wq=Jq(),b=Wq.Constants;a0.exports=function(){var q=0,Q=0,Y=0,X=0,J=0;return{get diskEntries(){return q},set diskEntries(W){q=Q=W},get totalEntries(){return Q},set totalEntries(W){Q=q=W},get size(){return Y},set size(W){Y=W},get offset(){return X},set offset(W){X=W},get commentLength(){return J},set commentLength(W){J=W},get mainHeaderSize(){return b.ENDHDR+J},loadFromBinary:function(W){if((W.length!==b.ENDHDR||W.readUInt32LE(0)!==b.ENDSIG)&&(W.length<b.ZIP64HDR||W.readUInt32LE(0)!==b.ZIP64SIG))throw Wq.Errors.INVALID_END();if(W.readUInt32LE(0)===b.ENDSIG)q=W.readUInt16LE(b.ENDSUB),Q=W.readUInt16LE(b.ENDTOT),Y=W.readUInt32LE(b.ENDSIZ),X=W.readUInt32LE(b.ENDOFF),J=W.readUInt16LE(b.ENDCOM);else q=Wq.readBigUInt64LE(W,b.ZIP64SUB),Q=Wq.readBigUInt64LE(W,b.ZIP64TOT),Y=Wq.readBigUInt64LE(W,b.ZIP64SIZE),X=Wq.readBigUInt64LE(W,b.ZIP64OFF),J=0},toBinary:function(){var W=Buffer.alloc(b.ENDHDR+J);return W.writeUInt32LE(b.ENDSIG,0),W.writeUInt32LE(0,4),W.writeUInt16LE(q,b.ENDSUB),W.writeUInt16LE(Q,b.ENDTOT),W.writeUInt32LE(Y,b.ENDSIZ),W.writeUInt32LE(X,b.ENDOFF),W.writeUInt16LE(J,b.ENDCOM),W.fill(" ",b.ENDHDR),W},toJSON:function(){let W=function(K,$){let L=K.toString(16).toUpperCase();while(L.length<$)L="0"+L;return"0x"+L};return{diskEntries:q,totalEntries:Q,size:Y+" bytes",offset:W(X,4),commentLength:J}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var tq=O((cY)=>{cY.EntryHeader=t0();cY.MainHeader=e0()});var QQ=O((ZJ,qQ)=>{qQ.exports=function(q){var Q=f("zlib"),Y={chunkSize:(parseInt(q.length/1024)+1)*1024};return{deflate:function(){return Q.deflateRawSync(q,Y)},deflateAsync:function(X){var J=Q.createDeflateRaw(Y),W=[],K=0;J.on("data",function($){W.push($),K+=$.length}),J.on("end",function(){var $=Buffer.alloc(K),L=0;$.fill(0);for(var B=0;B<W.length;B++){var E=W[B];E.copy($,L),L+=E.length}X&&X($)}),J.end(q)}}}});var XQ=O((PJ,YQ)=>{var dY=+(process.versions?process.versions.node:"").split(".")[0]||0;YQ.exports=function(q,Q){var Y=f("zlib");let X=dY>=15&&Q>0?{maxOutputLength:Q}:{};return{inflate:function(){return Y.inflateRawSync(q,X)},inflateAsync:function(J){var W=Y.createInflateRaw(X),K=[],$=0;W.on("data",function(L){K.push(L),$+=L.length}),W.on("end",function(){var L=Buffer.alloc($),B=0;L.fill(0);for(var E=0;E<K.length;E++){var w=K[E];w.copy(L,B),B+=w.length}J&&J(L)}),W.end(q)}}}});var $Q=O((OJ,KQ)=>{var{randomFillSync:JQ}=f("crypto"),oY=Oq(),rY=new Uint32Array(256).map((q,Q)=>{for(let Y=0;Y<8;Y++)if((Q&1)!==0)Q=Q>>>1^3988292384;else Q>>>=1;return Q>>>0}),GQ=(q,Q)=>Math.imul(q,Q)>>>0,WQ=(q,Q)=>{return rY[(q^Q)&255]^q>>>8},wq=()=>{if(typeof JQ==="function")return JQ(Buffer.alloc(12));else return wq.node()};wq.node=()=>{let q=Buffer.alloc(12),Q=q.length;for(let Y=0;Y<Q;Y++)q[Y]=Math.random()*256&255;return q};var bq={genSalt:wq};function Cq(q){let Q=Buffer.isBuffer(q)?q:Buffer.from(q);this.keys=new Uint32Array([305419896,591751049,878082192]);for(let Y=0;Y<Q.length;Y++)this.updateKeys(Q[Y])}Cq.prototype.updateKeys=function(q){let Q=this.keys;return Q[0]=WQ(Q[0],q),Q[1]+=Q[0]&255,Q[1]=GQ(Q[1],134775813)+1,Q[2]=WQ(Q[2],Q[1]>>>24),q};Cq.prototype.next=function(){let q=(this.keys[2]|2)>>>0;return GQ(q,q^1)>>8&255};function iY(q){let Q=new Cq(q);return function(Y){let X=Buffer.alloc(Y.length),J=0;for(let W of Y)X[J++]=Q.updateKeys(W^Q.next());return X}}function nY(q){let Q=new Cq(q);return function(Y,X,J=0){if(!X)X=Buffer.alloc(Y.length);for(let W of Y){let K=Q.next();X[J++]=W^K,Q.updateKeys(W)}return X}}function sY(q,Q,Y){if(!q||!Buffer.isBuffer(q)||q.length<12)return Buffer.alloc(0);let X=iY(Y),J=X(q.slice(0,12)),W=(Q.flags&8)===8?Q.timeHighByte:Q.crc>>>24;if(J[11]!==W)throw oY.WRONG_PASSWORD();return X(q.slice(12))}function tY(q){if(Buffer.isBuffer(q)&&q.length>=12)bq.genSalt=function(){return q.slice(0,12)};else if(q==="node")bq.genSalt=wq.node;else bq.genSalt=wq}function aY(q,Q,Y,X=!1){if(q==null)q=Buffer.alloc(0);if(!Buffer.isBuffer(q))q=Buffer.from(q.toString());let J=nY(Y),W=bq.genSalt();if(W[11]=Q.crc>>>24&255,X)W[10]=Q.crc>>>16&255;let K=Buffer.alloc(q.length+12);return J(W,K),J(q,K,12)}KQ.exports={decrypt:sY,encrypt:aY,_salter:tY}});var VQ=O((eY)=>{eY.Deflater=QQ();eY.Inflater=XQ();eY.ZipCrypto=$Q()});var eq=O((CJ,LQ)=>{var F=Jq(),X8=tq(),v=F.Constants,aq=VQ();LQ.exports=function(q,Q){var Y=new X8.EntryHeader,X=Buffer.alloc(0),J=Buffer.alloc(0),W=!1,K=null,$=Buffer.alloc(0),L=Buffer.alloc(0),B=!0;let E=q,w=typeof E.decoder==="object"?E.decoder:F.decoder;B=w.hasOwnProperty("efs")?w.efs:!1;function M(){if(!Q||!(Q instanceof Uint8Array))return Buffer.alloc(0);return L=Y.loadLocalHeaderFromBinary(Q),Q.slice(Y.realDataOffset,Y.realDataOffset+Y.compressedSize)}function V(G){if(!Y.flags_desc){if(F.crc32(G)!==Y.localHeader.crc)return!1}else{let I={},z=Y.realDataOffset+Y.compressedSize;if(Q.readUInt32LE(z)==v.LOCSIG||Q.readUInt32LE(z)==v.CENSIG)throw F.Errors.DESCRIPTOR_NOT_EXIST();if(Q.readUInt32LE(z)==v.EXTSIG)I.crc=Q.readUInt32LE(z+v.EXTCRC),I.compressedSize=Q.readUInt32LE(z+v.EXTSIZ),I.size=Q.readUInt32LE(z+v.EXTLEN);else if(Q.readUInt16LE(z+12)===19280)I.crc=Q.readUInt32LE(z+v.EXTCRC-4),I.compressedSize=Q.readUInt32LE(z+v.EXTSIZ-4),I.size=Q.readUInt32LE(z+v.EXTLEN-4);else throw F.Errors.DESCRIPTOR_UNKNOWN();if(I.compressedSize!==Y.compressedSize||I.size!==Y.size||I.crc!==Y.crc)throw F.Errors.DESCRIPTOR_FAULTY();if(F.crc32(G)!==I.crc)return!1}return!0}function R(G,I,z){if(typeof I>"u"&&typeof G==="string")z=G,G=void 0;if(W){if(G&&I)I(Buffer.alloc(0),F.Errors.DIRECTORY_CONTENT_ERROR());return Buffer.alloc(0)}var S=M();if(S.length===0){if(G&&I)I(S);return S}if(Y.encrypted){if(typeof z!=="string"&&!Buffer.isBuffer(z))throw F.Errors.INVALID_PASS_PARAM();S=aq.ZipCrypto.decrypt(S,Y,z)}var D=Buffer.alloc(Y.size);switch(Y.method){case F.Constants.STORED:if(S.copy(D),!V(D)){if(G&&I)I(D,F.Errors.BAD_CRC());throw F.Errors.BAD_CRC()}else{if(G&&I)I(D);return D}case F.Constants.DEFLATED:var Z=new aq.Inflater(S,Y.size);if(!G){if(Z.inflate(D).copy(D,0),!V(D))throw F.Errors.BAD_CRC(`"${w.decode(X)}"`);return D}else Z.inflateAsync(function(T){if(T.copy(T,0),I)if(!V(T))I(T,F.Errors.BAD_CRC());else I(T)});break;default:if(G&&I)I(Buffer.alloc(0),F.Errors.UNKNOWN_METHOD());throw F.Errors.UNKNOWN_METHOD()}}function H(G,I){if((!K||!K.length)&&Buffer.isBuffer(Q)){if(G&&I)I(M());return M()}if(K.length&&!W){var z;switch(Y.method){case F.Constants.STORED:if(Y.compressedSize=Y.size,z=Buffer.alloc(K.length),K.copy(z),G&&I)I(z);return z;default:case F.Constants.DEFLATED:var S=new aq.Deflater(K);if(!G){var D=S.deflate();return Y.compressedSize=D.length,D}else S.deflateAsync(function(Z){z=Buffer.alloc(Z.length),Y.compressedSize=Z.length,Z.copy(z),I&&I(z)});S=null;break}}else if(G&&I)I(Buffer.alloc(0));else return Buffer.alloc(0)}function A(G,I){return(G.readUInt32LE(I+4)<<4)+G.readUInt32LE(I)}function j(G){try{var I=0,z,S,D;while(I+4<G.length)if(z=G.readUInt16LE(I),I+=2,S=G.readUInt16LE(I),I+=2,D=G.slice(I,I+S),I+=S,v.ID_ZIP64===z)U(D)}catch(Z){throw F.Errors.EXTRA_FIELD_PARSE_ERROR()}}function U(G){var I,z,S,D;if(G.length>=v.EF_ZIP64_SCOMP){if(I=A(G,v.EF_ZIP64_SUNCOMP),Y.size===v.EF_ZIP64_OR_32)Y.size=I}if(G.length>=v.EF_ZIP64_RHO){if(z=A(G,v.EF_ZIP64_SCOMP),Y.compressedSize===v.EF_ZIP64_OR_32)Y.compressedSize=z}if(G.length>=v.EF_ZIP64_DSN){if(S=A(G,v.EF_ZIP64_RHO),Y.offset===v.EF_ZIP64_OR_32)Y.offset=S}if(G.length>=v.EF_ZIP64_DSN+4){if(D=G.readUInt32LE(v.EF_ZIP64_DSN),Y.diskNumStart===v.EF_ZIP64_OR_16)Y.diskNumStart=D}}return{get entryName(){return w.decode(X)},get rawEntryName(){return X},set entryName(G){X=F.toBuffer(G,w.encode);var I=X[X.length-1];W=I===47||I===92,Y.fileNameLength=X.length},get efs(){if(typeof B==="function")return B(this.entryName);else return B},get extra(){return $},set extra(G){$=G,Y.extraLength=G.length,j(G)},get comment(){return w.decode(J)},set comment(G){if(J=F.toBuffer(G,w.encode),Y.commentLength=J.length,J.length>65535)throw F.Errors.COMMENT_TOO_LONG()},get name(){var G=w.decode(X);return W?G.substr(G.length-1).split("/").pop():G.split("/").pop()},get isDirectory(){return W},getCompressedData:function(){return H(!1,null)},getCompressedDataAsync:function(G){H(!0,G)},setData:function(G){if(K=F.toBuffer(G,F.decoder.encode),!W&&K.length)Y.size=K.length,Y.method=F.Constants.DEFLATED,Y.crc=F.crc32(G),Y.changed=!0;else Y.method=F.Constants.STORED},getData:function(G){if(Y.changed)return K;else return R(!1,null,G)},getDataAsync:function(G,I){if(Y.changed)G(K);else R(!0,G,I)},set attr(G){Y.attr=G},get attr(){return Y.attr},set header(G){Y.loadFromBinary(G)},get header(){return Y},packCentralHeader:function(){Y.flags_efs=this.efs,Y.extraLength=$.length;var G=Y.centralHeaderToBinary(),I=F.Constants.CENHDR;return X.copy(G,I),I+=X.length,$.copy(G,I),I+=Y.extraLength,J.copy(G,I),G},packLocalHeader:function(){let G=0;Y.flags_efs=this.efs,Y.extraLocalLength=L.length;let I=Y.localHeaderToBinary(),z=Buffer.alloc(I.length+X.length+Y.extraLocalLength);return I.copy(z,G),G+=I.length,X.copy(z,G),G+=X.length,L.copy(z,G),G+=L.length,z},toJSON:function(){let G=function(I){return"<"+(I&&I.length+" bytes buffer"||"null")+">"};return{entryName:this.entryName,name:this.name,comment:this.comment,isDirectory:this.isDirectory,header:Y.toJSON(),compressedData:G(Q),data:G(K)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var AQ=O((xJ,RQ)=>{var BQ=eq(),J8=tq(),u=Jq();RQ.exports=function(q,Q){var Y=[],X={},J=Buffer.alloc(0),W=new J8.MainHeader,K=!1,$=null;let L=new Set,B=Q,{noSort:E,decoder:w}=B;if(q)R(B.readEntries);else K=!0;function M(){let A=new Set;for(let j of Object.keys(X)){let U=j.split("/");if(U.pop(),!U.length)continue;for(let G=0;G<U.length;G++){let I=U.slice(0,G+1).join("/")+"/";A.add(I)}}for(let j of A)if(!(j in X)){let U=new BQ(B);U.entryName=j,U.attr=16,U.temporary=!0,Y.push(U),X[U.entryName]=U,L.add(U)}}function V(){if(K=!0,X={},W.diskEntries>(q.length-W.offset)/u.Constants.CENHDR)throw u.Errors.DISK_ENTRY_TOO_LARGE();Y=Array(W.diskEntries);var A=W.offset;for(var j=0;j<Y.length;j++){var U=A,G=new BQ(B,q);if(G.header=q.slice(U,U+=u.Constants.CENHDR),G.entryName=q.slice(U,U+=G.header.fileNameLength),G.header.extraLength)G.extra=q.slice(U,U+=G.header.extraLength);if(G.header.commentLength)G.comment=q.slice(U,U+G.header.commentLength);A+=G.header.centralHeaderSize,Y[j]=G,X[G.entryName]=G}L.clear(),M()}function R(A){var j=q.length-u.Constants.ENDHDR,U=Math.max(0,j-65535),G=U,I=q.length,z=-1,S=0;if(typeof B.trailingSpace==="boolean"?B.trailingSpace:!1)U=0;for(j;j>=G;j--){if(q[j]!==80)continue;if(q.readUInt32LE(j)===u.Constants.ENDSIG){z=j,S=j,I=j+u.Constants.ENDHDR,G=j-u.Constants.END64HDR;continue}if(q.readUInt32LE(j)===u.Constants.END64SIG){G=U;continue}if(q.readUInt32LE(j)===u.Constants.ZIP64SIG){z=j,I=j+u.readBigUInt64LE(q,j+u.Constants.ZIP64SIZE)+u.Constants.ZIP64LEAD;break}}if(z==-1)throw u.Errors.INVALID_FORMAT();if(W.loadFromBinary(q.slice(z,I)),W.commentLength)J=q.slice(S+u.Constants.ENDHDR);if(A)V()}function H(){if(Y.length>1&&!E)Y.sort((A,j)=>A.entryName.toLowerCase().localeCompare(j.entryName.toLowerCase()))}return{get entries(){if(!K)V();return Y.filter((A)=>!L.has(A))},get comment(){return w.decode(J)},set comment(A){J=u.toBuffer(A,w.encode),W.commentLength=J.length},getEntryCount:function(){if(!K)return W.diskEntries;return Y.length},forEach:function(A){this.entries.forEach(A)},getEntry:function(A){if(!K)V();return X[A]||null},setEntry:function(A){if(!K)V();Y.push(A),X[A.entryName]=A,W.totalEntries=Y.length},deleteFile:function(A,j=!0){if(!K)V();let U=X[A];this.getEntryChildren(U,j).map((I)=>I.entryName).forEach(this.deleteEntry)},deleteEntry:function(A){if(!K)V();let j=X[A],U=Y.indexOf(j);if(U>=0)Y.splice(U,1),delete X[A],W.totalEntries=Y.length},getEntryChildren:function(A,j=!0){if(!K)V();if(typeof A==="object")if(A.isDirectory&&j){let U=[],G=A.entryName;for(let I of Y)if(I.entryName.startsWith(G))U.push(I);return U}else return[A];return[]},getChildCount:function(A){if(A&&A.isDirectory){let j=this.getEntryChildren(A);return j.includes(A)?j.length-1:j.length}return 0},compressToBuffer:function(){if(!K)V();H();let A=[],j=[],U=0,G=0;W.size=0,W.offset=0;let I=0;for(let D of this.entries){let Z=D.getCompressedData();D.header.offset=G;let T=D.packLocalHeader(),y=T.length+Z.length;G+=y,A.push(T),A.push(Z);let P=D.packCentralHeader();j.push(P),W.size+=P.length,U+=y+P.length,I++}U+=W.mainHeaderSize,W.offset=G,W.totalEntries=I,G=0;let z=Buffer.alloc(U);for(let D of A)D.copy(z,G),G+=D.length;for(let D of j)D.copy(z,G),G+=D.length;let S=W.toBinary();if(J)J.copy(S,u.Constants.ENDHDR);return S.copy(z,G),q=z,K=!1,z},toAsyncBuffer:function(A,j,U,G){try{if(!K)V();H();let I=[],z=[],S=0,D=0,Z=0;W.size=0,W.offset=0;let T=function(y){if(y.length>0){let P=y.shift(),d=P.entryName+P.extra.toString();if(U)U(d);P.getCompressedDataAsync(function(p){if(G)G(d);P.header.offset=D;let Dq=P.packLocalHeader(),W0=Dq.length+p.length;D+=W0,I.push(Dq),I.push(p);let _q=P.packCentralHeader();z.push(_q),W.size+=_q.length,S+=W0+_q.length,Z++,T(y)})}else{S+=W.mainHeaderSize,W.offset=D,W.totalEntries=Z,D=0;let P=Buffer.alloc(S);I.forEach(function(p){p.copy(P,D),D+=p.length}),z.forEach(function(p){p.copy(P,D),D+=p.length});let d=W.toBinary();if(J)J.copy(d,u.Constants.ENDHDR);d.copy(P,D),q=P,K=!1,A(P)}};T(Array.from(this.entries))}catch(I){j(I)}}}}});var zQ=O((_J,HQ)=>{var C=Jq(),h=f("path"),W8=eq(),G8=AQ(),t=(...q)=>C.findLast(q,(Q)=>typeof Q==="boolean"),IQ=(...q)=>C.findLast(q,(Q)=>typeof Q==="string"),K8=(...q)=>C.findLast(q,(Q)=>typeof Q==="function"),$8={noSort:!1,readEntries:!1,method:C.Constants.NONE,fs:null};HQ.exports=function(q,Q){let Y=null,X=Object.assign(Object.create(null),$8);if(q&&typeof q==="object"){if(!(q instanceof Uint8Array)){if(Object.assign(X,q),q=X.input?X.input:void 0,X.input)delete X.input}if(Buffer.isBuffer(q))Y=q,X.method=C.Constants.BUFFER,q=void 0}Object.assign(X,Q);let J=new C(X);if(typeof X.decoder!=="object"||typeof X.decoder.encode!=="function"||typeof X.decoder.decode!=="function")X.decoder=C.decoder;if(q&&typeof q==="string")if(J.fs.existsSync(q))X.method=C.Constants.FILE,X.filename=q,Y=J.fs.readFileSync(q);else throw C.Errors.INVALID_FILENAME();let W=new G8(Y,X),{canonical:K,sanitize:$,zipnamefix:L}=C;function B(V){if(V&&W){var R;if(typeof V==="string")R=W.getEntry(h.posix.normalize(V));if(typeof V==="object"&&typeof V.entryName<"u"&&typeof V.header<"u")R=W.getEntry(V.entryName);if(R)return R}return null}function E(V){let{join:R,normalize:H,sep:A}=h.posix;return R(".",H(A+V.split("\\").join(A)+A))}function w(V){if(V instanceof RegExp)return function(R){return function(H){return R.test(H)}}(V);else if(typeof V!=="function")return()=>!0;return V}let M=(V,R)=>{let H=R.slice(-1);return H=H===J.sep?J.sep:"",h.relative(V,R)+H};return{readFile:function(V,R){var H=B(V);return H&&H.getData(R)||null},childCount:function(V){let R=B(V);if(R)return W.getChildCount(R)},readFileAsync:function(V,R){var H=B(V);if(H)H.getDataAsync(R);else R(null,"getEntry failed for:"+V)},readAsText:function(V,R){var H=B(V);if(H){var A=H.getData();if(A&&A.length)return A.toString(R||"utf8")}return""},readAsTextAsync:function(V,R,H){var A=B(V);if(A)A.getDataAsync(function(j,U){if(U){R(j,U);return}if(j&&j.length)R(j.toString(H||"utf8"));else R("")});else R("")},deleteFile:function(V,R=!0){var H=B(V);if(H)W.deleteFile(H.entryName,R)},deleteEntry:function(V){var R=B(V);if(R)W.deleteEntry(R.entryName)},addZipComment:function(V){W.comment=V},getZipComment:function(){return W.comment||""},addZipEntryComment:function(V,R){var H=B(V);if(H)H.comment=R},getZipEntryComment:function(V){var R=B(V);if(R)return R.comment||"";return""},updateFile:function(V,R){var H=B(V);if(H)H.setData(R)},addLocalFile:function(V,R,H,A){if(J.fs.existsSync(V)){R=R?E(R):"";let j=h.win32.basename(h.win32.normalize(V));R+=H?H:j;let U=J.fs.statSync(V),G=U.isFile()?J.fs.readFileSync(V):Buffer.alloc(0);if(U.isDirectory())R+=J.sep;this.addFile(R,G,A,U)}else throw C.Errors.FILE_NOT_FOUND(V)},addLocalFileAsync:function(V,R){V=typeof V==="object"?V:{localPath:V};let H=h.resolve(V.localPath),{comment:A}=V,{zipPath:j,zipName:U}=V,G=this;J.fs.stat(H,function(I,z){if(I)return R(I,!1);j=j?E(j):"";let S=h.win32.basename(h.win32.normalize(H));if(j+=U?U:S,z.isFile())J.fs.readFile(H,function(D,Z){if(D)return R(D,!1);return G.addFile(j,Z,A,z),setImmediate(R,void 0,!0)});else if(z.isDirectory())return j+=J.sep,G.addFile(j,Buffer.alloc(0),A,z),setImmediate(R,void 0,!0)})},addLocalFolder:function(V,R,H){if(H=w(H),R=R?E(R):"",V=h.normalize(V),J.fs.existsSync(V)){let A=J.findFiles(V),j=this;if(A.length)for(let U of A){let G=h.join(R,M(V,U));if(H(G))j.addLocalFile(U,h.dirname(G))}}else throw C.Errors.FILE_NOT_FOUND(V)},addLocalFolderAsync:function(V,R,H,A){A=w(A),H=H?E(H):"",V=h.normalize(V);var j=this;J.fs.open(V,"r",function(U){if(U&&U.code==="ENOENT")R(void 0,C.Errors.FILE_NOT_FOUND(V));else if(U)R(void 0,U);else{var G=J.findFiles(V),I=-1,z=function(){if(I+=1,I<G.length){var S=G[I],D=M(V,S).split("\\").join("/");if(D=D.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,""),A(D))J.fs.stat(S,function(Z,T){if(Z)R(void 0,Z);if(T.isFile())J.fs.readFile(S,function(y,P){if(y)R(void 0,y);else j.addFile(H+D,P,"",T),z()});else j.addFile(H+D+"/",Buffer.alloc(0),"",T),z()});else process.nextTick(()=>{z()})}else R(!0,void 0)};z()}})},addLocalFolderAsync2:function(V,R){let H=this;V=typeof V==="object"?V:{localPath:V},localPath=h.resolve(E(V.localPath));let{zipPath:A,filter:j,namefix:U}=V;if(j instanceof RegExp)j=function(z){return function(S){return z.test(S)}}(j);else if(typeof j!=="function")j=function(){return!0};if(A=A?E(A):"",U=="latin1")U=(z)=>z.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,"");if(typeof U!=="function")U=(z)=>z;let G=(z)=>h.join(A,U(M(localPath,z))),I=(z)=>h.win32.basename(h.win32.normalize(U(z)));J.fs.open(localPath,"r",function(z){if(z&&z.code==="ENOENT")R(void 0,C.Errors.FILE_NOT_FOUND(localPath));else if(z)R(void 0,z);else J.findFilesAsync(localPath,function(S,D){if(S)return R(S);if(D=D.filter((Z)=>j(G(Z))),!D.length)R(void 0,!1);setImmediate(D.reverse().reduce(function(Z,T){return function(y,P){if(y||P===!1)return setImmediate(Z,y,!1);H.addLocalFileAsync({localPath:T,zipPath:h.dirname(G(T)),zipName:I(T)},Z)}},R))})})},addLocalFolderPromise:function(V,R){return new Promise((H,A)=>{this.addLocalFolderAsync2(Object.assign({localPath:V},R),(j,U)=>{if(j)A(j);if(U)H(this)})})},addFile:function(V,R,H,A){V=L(V);let j=B(V),U=j!=null;if(!U)j=new W8(X),j.entryName=V;j.comment=H||"";let G=typeof A==="object"&&A instanceof J.fs.Stats;if(G)j.header.time=A.mtime;var I=j.isDirectory?16:0;let z=j.isDirectory?16384:32768;if(G)z|=4095&A.mode;else if(typeof A==="number")z|=4095&A;else z|=j.isDirectory?493:420;if(I=(I|z<<16)>>>0,j.attr=I,j.setData(R),!U)W.setEntry(j);return j},getEntries:function(V){return W.password=V,W?W.entries:[]},getEntry:function(V){return B(V)},getEntryCount:function(){return W.getEntryCount()},forEach:function(V){return W.forEach(V)},extractEntryTo:function(V,R,H,A,j,U){A=t(!1,A),j=t(!1,j),H=t(!0,H),U=IQ(j,U);var G=B(V);if(!G)throw C.Errors.NO_ENTRY();var I=K(G.entryName),z=$(R,U&&!G.isDirectory?U:H?I:h.basename(I));if(G.isDirectory){var S=W.getEntryChildren(G);return S.forEach(function(T){if(T.isDirectory)return;var y=T.getData();if(!y)throw C.Errors.CANT_EXTRACT_FILE();var P=K(T.entryName),d=$(R,H?P:h.basename(P));let p=j?T.header.fileAttr:void 0;J.writeFileTo(d,y,A,p)}),!0}var D=G.getData(W.password);if(!D)throw C.Errors.CANT_EXTRACT_FILE();if(J.fs.existsSync(z)&&!A)throw C.Errors.CANT_OVERRIDE();let Z=j?V.header.fileAttr:void 0;return J.writeFileTo(z,D,A,Z),!0},test:function(V){if(!W)return!1;for(var R in W.entries)try{if(R.isDirectory)continue;var H=W.entries[R].getData(V);if(!H)return!1}catch(A){return!1}return!0},extractAllTo:function(V,R,H,A){if(H=t(!1,H),A=IQ(H,A),R=t(!1,R),!W)throw C.Errors.NO_ZIP();W.entries.forEach(function(j){var U=$(V,K(j.entryName));if(j.isDirectory){J.makeDir(U);return}var G=j.getData(A);if(!G)throw C.Errors.CANT_EXTRACT_FILE();let I=H?j.header.fileAttr:void 0;J.writeFileTo(U,G,R,I);try{J.fs.utimesSync(U,j.header.time,j.header.time)}catch(z){throw C.Errors.CANT_EXTRACT_FILE()}})},extractAllToAsync:function(V,R,H,A){if(A=K8(R,H,A),H=t(!1,H),R=t(!1,R),!A)return new Promise((z,S)=>{this.extractAllToAsync(V,R,H,function(D){if(D)S(D);else z(this)})});if(!W){A(C.Errors.NO_ZIP());return}V=h.resolve(V);let j=(z)=>$(V,h.normalize(K(z.entryName))),U=(z,S)=>Error(z+': "'+S+'"'),G=[],I=[];W.entries.forEach((z)=>{if(z.isDirectory)G.push(z);else I.push(z)});for(let z of G){let S=j(z),D=H?z.header.fileAttr:void 0;try{if(J.makeDir(S),D)J.fs.chmodSync(S,D);J.fs.utimesSync(S,z.header.time,z.header.time)}catch(Z){A(U("Unable to create folder",S))}}I.reverse().reduce(function(z,S){return function(D){if(D)z(D);else{let Z=h.normalize(K(S.entryName)),T=$(V,Z);S.getDataAsync(function(y,P){if(P)z(P);else if(!y)z(C.Errors.CANT_EXTRACT_FILE());else{let d=H?S.header.fileAttr:void 0;J.writeFileToAsync(T,y,R,d,function(p){if(!p)z(U("Unable to write file",T));J.fs.utimes(T,S.header.time,S.header.time,function(Dq){if(Dq)z(U("Unable to set times",T));else z()})})}})}}},A)()},writeZip:function(V,R){if(arguments.length===1){if(typeof V==="function")R=V,V=""}if(!V&&X.filename)V=X.filename;if(!V)return;var H=W.compressToBuffer();if(H){var A=J.writeFileTo(V,H,!0);if(typeof R==="function")R(!A?Error("failed"):null,"")}},writeZipPromise:function(V,R){let{overwrite:H,perm:A}=Object.assign({overwrite:!0},R);return new Promise((j,U)=>{if(!V&&X.filename)V=X.filename;if(!V)U("ADM-ZIP: ZIP File Name Missing");this.toBufferPromise().then((G)=>{let I=(z)=>z?j(z):U("ADM-ZIP: Wasn't able to write zip file");J.writeFileToAsync(V,G,H,A,I)},U)})},toBufferPromise:function(){return new Promise((V,R)=>{W.toAsyncBuffer(V,R)})},toBuffer:function(V,R,H,A){if(typeof V==="function")return W.toAsyncBuffer(V,R,H,A),null;return W.compressToBuffer()}}}});var N0=$q(w0(),1),{program:s,createCommand:g8,createArgument:y8,createOption:u8,CommanderError:f8,InvalidArgumentError:m8,InvalidOptionArgumentError:c8,Command:p8,Argument:l8,Option:d8,Help:o8}=N0.default;import{cp as j8,mkdir as Nq,writeFile as n,readFile as UQ,rm as Q0,readdir as U8}from"fs/promises";import{join as x,resolve as E8,relative as oJ,basename as w8}from"path";import{spawn as EQ}from"child_process";import{homedir as N8,tmpdir as D8}from"os";import{stat as M8}from"fs/promises";var cq={rust:{courseJson:{id:"{{id}}",name:"{{name}}",runner:{command:"cargo",args:["test","--quiet","--manifest-path","./content/{{id}}/Cargo.toml"],cwd:"."},content:{root:".",exercises:"content"},setup:{checks:[{name:"Rust Compiler",type:"command",command:"rustc --version"},{name:"Cargo Package Manager",type:"command",command:"cargo --version"}],guide:"SETUP.md"}},setupMd:`# \uD83E\uDD80 Rust Setup Guide
25
25
 
26
26
  To run the exercises in this course, you need to have **Rust** installed on your system.
27
27
 
@@ -84,11 +84,11 @@ func Greeting() string {
84
84
  func main() {
85
85
  fmt.Println(Greeting())
86
86
  }
87
- `,introFilename:"main.go"}};var i8=Object.freeze({status:"aborted"});function m(q,Q,Y){function X($,L){if(!$._zod)Object.defineProperty($,"_zod",{value:{def:L,constr:K,traits:new Set},enumerable:!1});if($._zod.traits.has(q))return;$._zod.traits.add(q),Q($,L);let B=K.prototype,U=Object.keys(B);for(let w=0;w<U.length;w++){let D=U[w];if(!(D in $))$[D]=B[D].bind($)}}let J=Y?.Parent??Object;class W extends J{}Object.defineProperty(W,"name",{value:q});function K($){var L;let B=Y?.Parent?new W:this;X(B,$),(L=B._zod).deferred??(L.deferred=[]);for(let U of B._zod.deferred)U();return B}return Object.defineProperty(K,"init",{value:X}),Object.defineProperty(K,Symbol.hasInstance,{value:($)=>{if(Y?.Parent&&$ instanceof Y.Parent)return!0;return $?._zod?.traits?.has(q)}}),Object.defineProperty(K,"name",{value:q}),K}var n8=Symbol("zod_brand");class r extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}var lq={};function a(q){if(q)Object.assign(lq,q);return lq}function M0(q,Q){if(typeof Q==="bigint")return Q.toString();return Q}function dq(q){return{get value(){{let Y=q();return Object.defineProperty(this,"value",{value:Y}),Y}throw Error("cached value already set")}}}var D0=Symbol("evaluating");function Lq(q,Q,Y){let X=void 0;Object.defineProperty(q,Q,{get(){if(X===D0)return;if(X===void 0)X=D0,X=Y();return X},set(J){Object.defineProperty(q,Q,{value:J})},configurable:!0})}var oq="captureStackTrace"in Error?Error.captureStackTrace:(...q)=>{};function S0(q){return typeof q==="object"&&q!==null&&!Array.isArray(q)}var RY=dq(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(q){return!1}});function rq(q,Q,Y){let X=new q._zod.constr(Q??q._zod.def);if(!Q||Y?.parent)X._zod.parent=q;return X}function Bq(q){let Q=q;if(!Q)return{};if(typeof Q==="string")return{error:()=>Q};if(Q?.message!==void 0){if(Q?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");Q.error=Q.message}if(delete Q.message,typeof Q.error==="string")return{...Q,error:()=>Q.error};return Q}function T0(q){return Object.keys(q).filter((Q)=>{return q[Q]._zod.optin==="optional"&&q[Q]._zod.optout==="optional"})}var s8={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Rq(q,Q=0){if(q.aborted===!0)return!0;for(let Y=Q;Y<q.issues.length;Y++)if(q.issues[Y]?.continue!==!0)return!0;return!1}function iq(q,Q){return Q.map((Y)=>{var X;return(X=Y).path??(X.path=[]),Y.path.unshift(q),Y})}function Sq(q){return typeof q==="string"?q:q?.message}function e(q,Q,Y){let X={...q,path:q.path??[]};if(!q.message){let J=Sq(q.inst?._zod.def?.error?.(q))??Sq(Q?.error?.(q))??Sq(Y.customError?.(q))??Sq(Y.localeError?.(q))??"Invalid input";X.message=J}if(delete X.inst,delete X.continue,!Q?.reportInput)delete X.input;return X}var F0=(q,Q)=>{q.name="$ZodError",Object.defineProperty(q,"_zod",{value:q._zod,enumerable:!1}),Object.defineProperty(q,"issues",{value:Q,enumerable:!1}),q.message=JSON.stringify(Q,M0,2),Object.defineProperty(q,"toString",{value:()=>q.message,enumerable:!1})},Z0=m("$ZodError",F0),Iq=m("$ZodError",F0,{Parent:Error});var IY=(q)=>(Q,Y,X,J)=>{let W=X?Object.assign(X,{async:!1}):{async:!1},K=Q._zod.run({value:Y,issues:[]},W);if(K instanceof Promise)throw new r;if(K.issues.length){let $=new(J?.Err??q)(K.issues.map((L)=>e(L,W,a())));throw oq($,J?.callee),$}return K.value},Tq=IY(Iq),HY=(q)=>async(Q,Y,X,J)=>{let W=X?Object.assign(X,{async:!0}):{async:!0},K=Q._zod.run({value:Y,issues:[]},W);if(K instanceof Promise)K=await K;if(K.issues.length){let $=new(J?.Err??q)(K.issues.map((L)=>e(L,W,a())));throw oq($,J?.callee),$}return K.value},Fq=HY(Iq),zY=(q)=>(Q,Y,X)=>{let J=X?{...X,async:!1}:{async:!1},W=Q._zod.run({value:Y,issues:[]},J);if(W instanceof Promise)throw new r;return W.issues.length?{success:!1,error:new(q??Z0)(W.issues.map((K)=>e(K,J,a())))}:{success:!0,data:W.value}},Hq=zY(Iq),jY=(q)=>async(Q,Y,X)=>{let J=X?Object.assign(X,{async:!0}):{async:!0},W=Q._zod.run({value:Y,issues:[]},J);if(W instanceof Promise)W=await W;return W.issues.length?{success:!1,error:new q(W.issues.map((K)=>e(K,J,a())))}:{success:!0,data:W.value}},zq=jY(Iq);var UY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",EY=new RegExp(`^${UY}$`);var P0=(q)=>{let Q=q?`[\\s\\S]{${q?.minimum??0},${q?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${Q}$`)};var b0={major:4,minor:3,patch:6};var jq=m("$ZodType",(q,Q)=>{var Y;q??(q={}),q._zod.def=Q,q._zod.bag=q._zod.bag||{},q._zod.version=b0;let X=[...q._zod.def.checks??[]];if(q._zod.traits.has("$ZodCheck"))X.unshift(q);for(let J of X)for(let W of J._zod.onattach)W(q);if(X.length===0)(Y=q._zod).deferred??(Y.deferred=[]),q._zod.deferred?.push(()=>{q._zod.run=q._zod.parse});else{let J=(K,$,L)=>{let B=Rq(K),U;for(let w of $){if(w._zod.def.when){if(!w._zod.def.when(K))continue}else if(B)continue;let D=K.issues.length,V=w._zod.check(K);if(V instanceof Promise&&L?.async===!1)throw new r;if(U||V instanceof Promise)U=(U??Promise.resolve()).then(async()=>{if(await V,K.issues.length===D)return;if(!B)B=Rq(K,D)});else{if(K.issues.length===D)continue;if(!B)B=Rq(K,D)}}if(U)return U.then(()=>{return K});return K},W=(K,$,L)=>{if(Rq(K))return K.aborted=!0,K;let B=J($,X,L);if(B instanceof Promise){if(L.async===!1)throw new r;return B.then((U)=>q._zod.parse(U,L))}return q._zod.parse(B,L)};q._zod.run=(K,$)=>{if($.skipChecks)return q._zod.parse(K,$);if($.direction==="backward"){let B=q._zod.parse({value:K.value,issues:[]},{...$,skipChecks:!0});if(B instanceof Promise)return B.then((U)=>{return W(U,K,$)});return W(B,K,$)}let L=q._zod.parse(K,$);if(L instanceof Promise){if($.async===!1)throw new r;return L.then((B)=>J(B,X,$))}return J(L,X,$)}}Lq(q,"~standard",()=>({validate:(J)=>{try{let W=Hq(q,J);return W.success?{value:W.data}:{issues:W.error?.issues}}catch(W){return zq(q,J).then((K)=>K.success?{value:K.data}:{issues:K.error?.issues})}},vendor:"zod",version:1}))}),x0=m("$ZodString",(q,Q)=>{jq.init(q,Q),q._zod.pattern=[...q?._zod.bag?.patterns??[]].pop()??P0(q._zod.bag),q._zod.parse=(Y,X)=>{if(Q.coerce)try{Y.value=String(Y.value)}catch(J){}if(typeof Y.value==="string")return Y;return Y.issues.push({expected:"string",code:"invalid_type",input:Y.value,inst:q}),Y}});function C0(q,Q,Y){if(q.issues.length)Q.issues.push(...iq(Y,q.issues));Q.value[Y]=q.value}var _0=m("$ZodArray",(q,Q)=>{jq.init(q,Q),q._zod.parse=(Y,X)=>{let J=Y.value;if(!Array.isArray(J))return Y.issues.push({expected:"array",code:"invalid_type",input:J,inst:q}),Y;Y.value=Array(J.length);let W=[];for(let K=0;K<J.length;K++){let $=J[K],L=Q.element._zod.run({value:$,issues:[]},X);if(L instanceof Promise)W.push(L.then((B)=>C0(B,Y,K)));else C0(L,Y,K)}if(W.length)return Promise.all(W).then(()=>Y);return Y}});function Zq(q,Q,Y,X,J){if(q.issues.length){if(J&&!(Y in X))return;Q.issues.push(...iq(Y,q.issues))}if(q.value===void 0){if(Y in X)Q.value[Y]=void 0}else Q.value[Y]=q.value}function NY(q){let Q=Object.keys(q.shape);for(let X of Q)if(!q.shape?.[X]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${X}": expected a Zod schema`);let Y=T0(q.shape);return{...q,keys:Q,keySet:new Set(Q),numKeys:Q.length,optionalKeys:new Set(Y)}}function DY(q,Q,Y,X,J,W){let K=[],$=J.keySet,L=J.catchall._zod,B=L.def.type,U=L.optout==="optional";for(let w in Q){if($.has(w))continue;if(B==="never"){K.push(w);continue}let D=L.run({value:Q[w],issues:[]},X);if(D instanceof Promise)q.push(D.then((V)=>Zq(V,Y,w,Q,U)));else Zq(D,Y,w,Q,U)}if(K.length)Y.issues.push({code:"unrecognized_keys",keys:K,input:Q,inst:W});if(!q.length)return Y;return Promise.all(q).then(()=>{return Y})}var k0=m("$ZodObject",(q,Q)=>{if(jq.init(q,Q),!Object.getOwnPropertyDescriptor(Q,"shape")?.get){let $=Q.shape;Object.defineProperty(Q,"shape",{get:()=>{let L={...$};return Object.defineProperty(Q,"shape",{value:L}),L}})}let X=dq(()=>NY(Q));Lq(q._zod,"propValues",()=>{let $=Q.shape,L={};for(let B in $){let U=$[B]._zod;if(U.values){L[B]??(L[B]=new Set);for(let w of U.values)L[B].add(w)}}return L});let J=S0,W=Q.catchall,K;q._zod.parse=($,L)=>{K??(K=X.value);let B=$.value;if(!J(B))return $.issues.push({expected:"object",code:"invalid_type",input:B,inst:q}),$;$.value={};let U=[],w=K.shape;for(let D of K.keys){let V=w[D],R=V._zod.optout==="optional",H=V._zod.run({value:B[D],issues:[]},L);if(H instanceof Promise)U.push(H.then((A)=>Zq(A,$,D,B,R)));else Zq(H,$,D,B,R)}if(!W)return U.length?Promise.all(U).then(()=>$):$;return DY(U,B,$,L,X.value,q)}});function v0(q,Q){return new q({type:"string",...Bq(Q)})}var nq=m("ZodMiniType",(q,Q)=>{if(!q._zod)throw Error("Uninitialized schema in ZodMiniType.");jq.init(q,Q),q.def=Q,q.type=Q.type,q.parse=(Y,X)=>Tq(q,Y,X,{callee:q.parse}),q.safeParse=(Y,X)=>Hq(q,Y,X),q.parseAsync=async(Y,X)=>Fq(q,Y,X,{callee:q.parseAsync}),q.safeParseAsync=async(Y,X)=>zq(q,Y,X),q.check=(...Y)=>{return q.clone({...Q,checks:[...Q.checks??[],...Y.map((X)=>typeof X==="function"?{_zod:{check:X,def:{check:"custom"},onattach:[]}}:X)]},{parent:!0})},q.with=q.check,q.clone=(Y,X)=>rq(q,Y,X),q.brand=()=>q,q.register=(Y,X)=>{return Y.add(q,X),q},q.apply=(Y)=>Y(q)}),TY=m("ZodMiniString",(q,Q)=>{x0.init(q,Q),nq.init(q,Q)});function l(q){return v0(TY,q)}var FY=m("ZodMiniArray",(q,Q)=>{_0.init(q,Q),nq.init(q,Q)});function sq(q,Q){return new FY({type:"array",element:q,...Bq(Q)})}var ZY=m("ZodMiniObject",(q,Q)=>{k0.init(q,Q),nq.init(q,Q),Lq(q,"shape",()=>Q.shape)});function qq(q,Q){let Y={type:"object",shape:q??{},...Bq(Q)};return new ZY(Y)}import{cp as h0,exists as Qq,mkdir as PY,readFile as OY,rm as bY}from"fs/promises";import{join as Yq}from"path";import{spawn as CY}from"child_process";import{homedir as xY}from"os";import{resolve as vY}from"path";var Uq="course.json",_Y=()=>process.env.PROGY_API_URL||"https://progy.francy.workers.dev",kY=qq({id:l(),name:l(),runner:qq({command:l(),args:sq(l()),cwd:l()}),content:qq({root:l(),exercises:l()}),setup:qq({checks:sq(qq({name:l(),type:l(),command:l()})),guide:l()})});class Pq{static async resolveSource(q){if(q.startsWith("http://")||q.startsWith("https://")||q.startsWith("git@")){let Q=q.split("#"),Y=Q[0],X=Q[1];return{url:Y,branch:X}}if(await Qq(q))return{url:vY(q)};console.log(`[INFO] Resolving alias '${q}'...`);try{let Q=`${_Y()}/api/registry`,Y=await fetch(Q);if(!Y.ok)throw Error(`Failed to fetch registry (Status: ${Y.status})`);let J=(await Y.json()).courses[q];if(J)return{url:J.repo,branch:J.branch,path:J.path}}catch(Q){console.warn(`[WARN] Registry lookup failed: ${Q.message||Q}`)}throw Error(`Could not resolve course source for '${q}'`)}static async validateCourse(q){let Q=Yq(q,Uq);if(!await Qq(Q))throw Error(`Missing ${Uq} in course directory.`);let Y=await OY(Q,"utf-8"),X;try{X=JSON.parse(Y)}catch(L){throw Error(`Invalid JSON in ${Uq}`)}if("repo"in X)throw Error(`Security Error: Pre-configured 'repo' field in ${Uq} is forbidden. Source is potentially untrusted.`);let J=kY.safeParse(X);if(!J.success){let L=J.error.issues.map((B)=>`- ${B.path.join(".")}: ${B.message}`).join(`
87
+ `,introFilename:"main.go"}};var n8=Object.freeze({status:"aborted"});function c(q,Q,Y){function X($,L){if(!$._zod)Object.defineProperty($,"_zod",{value:{def:L,constr:K,traits:new Set},enumerable:!1});if($._zod.traits.has(q))return;$._zod.traits.add(q),Q($,L);let B=K.prototype,E=Object.keys(B);for(let w=0;w<E.length;w++){let M=E[w];if(!(M in $))$[M]=B[M].bind($)}}let J=Y?.Parent??Object;class W extends J{}Object.defineProperty(W,"name",{value:q});function K($){var L;let B=Y?.Parent?new W:this;X(B,$),(L=B._zod).deferred??(L.deferred=[]);for(let E of B._zod.deferred)E();return B}return Object.defineProperty(K,"init",{value:X}),Object.defineProperty(K,Symbol.hasInstance,{value:($)=>{if(Y?.Parent&&$ instanceof Y.Parent)return!0;return $?._zod?.traits?.has(q)}}),Object.defineProperty(K,"name",{value:q}),K}var s8=Symbol("zod_brand");class r extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}var pq={};function a(q){if(q)Object.assign(pq,q);return pq}function S0(q,Q){if(typeof Q==="bigint")return Q.toString();return Q}function lq(q){return{get value(){{let Y=q();return Object.defineProperty(this,"value",{value:Y}),Y}throw Error("cached value already set")}}}var M0=Symbol("evaluating");function Lq(q,Q,Y){let X=void 0;Object.defineProperty(q,Q,{get(){if(X===M0)return;if(X===void 0)X=M0,X=Y();return X},set(J){Object.defineProperty(q,Q,{value:J})},configurable:!0})}var dq="captureStackTrace"in Error?Error.captureStackTrace:(...q)=>{};function T0(q){return typeof q==="object"&&q!==null&&!Array.isArray(q)}var AY=lq(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(q){return!1}});function oq(q,Q,Y){let X=new q._zod.constr(Q??q._zod.def);if(!Q||Y?.parent)X._zod.parent=q;return X}function Bq(q){let Q=q;if(!Q)return{};if(typeof Q==="string")return{error:()=>Q};if(Q?.message!==void 0){if(Q?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");Q.error=Q.message}if(delete Q.message,typeof Q.error==="string")return{...Q,error:()=>Q.error};return Q}function F0(q){return Object.keys(q).filter((Q)=>{return q[Q]._zod.optin==="optional"&&q[Q]._zod.optout==="optional"})}var t8={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Rq(q,Q=0){if(q.aborted===!0)return!0;for(let Y=Q;Y<q.issues.length;Y++)if(q.issues[Y]?.continue!==!0)return!0;return!1}function rq(q,Q){return Q.map((Y)=>{var X;return(X=Y).path??(X.path=[]),Y.path.unshift(q),Y})}function Sq(q){return typeof q==="string"?q:q?.message}function e(q,Q,Y){let X={...q,path:q.path??[]};if(!q.message){let J=Sq(q.inst?._zod.def?.error?.(q))??Sq(Q?.error?.(q))??Sq(Y.customError?.(q))??Sq(Y.localeError?.(q))??"Invalid input";X.message=J}if(delete X.inst,delete X.continue,!Q?.reportInput)delete X.input;return X}var Z0=(q,Q)=>{q.name="$ZodError",Object.defineProperty(q,"_zod",{value:q._zod,enumerable:!1}),Object.defineProperty(q,"issues",{value:Q,enumerable:!1}),q.message=JSON.stringify(Q,S0,2),Object.defineProperty(q,"toString",{value:()=>q.message,enumerable:!1})},P0=c("$ZodError",Z0),Iq=c("$ZodError",Z0,{Parent:Error});var HY=(q)=>(Q,Y,X,J)=>{let W=X?Object.assign(X,{async:!1}):{async:!1},K=Q._zod.run({value:Y,issues:[]},W);if(K instanceof Promise)throw new r;if(K.issues.length){let $=new(J?.Err??q)(K.issues.map((L)=>e(L,W,a())));throw dq($,J?.callee),$}return K.value},Tq=HY(Iq),zY=(q)=>async(Q,Y,X,J)=>{let W=X?Object.assign(X,{async:!0}):{async:!0},K=Q._zod.run({value:Y,issues:[]},W);if(K instanceof Promise)K=await K;if(K.issues.length){let $=new(J?.Err??q)(K.issues.map((L)=>e(L,W,a())));throw dq($,J?.callee),$}return K.value},Fq=zY(Iq),jY=(q)=>(Q,Y,X)=>{let J=X?{...X,async:!1}:{async:!1},W=Q._zod.run({value:Y,issues:[]},J);if(W instanceof Promise)throw new r;return W.issues.length?{success:!1,error:new(q??P0)(W.issues.map((K)=>e(K,J,a())))}:{success:!0,data:W.value}},Hq=jY(Iq),UY=(q)=>async(Q,Y,X)=>{let J=X?Object.assign(X,{async:!0}):{async:!0},W=Q._zod.run({value:Y,issues:[]},J);if(W instanceof Promise)W=await W;return W.issues.length?{success:!1,error:new q(W.issues.map((K)=>e(K,J,a())))}:{success:!0,data:W.value}},zq=UY(Iq);var EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",wY=new RegExp(`^${EY}$`);var O0=(q)=>{let Q=q?`[\\s\\S]{${q?.minimum??0},${q?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${Q}$`)};var C0={major:4,minor:3,patch:6};var jq=c("$ZodType",(q,Q)=>{var Y;q??(q={}),q._zod.def=Q,q._zod.bag=q._zod.bag||{},q._zod.version=C0;let X=[...q._zod.def.checks??[]];if(q._zod.traits.has("$ZodCheck"))X.unshift(q);for(let J of X)for(let W of J._zod.onattach)W(q);if(X.length===0)(Y=q._zod).deferred??(Y.deferred=[]),q._zod.deferred?.push(()=>{q._zod.run=q._zod.parse});else{let J=(K,$,L)=>{let B=Rq(K),E;for(let w of $){if(w._zod.def.when){if(!w._zod.def.when(K))continue}else if(B)continue;let M=K.issues.length,V=w._zod.check(K);if(V instanceof Promise&&L?.async===!1)throw new r;if(E||V instanceof Promise)E=(E??Promise.resolve()).then(async()=>{if(await V,K.issues.length===M)return;if(!B)B=Rq(K,M)});else{if(K.issues.length===M)continue;if(!B)B=Rq(K,M)}}if(E)return E.then(()=>{return K});return K},W=(K,$,L)=>{if(Rq(K))return K.aborted=!0,K;let B=J($,X,L);if(B instanceof Promise){if(L.async===!1)throw new r;return B.then((E)=>q._zod.parse(E,L))}return q._zod.parse(B,L)};q._zod.run=(K,$)=>{if($.skipChecks)return q._zod.parse(K,$);if($.direction==="backward"){let B=q._zod.parse({value:K.value,issues:[]},{...$,skipChecks:!0});if(B instanceof Promise)return B.then((E)=>{return W(E,K,$)});return W(B,K,$)}let L=q._zod.parse(K,$);if(L instanceof Promise){if($.async===!1)throw new r;return L.then((B)=>J(B,X,$))}return J(L,X,$)}}Lq(q,"~standard",()=>({validate:(J)=>{try{let W=Hq(q,J);return W.success?{value:W.data}:{issues:W.error?.issues}}catch(W){return zq(q,J).then((K)=>K.success?{value:K.data}:{issues:K.error?.issues})}},vendor:"zod",version:1}))}),_0=c("$ZodString",(q,Q)=>{jq.init(q,Q),q._zod.pattern=[...q?._zod.bag?.patterns??[]].pop()??O0(q._zod.bag),q._zod.parse=(Y,X)=>{if(Q.coerce)try{Y.value=String(Y.value)}catch(J){}if(typeof Y.value==="string")return Y;return Y.issues.push({expected:"string",code:"invalid_type",input:Y.value,inst:q}),Y}});function x0(q,Q,Y){if(q.issues.length)Q.issues.push(...rq(Y,q.issues));Q.value[Y]=q.value}var k0=c("$ZodArray",(q,Q)=>{jq.init(q,Q),q._zod.parse=(Y,X)=>{let J=Y.value;if(!Array.isArray(J))return Y.issues.push({expected:"array",code:"invalid_type",input:J,inst:q}),Y;Y.value=Array(J.length);let W=[];for(let K=0;K<J.length;K++){let $=J[K],L=Q.element._zod.run({value:$,issues:[]},X);if(L instanceof Promise)W.push(L.then((B)=>x0(B,Y,K)));else x0(L,Y,K)}if(W.length)return Promise.all(W).then(()=>Y);return Y}});function Zq(q,Q,Y,X,J){if(q.issues.length){if(J&&!(Y in X))return;Q.issues.push(...rq(Y,q.issues))}if(q.value===void 0){if(Y in X)Q.value[Y]=void 0}else Q.value[Y]=q.value}function DY(q){let Q=Object.keys(q.shape);for(let X of Q)if(!q.shape?.[X]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${X}": expected a Zod schema`);let Y=F0(q.shape);return{...q,keys:Q,keySet:new Set(Q),numKeys:Q.length,optionalKeys:new Set(Y)}}function MY(q,Q,Y,X,J,W){let K=[],$=J.keySet,L=J.catchall._zod,B=L.def.type,E=L.optout==="optional";for(let w in Q){if($.has(w))continue;if(B==="never"){K.push(w);continue}let M=L.run({value:Q[w],issues:[]},X);if(M instanceof Promise)q.push(M.then((V)=>Zq(V,Y,w,Q,E)));else Zq(M,Y,w,Q,E)}if(K.length)Y.issues.push({code:"unrecognized_keys",keys:K,input:Q,inst:W});if(!q.length)return Y;return Promise.all(q).then(()=>{return Y})}var v0=c("$ZodObject",(q,Q)=>{if(jq.init(q,Q),!Object.getOwnPropertyDescriptor(Q,"shape")?.get){let $=Q.shape;Object.defineProperty(Q,"shape",{get:()=>{let L={...$};return Object.defineProperty(Q,"shape",{value:L}),L}})}let X=lq(()=>DY(Q));Lq(q._zod,"propValues",()=>{let $=Q.shape,L={};for(let B in $){let E=$[B]._zod;if(E.values){L[B]??(L[B]=new Set);for(let w of E.values)L[B].add(w)}}return L});let J=T0,W=Q.catchall,K;q._zod.parse=($,L)=>{K??(K=X.value);let B=$.value;if(!J(B))return $.issues.push({expected:"object",code:"invalid_type",input:B,inst:q}),$;$.value={};let E=[],w=K.shape;for(let M of K.keys){let V=w[M],R=V._zod.optout==="optional",H=V._zod.run({value:B[M],issues:[]},L);if(H instanceof Promise)E.push(H.then((A)=>Zq(A,$,M,B,R)));else Zq(H,$,M,B,R)}if(!W)return E.length?Promise.all(E).then(()=>$):$;return MY(E,B,$,L,X.value,q)}});function h0(q,Q){return new q({type:"string",...Bq(Q)})}var iq=c("ZodMiniType",(q,Q)=>{if(!q._zod)throw Error("Uninitialized schema in ZodMiniType.");jq.init(q,Q),q.def=Q,q.type=Q.type,q.parse=(Y,X)=>Tq(q,Y,X,{callee:q.parse}),q.safeParse=(Y,X)=>Hq(q,Y,X),q.parseAsync=async(Y,X)=>Fq(q,Y,X,{callee:q.parseAsync}),q.safeParseAsync=async(Y,X)=>zq(q,Y,X),q.check=(...Y)=>{return q.clone({...Q,checks:[...Q.checks??[],...Y.map((X)=>typeof X==="function"?{_zod:{check:X,def:{check:"custom"},onattach:[]}}:X)]},{parent:!0})},q.with=q.check,q.clone=(Y,X)=>oq(q,Y,X),q.brand=()=>q,q.register=(Y,X)=>{return Y.add(q,X),q},q.apply=(Y)=>Y(q)}),FY=c("ZodMiniString",(q,Q)=>{_0.init(q,Q),iq.init(q,Q)});function l(q){return h0(FY,q)}var ZY=c("ZodMiniArray",(q,Q)=>{k0.init(q,Q),iq.init(q,Q)});function nq(q,Q){return new ZY({type:"array",element:q,...Bq(Q)})}var PY=c("ZodMiniObject",(q,Q)=>{v0.init(q,Q),iq.init(q,Q),Lq(q,"shape",()=>Q.shape)});function qq(q,Q){let Y={type:"object",shape:q??{},...Bq(Q)};return new PY(Y)}import{cp as g0,exists as Qq,mkdir as OY,readFile as bY,rm as CY}from"fs/promises";import{join as Yq}from"path";import{spawn as xY}from"child_process";import{homedir as _Y}from"os";import{resolve as hY}from"path";var Uq="course.json",kY=()=>process.env.PROGY_API_URL||"https://progy.francy.workers.dev",vY=qq({id:l(),name:l(),runner:qq({command:l(),args:nq(l()),cwd:l()}),content:qq({root:l(),exercises:l()}),setup:qq({checks:nq(qq({name:l(),type:l(),command:l()})),guide:l()})});class Pq{static async resolveSource(q){if(q.startsWith("http://")||q.startsWith("https://")||q.startsWith("git@")){let Q=q.split("#"),Y=Q[0],X=Q[1];return{url:Y,branch:X}}if(await Qq(q))return{url:hY(q)};console.log(`[INFO] Resolving alias '${q}'...`);try{let Q=`${kY()}/api/registry`,Y=await fetch(Q);if(!Y.ok)throw Error(`Failed to fetch registry (Status: ${Y.status})`);let J=(await Y.json()).courses[q];if(J)return{url:J.repo,branch:J.branch,path:J.path}}catch(Q){console.warn(`[WARN] Registry lookup failed: ${Q.message||Q}`)}throw Error(`Could not resolve course source for '${q}'`)}static async validateCourse(q){let Q=Yq(q,Uq);if(!await Qq(Q))throw Error(`Missing ${Uq} in course directory.`);let Y=await bY(Q,"utf-8"),X;try{X=JSON.parse(Y)}catch(L){throw Error(`Invalid JSON in ${Uq}`)}if("repo"in X)throw Error(`Security Error: Pre-configured 'repo' field in ${Uq} is forbidden. Source is potentially untrusted.`);let J=vY.safeParse(X);if(!J.success){let L=J.error.issues.map((B)=>`- ${B.path.join(".")}: ${B.message}`).join(`
88
88
  `);throw Error(`Invalid course configuration in ${Uq}:
89
- ${L}`)}let W=Yq(q,J.data.content.root);if(!await Qq(W))throw Error(`Content root '${J.data.content.root}' not found.`);let K=Yq(q,J.data.content.exercises);if(!await Qq(K))throw Error(`Exercises directory '${J.data.content.exercises}' not found.`);let $=Yq(q,J.data.setup.guide);if(!await Qq($))throw Error(`Setup guide '${J.data.setup.guide}' not found.`);return J.data}static async load(q,Q){let Y=await this.resolveSource(q),{url:X,branch:J,path:W}=Y;if(console.log(`[INFO] Loading course from: ${X} (branch: ${J||"default"}, path: ${W||"root"})`),await Qq(X)&&!X.endsWith(".git"))return await this.validateCourse(X),await h0(X,Q,{recursive:!0}),Y;let K=Yq(xY(),".progy","tmp",`course-${Date.now()}`);await PY(K,{recursive:!0});try{if(console.log("[GIT] Initializing repository..."),await Eq("git",["init"],K),await Eq("git",["remote","add","origin",X],K),W)console.log(`[GIT] Configuring sparse-checkout for path: ${W}...`),await Eq("git",["config","core.sparseCheckout","true"],K),await Eq("git",["sparse-checkout","set",W],K);console.log("[GIT] Pulling content..."),await Eq("git",["pull","--depth=1","origin",J||"main"],K);let L=W?Yq(K,W):K;return console.log("[VAL] Validating course..."),await this.validateCourse(L),console.log("[INST] Installing course..."),await h0(L,Q,{recursive:!0}),Y}finally{await bY(K,{recursive:!0,force:!0})}}}function Eq(q,Q,Y){return new Promise((X,J)=>{CY(q,Q,{cwd:Y,stdio:"inherit"}).on("close",(K)=>{if(K===0)X();else J(Error(`${q} exited with code ${K}`))})})}var xq=$q(HQ(),1);import{stat as zQ,mkdir as $8,rm as V8}from"fs/promises";import{join as Q0,basename as L8}from"path";import{createHash as B8}from"crypto";import{homedir as R8}from"os";var A8=Q0(R8(),".progy"),I8=Q0(A8,"runtime");class Gq{static async pack(q,Q){let Y=new xq.default;Y.addLocalFolder(q),await Y.writeZipPromise(Q)}static async unpack(q){let Q=await zQ(q),Y=`${q}-${Q.mtimeMs}`,X=B8("md5").update(Y).digest("hex").substring(0,8),J=L8(q,".progy").replace(/[^a-zA-Z0-9-]/g,"_"),W=Q0(I8,`${J}-${X}`);if(await H8(W))await V8(W,{recursive:!0,force:!0});await $8(W,{recursive:!0});let K=new xq.default(q);return await new Promise(($,L)=>{K.extractAllToAsync(W,!0,!1,(B)=>{if(B)L(B);else $()})}),W}static async sync(q,Q){let Y=new xq.default;Y.addLocalFolder(q),await Y.writeZipPromise(Q)}}async function H8(q){try{return await zQ(q),!0}catch{return!1}}var Y0=h(w8(),".progy"),X0=h(Y0,"config.json"),EQ=process.env.PROGY_API_URL||"https://progy.francy.workers.dev",M8=process.env.PROGY_FRONTEND_URL||EQ,Kq="course.json";async function c(q){try{return await D8(q),!0}catch{return!1}}async function S8(){let q=h(import.meta.dir,"../../../courses");if(await c(q))return q;return null}async function T8(q){if(!await c(Y0))await Nq(Y0,{recursive:!0});await n(X0,JSON.stringify({token:q}))}async function F8(){if(!await c(X0))return null;try{return JSON.parse(await jQ(X0,"utf-8")).token||null}catch{return null}}function Z8(q){let Q=process.platform==="win32"?"start":process.platform==="darwin"?"open":"xdg-open";UQ(Q,[q],{shell:!0}).unref()}s.name("progy").description("Universal programming course runner").version("0.0.1");s.command("init").description("Initialize a new course in the current directory").option("-c, --course <course>","Language/Course to initialize (e.g., rust)").option("--offline","Run in offline mode (Guest access, local storage only)").action(async(q)=>{let Q=process.cwd(),Y=!!q.offline,X=h(Q,Kq),J=await c(X),W=null,K=null;if(!Y){if(K=await F8(),!K)console.error("\u274C Authentication required for Online Mode."),console.error(" Run `bunx progy login` to authenticate."),console.error(" Or use `--offline` for Guest access (progress will only be saved locally)."),process.exit(1)}if(!q.course)if(J)console.log(`[INFO] Detected '${Kq}'. Starting progy...`);else console.error(`[ERROR] No '${Kq}' found. Please specify a course to initialize:`),console.error(" progy init --course <rust|go|cloudflare...>"),process.exit(1);else{let $=q.course;console.log(`[INFO] Initializing ${$} course in ${Q}...`);let L=await S8(),B=!1;if(L){console.log(`[INFO] Checking local courses directory: ${L}`);let D=h(L,$);if(await c(D))try{console.log("[VAL] Validating local course..."),await Pq.validateCourse(D);let V=["content","runner","Cargo.toml","go.mod","SETUP.md",Kq];for(let R of V){let H=h(D,R),A=h(Q,R);if(await c(H))console.log(`[COPY] ${R}...`),await z8(H,A,{recursive:!0})}B=!0}catch(V){console.warn(`[WARN] Local course validation failed: ${V}`)}}let U=h(N8(),`progy-init-${Date.now()}`);await Nq(U,{recursive:!0});let w=$.replace(/\//g,"-");try{W=await Pq.load($,U);let D=h(U,Kq);if(await c(D)){let R=await jQ(D,"utf-8"),H=JSON.parse(R);if(H.id)w=H.id;let A=!1;if(W)H.repo=W.url,A=!0;if(A)await n(D,JSON.stringify(H,null,2)),console.log("[META] Course metadata injected.")}let V=h(Q,`${w}.progy`);if(await c(V))console.error(`[ERROR] File '${w}.progy' already exists.`),await _q(U,{recursive:!0,force:!0}),process.exit(1);if(console.log(`[INFO] Packaging course from ${U}...`),await Gq.pack(U,V),console.log(`[SUCCESS] Course packaged: ${w}.progy`),U&&await c(U))await _q(U,{recursive:!0,force:!0});console.log(`
89
+ ${L}`)}let W=Yq(q,J.data.content.root);if(!await Qq(W))throw Error(`Content root '${J.data.content.root}' not found.`);let K=Yq(q,J.data.content.exercises);if(!await Qq(K))throw Error(`Exercises directory '${J.data.content.exercises}' not found.`);let $=Yq(q,J.data.setup.guide);if(!await Qq($))throw Error(`Setup guide '${J.data.setup.guide}' not found.`);return J.data}static async load(q,Q){let Y=await this.resolveSource(q),{url:X,branch:J,path:W}=Y;if(console.log(`[INFO] Loading course from: ${X} (branch: ${J||"default"}, path: ${W||"root"})`),await Qq(X)&&!X.endsWith(".git"))return await this.validateCourse(X),await g0(X,Q,{recursive:!0}),Y;let K=Yq(_Y(),".progy","tmp",`course-${Date.now()}`);await OY(K,{recursive:!0});try{if(console.log("[GIT] Initializing repository..."),await Eq("git",["init"],K),await Eq("git",["remote","add","origin",X],K),W)console.log(`[GIT] Configuring sparse-checkout for path: ${W}...`),await Eq("git",["config","core.sparseCheckout","true"],K),await Eq("git",["sparse-checkout","set",W],K);console.log("[GIT] Pulling content..."),await Eq("git",["pull","--depth=1","origin",J||"main"],K);let L=W?Yq(K,W):K;return console.log("[VAL] Validating course..."),await this.validateCourse(L),console.log("[INST] Installing course..."),await g0(L,Q,{recursive:!0}),Y}finally{await CY(K,{recursive:!0,force:!0})}}}function Eq(q,Q,Y){return new Promise((X,J)=>{xY(q,Q,{cwd:Y,stdio:"inherit"}).on("close",(K)=>{if(K===0)X();else J(Error(`${q} exited with code ${K}`))})})}var xq=$q(zQ(),1);import{stat as jQ,mkdir as V8,rm as L8}from"fs/promises";import{join as q0,basename as B8}from"path";import{createHash as R8}from"crypto";import{homedir as A8}from"os";var I8=q0(A8(),".progy"),H8=q0(I8,"runtime");class Gq{static async pack(q,Q){let Y=new xq.default;Y.addLocalFolder(q),await Y.writeZipPromise(Q)}static async unpack(q){let Q=await jQ(q),Y=`${q}-${Q.mtimeMs}`,X=R8("md5").update(Y).digest("hex").substring(0,8),J=B8(q,".progy").replace(/[^a-zA-Z0-9-]/g,"_"),W=q0(H8,`${J}-${X}`);if(await z8(W))await L8(W,{recursive:!0,force:!0});await V8(W,{recursive:!0});let K=new xq.default(q);return await new Promise(($,L)=>{K.extractAllToAsync(W,!0,!1,(B)=>{if(B)L(B);else $()})}),W}static async sync(q,Q){let Y=new xq.default;Y.addLocalFolder(q),await Y.writeZipPromise(Q)}}async function z8(q){try{return await jQ(q),!0}catch{return!1}}var Y0=x(N8(),".progy"),X0=x(Y0,"config.json"),wQ=process.env.PROGY_API_URL||"https://progy.francy.workers.dev",S8=process.env.PROGY_FRONTEND_URL||wQ,Kq="course.json";async function m(q){try{return await M8(q),!0}catch{return!1}}async function T8(){let q=x(import.meta.dir,"../../../courses");if(await m(q))return q;return null}async function F8(q){if(!await m(Y0))await Nq(Y0,{recursive:!0});await n(X0,JSON.stringify({token:q}))}async function Z8(){if(!await m(X0))return null;try{return JSON.parse(await UQ(X0,"utf-8")).token||null}catch{return null}}function P8(q){let Q=process.platform==="win32"?"start":process.platform==="darwin"?"open":"xdg-open";EQ(Q,[q],{shell:!0}).unref()}async function J0(q,Q){let Y=process.cwd(),X=!!Q.offline,J=Y,W="";if(q&&q.endsWith(".progy")&&await m(q))W=E8(q);else{let M=(await U8(Y)).filter((V)=>V.endsWith(".progy"));if(M.length>0){if(M.length>1)console.warn(`[WARN] Multiple .progy files found. Using ${M[0]}`);W=x(Y,M[0])}}if(W){console.log(`[OPEN] Opening course: ${w8(W)}...`);try{J=await Gq.unpack(W),console.log(`[KT] Runtime ready at: ${J}`)}catch(w){console.error(`[ERROR] Failed to unpack course: ${w}`),process.exit(1)}}else if(await m(x(Y,Kq)))console.log("[INFO] Legacy course directory detected.");else console.log("[INFO] No .progy file or course structure found."),console.log("Run 'progy init' to create a new course.");console.log(`[INFO] Starting UI in ${X?"OFFLINE":"ONLINE"} mode...`);let $=import.meta.file.endsWith(".ts")?"ts":"js",B=["run",x(import.meta.dir,"backend",`server.${$}`)];if(process.env.ENABLE_HMR==="true")B.splice(1,0,"--hot");let E=EQ("bun",B,{stdio:"inherit",env:{...process.env,PROG_CWD:J,PROGY_OFFLINE:X?"true":"false"}});if(W){console.log("[SYNC] Auto-save enabled.");let{watch:w}=await import("fs"),M=null,V=w(J,{recursive:!0},(R,H)=>{if(!H||H.includes(".git")||H.includes("node_modules"))return;if(M)clearTimeout(M);M=setTimeout(async()=>{try{await Gq.sync(J,W)}catch(A){console.error(`[SYNC] Failed to save: ${A}`)}},1000)});E.on("close",()=>{V.close(),console.log("[SYNC] Final save..."),Gq.sync(J,W).then(()=>process.exit(0))})}else E.on("close",(w)=>process.exit(w??0))}s.name("progy").description("Universal programming course runner").version("0.0.1");s.command("init").description("Initialize a new course in the current directory").option("-c, --course <course>","Language/Course to initialize (e.g., rust)").option("--offline","Run in offline mode (Guest access, local storage only)").action(async(q)=>{let Q=process.cwd(),Y=!!q.offline,X=x(Q,Kq),J=await m(X),W=null,K=null;if(!Y){if(K=await Z8(),!K)console.error("\u274C Authentication required for Online Mode."),console.error(" Run `bunx progy login` to authenticate."),console.error(" Or use `--offline` for Guest access (progress will only be saved locally)."),process.exit(1)}if(!q.course)if(J)console.log(`[INFO] Detected '${Kq}'. Starting progy...`);else console.error(`[ERROR] No '${Kq}' found. Please specify a course to initialize:`),console.error(" progy init --course <rust|go|cloudflare...>"),process.exit(1);else{let $=q.course;console.log(`[INFO] Initializing ${$} course in ${Q}...`);let L=await T8(),B=!1;if(L){console.log(`[INFO] Checking local courses directory: ${L}`);let V=x(L,$);if(await m(V))try{console.log("[VAL] Validating local course..."),await Pq.validateCourse(V);let R=["content","runner","Cargo.toml","go.mod","SETUP.md",Kq];for(let H of R){let A=x(V,H),j=x(Q,H);if(await m(A))console.log(`[COPY] ${H}...`),await j8(A,j,{recursive:!0})}B=!0}catch(R){console.warn(`[WARN] Local course validation failed: ${R}`)}}let E=x(Q,`${$}.progy`);if(await m(E)){console.log(`[INFO] Found '${$}.progy'. Opening existing file...`),await J0(E,{offline:Y});return}let w=x(D8(),`progy-init-${Date.now()}`);await Nq(w,{recursive:!0});let M=$.replace(/\//g,"-");try{W=await Pq.load($,w);let V=x(w,Kq);if(await m(V)){let H=await UQ(V,"utf-8"),A=JSON.parse(H);if(A.id)M=A.id;let j=!1;if(W)A.repo=W.url,j=!0;if(j)await n(V,JSON.stringify(A,null,2)),console.log("[META] Course metadata injected.")}let R=x(Q,`${M}.progy`);if(await m(R))console.log(`[INFO] File '${M}.progy' already exists. Using existing file.`);else console.log(`[INFO] Packaging course from ${w}...`),await Gq.pack(w,R),console.log(`[SUCCESS] Course packaged: ${M}.progy`);if(w&&await m(w))await Q0(w,{recursive:!0,force:!0});console.log(`
90
90
  To start the course, run:
91
- bunx progy`)}catch(D){console.error(`[ERROR] Failed to initialize course: ${D}`),await _q(U,{recursive:!0,force:!0}),process.exit(1)}finally{if(await c(U))await _q(U,{recursive:!0,force:!0})}}});s.command("start",{isDefault:!0}).description("Start the Progy server (opens local .progy file)").option("--offline","Run in offline mode").argument("[file]","Specific .progy file to open").action(async(q,Q)=>{let Y=process.cwd(),X=!!Q.offline,J=Y,W="";if(q&&q.endsWith(".progy")&&await c(q))W=U8(q);else{let D=(await j8(Y)).filter((V)=>V.endsWith(".progy"));if(D.length>0){if(D.length>1)console.warn(`[WARN] Multiple .progy files found. Using ${D[0]}`);W=h(Y,D[0])}}if(W){console.log(`[OPEN] Opening course: ${E8(W)}...`);try{J=await Gq.unpack(W),console.log(`[KT] Runtime ready at: ${J}`)}catch(w){console.error(`[ERROR] Failed to unpack course: ${w}`),process.exit(1)}}else if(await c(h(Y,Kq)))console.log("[INFO] Legacy course directory detected.");else console.log("[INFO] No .progy file or course structure found."),console.log("Run 'progy init' to create a new course.");console.log(`[INFO] Starting UI in ${X?"OFFLINE":"ONLINE"} mode...`);let $=import.meta.file.endsWith(".ts")?"ts":"js",B=["run",h(import.meta.dir,"backend",`server.${$}`)];if(process.env.ENABLE_HMR==="true")B.splice(1,0,"--hot");let U=UQ("bun",B,{stdio:"inherit",env:{...process.env,PROG_CWD:J,PROGY_OFFLINE:X?"true":"false"}});if(W){console.log("[SYNC] Auto-save enabled.");let{watch:w}=await import("fs"),D=null,V=w(J,{recursive:!0},(R,H)=>{if(!H||H.includes(".git")||H.includes("node_modules"))return;if(D)clearTimeout(D);D=setTimeout(async()=>{try{await Gq.sync(J,W)}catch(A){console.error(`[SYNC] Failed to save: ${A}`)}},1000)});U.on("close",()=>{V.close(),console.log("[SYNC] Final save..."),Gq.sync(J,W).then(()=>process.exit(0))})}else U.on("close",(w)=>process.exit(w??0))});s.command("create-course").description("Scaffold a new course with standard directory structure").requiredOption("--name <name>","Name of the course (e.g., rust-advanced)").requiredOption("-c, --course <course>","Programming language template (rust, go)").action(async(q)=>{let Q=process.cwd(),Y=q.name,X=q.course.toLowerCase(),J=h(Q,Y);if(await c(J))console.error(`[ERROR] Directory '${Y}' already exists.`),process.exit(1);let W=pq[X];if(!W)console.error(`[ERROR] Unsupported language '${X}'. Supported: ${Object.keys(pq).join(", ")}`),process.exit(1);console.log(`[INFO] Creating course '${Y}' with template '${X}'...`),await Nq(J,{recursive:!0}),await Nq(h(J,"content","01_intro"),{recursive:!0});let K=JSON.stringify(W.courseJson,null,2).replace(/{{id}}/g,Y).replace(/{{name}}/g,Y);if(await n(h(J,"course.json"),K),await n(h(J,"SETUP.md"),W.setupMd),await n(h(J,"content","01_intro","README.md"),W.introReadme),await n(h(J,"content","01_intro",W.introFilename),W.introCode),X==="go"){let $=h(J,"runner");await Nq($,{recursive:!0});let L=`package main
91
+ bunx progy`),await J0(R,{offline:Y})}catch(V){console.error(`[ERROR] Failed to initialize course: ${V}`),await Q0(w,{recursive:!0,force:!0}),process.exit(1)}finally{if(await m(w))await Q0(w,{recursive:!0,force:!0})}}});s.command("start",{isDefault:!0}).description("Start the Progy server (opens local .progy file)").option("--offline","Run in offline mode").argument("[file]","Specific .progy file to open").action(async(q,Q)=>{await J0(q,Q)});s.command("create-course").description("Scaffold a new course with standard directory structure").requiredOption("--name <name>","Name of the course (e.g., rust-advanced)").requiredOption("-c, --course <course>","Programming language template (rust, go)").action(async(q)=>{let Q=process.cwd(),Y=q.name,X=q.course.toLowerCase(),J=x(Q,Y);if(await m(J))console.error(`[ERROR] Directory '${Y}' already exists.`),process.exit(1);let W=cq[X];if(!W)console.error(`[ERROR] Unsupported language '${X}'. Supported: ${Object.keys(cq).join(", ")}`),process.exit(1);console.log(`[INFO] Creating course '${Y}' with template '${X}'...`),await Nq(J,{recursive:!0}),await Nq(x(J,"content","01_intro"),{recursive:!0});let K=JSON.stringify(W.courseJson,null,2).replace(/{{id}}/g,Y).replace(/{{name}}/g,Y);if(await n(x(J,"course.json"),K),await n(x(J,"SETUP.md"),W.setupMd),await n(x(J,"content","01_intro","README.md"),W.introReadme),await n(x(J,"content","01_intro",W.introFilename),W.introCode),X==="go"){let $=x(J,"runner");await Nq($,{recursive:!0});let L=`package main
92
92
  import (
93
93
  "bufio"
94
94
  "encoding/json"
@@ -129,12 +129,12 @@ func main() {
129
129
  fmt.Println("__SRP_END__")
130
130
  if !srp.Success { os.Exit(0) }
131
131
  }
132
- `;await n(h($,"main.go"),L),await n(h(J,"go.mod"),`module ${Y}
132
+ `;await n(x($,"main.go"),L),await n(x(J,"go.mod"),`module ${Y}
133
133
 
134
134
  go 1.21
135
135
  `)}console.log("[SUCCESS] Course created!"),console.log(`
136
136
  To get started:
137
137
  cd ${Y}
138
- bunx progy init`)});s.command("login").description("Authenticate with Progy").action(async()=>{let{createAuthClient:q}=await import("better-auth/client"),{deviceAuthorizationClient:Q}=await import("better-auth/client/plugins"),Y=q({baseURL:EQ,plugins:[Q()]});try{console.log("[INFO] Requesting login session...");let{data:X,error:J}=await Y.device.code({client_id:"progy-cli"});if(J)throw Error(J.error_description||"Failed to initiate device authorization");let{device_code:W,user_code:K,verification_uri:$,interval:L}=X,B=$.startsWith("http")?$:`${M8}${$}`;console.log(`
138
+ bunx progy init`)});s.command("login").description("Authenticate with Progy").action(async()=>{let{createAuthClient:q}=await import("better-auth/client"),{deviceAuthorizationClient:Q}=await import("better-auth/client/plugins"),Y=q({baseURL:wQ,plugins:[Q()]});try{console.log("[INFO] Requesting login session...");let{data:X,error:J}=await Y.device.code({client_id:"progy-cli"});if(J)throw Error(J.error_description||"Failed to initiate device authorization");let{device_code:W,user_code:K,verification_uri:$,interval:L}=X,B=$.startsWith("http")?$:`${S8}${$}`;console.log(`
139
139
  Please authenticate in your browser:`),console.log(`\x1B[36m${B}\x1B[0m`),console.log(`Code: \x1B[33m${K}\x1B[0m
140
- `),Z8(B),console.log("[WAIT] Waiting for authorization...");let w=await(async()=>{while(!0){let{data:D,error:V}=await Y.device.token({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:W,client_id:"progy-cli"});if(D?.access_token)return D.access_token;if(V){let R=V.error;if(R==="access_denied"||R==="expired_token")throw Error(V.error_description||R)}await new Promise((R)=>setTimeout(R,(L||5)*1000))}})();if(w)await T8(w),console.log("[SUCCESS] Logged in successfully!")}catch(X){console.error(`[ERROR] Login failed: ${X.message||X}`),process.exit(1)}});s.parse();
140
+ `),P8(B),console.log("[WAIT] Waiting for authorization...");let w=await(async()=>{while(!0){let{data:M,error:V}=await Y.device.token({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:W,client_id:"progy-cli"});if(M?.access_token)return M.access_token;if(V){let R=V.error;if(R==="access_denied"||R==="expired_token")throw Error(V.error_description||R)}await new Promise((R)=>setTimeout(R,(L||5)*1000))}})();if(w)await F8(w),console.log("[SUCCESS] Logged in successfully!")}catch(X){console.error(`[ERROR] Login failed: ${X.message||X}`),process.exit(1)}});s.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "progy",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "The interactive CLI and learning platform for Progy courses.",
5
5
  "license": "MIT",
6
6
  "repository": {