@spree/cli 2.4.0 → 2.4.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.
package/dist/index.js
CHANGED
|
@@ -1,185 +1,186 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __createRequire } from "node:module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
|
-
var
|
|
5
|
-
`)}displayWidth(t){return
|
|
4
|
+
var Nh=Object.create;var ha=Object.defineProperty;var Gh=Object.getOwnPropertyDescriptor;var zh=Object.getOwnPropertyNames;var Vh=Object.getPrototypeOf,Wh=Object.prototype.hasOwnProperty;var he=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var A=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var Hh=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of zh(t))!Wh.call(e,n)&&n!==r&&ha(e,n,{get:()=>t[n],enumerable:!(i=Gh(t,n))||i.enumerable});return e};var U=(e,t,r)=>(r=e!=null?Nh(Vh(e)):{},Hh(t||!e||!e.__esModule?ha(r,"default",{value:e,enumerable:!0}):r,e));var rr=A(Tn=>{"use strict";var Fr=class extends Error{constructor(t,r,i){super(i),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=t,this.nestedError=void 0}},Pn=class extends Fr{constructor(t){super(1,"commander.invalidArgument",t),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};Tn.CommanderError=Fr;Tn.InvalidArgumentError=Pn});var Br=A(Rn=>{"use strict";var{InvalidArgumentError:Kh}=rr(),In=class{constructor(t,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,t[0]){case"<":this.required=!0,this._name=t.slice(1,-1);break;case"[":this.required=!1,this._name=t.slice(1,-1);break;default:this.required=!0,this._name=t;break}this._name.endsWith("...")&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(t,r){return r===this.defaultValue||!Array.isArray(r)?[t]:(r.push(t),r)}default(t,r){return this.defaultValue=t,this.defaultValueDescription=r,this}argParser(t){return this.parseArg=t,this}choices(t){return this.argChoices=t.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new Kh(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function Yh(e){let t=e.name()+(e.variadic===!0?"...":"");return e.required?"<"+t+">":"["+t+"]"}Rn.Argument=In;Rn.humanReadableArgName=Yh});var Dn=A(jn=>{"use strict";var{humanReadableArgName:Jh}=Br(),On=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(t){this.helpWidth=this.helpWidth??t.helpWidth??80}visibleCommands(t){let r=t.commands.filter(n=>!n._hidden),i=t._getHelpCommand();return i&&!i._hidden&&r.push(i),this.sortSubcommands&&r.sort((n,s)=>n.name().localeCompare(s.name())),r}compareOptions(t,r){let i=n=>n.short?n.short.replace(/^-/,""):n.long.replace(/^--/,"");return i(t).localeCompare(i(r))}visibleOptions(t){let r=t.options.filter(n=>!n.hidden),i=t._getHelpOption();if(i&&!i.hidden){let n=i.short&&t._findOption(i.short),s=i.long&&t._findOption(i.long);!n&&!s?r.push(i):i.long&&!s?r.push(t.createOption(i.long,i.description)):i.short&&!n&&r.push(t.createOption(i.short,i.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(t){if(!this.showGlobalOptions)return[];let r=[];for(let i=t.parent;i;i=i.parent){let n=i.options.filter(s=>!s.hidden);r.push(...n)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(t){return t._argsDescription&&t.registeredArguments.forEach(r=>{r.description=r.description||t._argsDescription[r.name()]||""}),t.registeredArguments.find(r=>r.description)?t.registeredArguments:[]}subcommandTerm(t){let r=t.registeredArguments.map(i=>Jh(i)).join(" ");return t._name+(t._aliases[0]?"|"+t._aliases[0]:"")+(t.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(t){return t.flags}argumentTerm(t){return t.name()}longestSubcommandTermLength(t,r){return r.visibleCommands(t).reduce((i,n)=>Math.max(i,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(n)))),0)}longestOptionTermLength(t,r){return r.visibleOptions(t).reduce((i,n)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(n)))),0)}longestGlobalOptionTermLength(t,r){return r.visibleGlobalOptions(t).reduce((i,n)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(n)))),0)}longestArgumentTermLength(t,r){return r.visibleArguments(t).reduce((i,n)=>Math.max(i,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(n)))),0)}commandUsage(t){let r=t._name;t._aliases[0]&&(r=r+"|"+t._aliases[0]);let i="";for(let n=t.parent;n;n=n.parent)i=n.name()+" "+i;return i+r+" "+t.usage()}commandDescription(t){return t.description()}subcommandDescription(t){return t.summary()||t.description()}optionDescription(t){let r=[];if(t.argChoices&&r.push(`choices: ${t.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),t.defaultValue!==void 0&&(t.required||t.optional||t.isBoolean()&&typeof t.defaultValue=="boolean")&&r.push(`default: ${t.defaultValueDescription||JSON.stringify(t.defaultValue)}`),t.presetArg!==void 0&&t.optional&&r.push(`preset: ${JSON.stringify(t.presetArg)}`),t.envVar!==void 0&&r.push(`env: ${t.envVar}`),r.length>0){let i=`(${r.join(", ")})`;return t.description?`${t.description} ${i}`:i}return t.description}argumentDescription(t){let r=[];if(t.argChoices&&r.push(`choices: ${t.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),t.defaultValue!==void 0&&r.push(`default: ${t.defaultValueDescription||JSON.stringify(t.defaultValue)}`),r.length>0){let i=`(${r.join(", ")})`;return t.description?`${t.description} ${i}`:i}return t.description}formatItemList(t,r,i){return r.length===0?[]:[i.styleTitle(t),...r,""]}groupItems(t,r,i){let n=new Map;return t.forEach(s=>{let o=i(s);n.has(o)||n.set(o,[])}),r.forEach(s=>{let o=i(s);n.has(o)||n.set(o,[]),n.get(o).push(s)}),n}formatHelp(t,r){let i=r.padWidth(t,r),n=r.helpWidth??80;function s(u,l){return r.formatItem(u,i,l,r)}let o=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(t))}`,""],a=r.commandDescription(t);a.length>0&&(o=o.concat([r.boxWrap(r.styleCommandDescription(a),n),""]));let c=r.visibleArguments(t).map(u=>s(r.styleArgumentTerm(r.argumentTerm(u)),r.styleArgumentDescription(r.argumentDescription(u))));if(o=o.concat(this.formatItemList("Arguments:",c,r)),this.groupItems(t.options,r.visibleOptions(t),u=>u.helpGroupHeading??"Options:").forEach((u,l)=>{let m=u.map(h=>s(r.styleOptionTerm(r.optionTerm(h)),r.styleOptionDescription(r.optionDescription(h))));o=o.concat(this.formatItemList(l,m,r))}),r.showGlobalOptions){let u=r.visibleGlobalOptions(t).map(l=>s(r.styleOptionTerm(r.optionTerm(l)),r.styleOptionDescription(r.optionDescription(l))));o=o.concat(this.formatItemList("Global Options:",u,r))}return this.groupItems(t.commands,r.visibleCommands(t),u=>u.helpGroup()||"Commands:").forEach((u,l)=>{let m=u.map(h=>s(r.styleSubcommandTerm(r.subcommandTerm(h)),r.styleSubcommandDescription(r.subcommandDescription(h))));o=o.concat(this.formatItemList(l,m,r))}),o.join(`
|
|
5
|
+
`)}displayWidth(t){return ya(t).length}styleTitle(t){return t}styleUsage(t){return t.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(t){return this.styleDescriptionText(t)}styleOptionDescription(t){return this.styleDescriptionText(t)}styleSubcommandDescription(t){return this.styleDescriptionText(t)}styleArgumentDescription(t){return this.styleDescriptionText(t)}styleDescriptionText(t){return t}styleOptionTerm(t){return this.styleOptionText(t)}styleSubcommandTerm(t){return t.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(t){return this.styleArgumentText(t)}styleOptionText(t){return t}styleArgumentText(t){return t}styleSubcommandText(t){return t}styleCommandText(t){return t}padWidth(t,r){return Math.max(r.longestOptionTermLength(t,r),r.longestGlobalOptionTermLength(t,r),r.longestSubcommandTermLength(t,r),r.longestArgumentTermLength(t,r))}preformatted(t){return/\n[^\S\r\n]/.test(t)}formatItem(t,r,i,n){let o=" ".repeat(2);if(!i)return o+t;let a=t.padEnd(r+t.length-n.displayWidth(t)),c=2,p=(this.helpWidth??80)-r-c-2,u;return p<this.minWidthToWrap||n.preformatted(i)?u=i:u=n.boxWrap(i,p).replace(/\n/g,`
|
|
6
6
|
`+" ".repeat(r+c)),o+a+" ".repeat(c)+u.replace(/\n/g,`
|
|
7
7
|
${o}`)}boxWrap(t,r){if(r<this.minWidthToWrap)return t;let i=t.split(/\r\n|\n/),n=/[\s]*[^\s]+/g,s=[];return i.forEach(o=>{let a=o.match(n);if(a===null){s.push("");return}let c=[a.shift()],d=this.displayWidth(c[0]);a.forEach(p=>{let u=this.displayWidth(p);if(d+u<=r){c.push(p),d+=u;return}s.push(c.join(""));let l=p.trimStart();c=[l],d=this.displayWidth(l)}),s.push(c.join(""))}),s.join(`
|
|
8
|
-
`)}};function
|
|
8
|
+
`)}};function ya(e){let t=/\x1b\[\d*(;\d*)*m/g;return e.replace(t,"")}jn.Help=On;jn.stripColor=ya});var Bn=A(Fn=>{"use strict";var{InvalidArgumentError:Xh}=rr(),Ln=class{constructor(t,r){this.flags=t,this.description=r||"",this.required=t.includes("<"),this.optional=t.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(t),this.mandatory=!1;let i=Zh(t);this.short=i.shortFlag,this.long=i.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,this.helpGroupHeading=void 0}default(t,r){return this.defaultValue=t,this.defaultValueDescription=r,this}preset(t){return this.presetArg=t,this}conflicts(t){return this.conflictsWith=this.conflictsWith.concat(t),this}implies(t){let r=t;return typeof t=="string"&&(r={[t]:!0}),this.implied=Object.assign(this.implied||{},r),this}env(t){return this.envVar=t,this}argParser(t){return this.parseArg=t,this}makeOptionMandatory(t=!0){return this.mandatory=!!t,this}hideHelp(t=!0){return this.hidden=!!t,this}_collectValue(t,r){return r===this.defaultValue||!Array.isArray(r)?[t]:(r.push(t),r)}choices(t){return this.argChoices=t.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new Xh(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?fa(this.name().replace(/^no-/,"")):fa(this.name())}helpGroup(t){return this.helpGroupHeading=t,this}is(t){return this.short===t||this.long===t}isBoolean(){return!this.required&&!this.optional&&!this.negate}},Mn=class{constructor(t){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,t.forEach(r=>{r.negate?this.negativeOptions.set(r.attributeName(),r):this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,i)=>{this.positiveOptions.has(i)&&this.dualOptions.add(i)})}valueFromOption(t,r){let i=r.attributeName();if(!this.dualOptions.has(i))return!0;let n=this.negativeOptions.get(i).presetArg,s=n!==void 0?n:!1;return r.negate===(s===t)}};function fa(e){return e.split("-").reduce((t,r)=>t+r[0].toUpperCase()+r.slice(1))}function Zh(e){let t,r,i=/^-[^-]$/,n=/^--[^-]/,s=e.split(/[ |,]+/).concat("guard");if(i.test(s[0])&&(t=s.shift()),n.test(s[0])&&(r=s.shift()),!t&&i.test(s[0])&&(t=s.shift()),!t&&n.test(s[0])&&(t=r,r=s.shift()),s[0].startsWith("-")){let o=s[0],a=`option creation failed due to '${o}' in option flags '${e}'`;throw/^-[^-][^-]/.test(o)?new Error(`${a}
|
|
9
9
|
- a short flag is a single dash and a single character
|
|
10
10
|
- either use a single dash and a single character (for a short flag)
|
|
11
11
|
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`):i.test(o)?new Error(`${a}
|
|
12
12
|
- too many short flags`):n.test(o)?new Error(`${a}
|
|
13
13
|
- too many long flags`):new Error(`${a}
|
|
14
|
-
- unrecognised flag format`)}if(t===void 0&&r===void 0)throw new Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:t,longFlag:r}}
|
|
14
|
+
- unrecognised flag format`)}if(t===void 0&&r===void 0)throw new Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:t,longFlag:r}}Fn.Option=Ln;Fn.DualOptions=Mn});var _a=A(ga=>{"use strict";function Qh(e,t){if(Math.abs(e.length-t.length)>3)return Math.max(e.length,t.length);let r=[];for(let i=0;i<=e.length;i++)r[i]=[i];for(let i=0;i<=t.length;i++)r[0][i]=i;for(let i=1;i<=t.length;i++)for(let n=1;n<=e.length;n++){let s=1;e[n-1]===t[i-1]?s=0:s=1,r[n][i]=Math.min(r[n-1][i]+1,r[n][i-1]+1,r[n-1][i-1]+s),n>1&&i>1&&e[n-1]===t[i-2]&&e[n-2]===t[i-1]&&(r[n][i]=Math.min(r[n][i],r[n-2][i-2]+1))}return r[e.length][t.length]}function ey(e,t){if(!t||t.length===0)return"";t=Array.from(new Set(t));let r=e.startsWith("--");r&&(e=e.slice(2),t=t.map(o=>o.slice(2)));let i=[],n=3,s=.4;return t.forEach(o=>{if(o.length<=1)return;let a=Qh(e,o),c=Math.max(e.length,o.length);(c-a)/c>s&&(a<n?(n=a,i=[o]):a===n&&i.push(o))}),i.sort((o,a)=>o.localeCompare(a)),r&&(i=i.map(o=>`--${o}`)),i.length>1?`
|
|
15
15
|
(Did you mean one of ${i.join(", ")}?)`:i.length===1?`
|
|
16
|
-
(Did you mean ${i[0]}?)`:""}
|
|
17
|
-
- specify the name in Command constructor or using .name()`);return r=r||{},r.isDefault&&(this._defaultCommandName=t._name),(r.noHelp||r.hidden)&&(t._hidden=!0),this._registerCommand(t),t.parent=this,t._checkForBrokenPassThrough(),this}createArgument(t,r){return new
|
|
18
|
-
Expecting one of '${i.join("', '")}'`);return this._lifeCycleHooks[t]?this._lifeCycleHooks[t].push(r):this._lifeCycleHooks[t]=[r],this}exitOverride(t){return t?this._exitCallback=t:this._exitCallback=r=>{if(r.code!=="commander.executeSubCommandAsync")throw r},this}_exit(t,r,i){this._exitCallback&&this._exitCallback(new
|
|
19
|
-
- already used by option '${r.flags}'`)}this._initOptionGroup(t),this.options.push(t)}_registerCommand(t){let r=n=>[n.name()].concat(n.aliases()),i=r(t).find(n=>this._findCommand(n));if(i){let n=r(this._findCommand(i)).join("|"),s=r(t).join("|");throw new Error(`cannot add command '${s}' as already have command '${n}'`)}this._initCommandGroup(t),this.commands.push(t)}addOption(t){this._registerOption(t);let r=t.name(),i=t.attributeName();if(t.negate){let s=t.long.replace(/^--no-/,"--");this._findOption(s)||this.setOptionValueWithSource(i,t.defaultValue===void 0?!0:t.defaultValue,"default")}else t.defaultValue!==void 0&&this.setOptionValueWithSource(i,t.defaultValue,"default");let n=(s,o,a)=>{s==null&&t.presetArg!==void 0&&(s=t.presetArg);let c=this.getOptionValue(i);s!==null&&t.parseArg?s=this._callParseArg(t,s,c,o):s!==null&&t.variadic&&(s=t._collectValue(s,c)),s==null&&(t.negate?s=!1:t.isBoolean()||t.optional?s=!0:s=""),this.setOptionValueWithSource(i,s,a)};return this.on("option:"+r,s=>{let o=`error: option '${t.flags}' argument '${s}' is invalid.`;n(s,o,"cli")}),t.envVar&&this.on("optionEnv:"+r,s=>{let o=`error: option '${t.flags}' value '${s}' from env '${t.envVar}' is invalid.`;n(s,o,"env")}),this}_optionEx(t,r,i,n,s){if(typeof r=="object"&&r instanceof
|
|
20
|
-
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(t,r,i){if(
|
|
16
|
+
(Did you mean ${i[0]}?)`:""}ga.suggestSimilar=ey});var ka=A(Vn=>{"use strict";var ty=he("events").EventEmitter,Un=he("child_process"),He=he("path"),Ur=he("fs"),R=he("process"),{Argument:ry,humanReadableArgName:iy}=Br(),{CommanderError:Nn}=rr(),{Help:ny,stripColor:sy}=Dn(),{Option:ba,DualOptions:oy}=Bn(),{suggestSimilar:wa}=_a(),Gn=class e extends ty{constructor(t){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=t||"",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._savedState=null,this._outputConfiguration={writeOut:r=>R.stdout.write(r),writeErr:r=>R.stderr.write(r),outputError:(r,i)=>i(r),getOutHelpWidth:()=>R.stdout.isTTY?R.stdout.columns:void 0,getErrHelpWidth:()=>R.stderr.isTTY?R.stderr.columns:void 0,getOutHasColors:()=>zn()??(R.stdout.isTTY&&R.stdout.hasColors?.()),getErrHasColors:()=>zn()??(R.stderr.isTTY&&R.stderr.hasColors?.()),stripColor:r=>sy(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(t){return this._outputConfiguration=t._outputConfiguration,this._helpOption=t._helpOption,this._helpCommand=t._helpCommand,this._helpConfiguration=t._helpConfiguration,this._exitCallback=t._exitCallback,this._storeOptionsAsProperties=t._storeOptionsAsProperties,this._combineFlagAndOptionalValue=t._combineFlagAndOptionalValue,this._allowExcessArguments=t._allowExcessArguments,this._enablePositionalOptions=t._enablePositionalOptions,this._showHelpAfterError=t._showHelpAfterError,this._showSuggestionAfterError=t._showSuggestionAfterError,this}_getCommandAndAncestors(){let t=[];for(let r=this;r;r=r.parent)t.push(r);return t}command(t,r,i){let n=r,s=i;typeof n=="object"&&n!==null&&(s=n,n=null),s=s||{};let[,o,a]=t.match(/([^ ]+) *(.*)/),c=this.createCommand(o);return n&&(c.description(n),c._executableHandler=!0),s.isDefault&&(this._defaultCommandName=c._name),c._hidden=!!(s.noHelp||s.hidden),c._executableFile=s.executableFile||null,a&&c.arguments(a),this._registerCommand(c),c.parent=this,c.copyInheritedSettings(this),n?this:c}createCommand(t){return new e(t)}createHelp(){return Object.assign(new ny,this.configureHelp())}configureHelp(t){return t===void 0?this._helpConfiguration:(this._helpConfiguration=t,this)}configureOutput(t){return t===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...t},this)}showHelpAfterError(t=!0){return typeof t!="string"&&(t=!!t),this._showHelpAfterError=t,this}showSuggestionAfterError(t=!0){return this._showSuggestionAfterError=!!t,this}addCommand(t,r){if(!t._name)throw new Error(`Command passed to .addCommand() must have a name
|
|
17
|
+
- specify the name in Command constructor or using .name()`);return r=r||{},r.isDefault&&(this._defaultCommandName=t._name),(r.noHelp||r.hidden)&&(t._hidden=!0),this._registerCommand(t),t.parent=this,t._checkForBrokenPassThrough(),this}createArgument(t,r){return new ry(t,r)}argument(t,r,i,n){let s=this.createArgument(t,r);return typeof i=="function"?s.default(n).argParser(i):s.default(i),this.addArgument(s),this}arguments(t){return t.trim().split(/ +/).forEach(r=>{this.argument(r)}),this}addArgument(t){let r=this.registeredArguments.slice(-1)[0];if(r?.variadic)throw new Error(`only the last argument can be variadic '${r.name()}'`);if(t.required&&t.defaultValue!==void 0&&t.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${t.name()}'`);return this.registeredArguments.push(t),this}helpCommand(t,r){if(typeof t=="boolean")return this._addImplicitHelpCommand=t,t&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;let i=t??"help [command]",[,n,s]=i.match(/([^ ]+) *(.*)/),o=r??"display help for command",a=this.createCommand(n);return a.helpOption(!1),s&&a.arguments(s),o&&a.description(o),this._addImplicitHelpCommand=!0,this._helpCommand=a,(t||r)&&this._initCommandGroup(a),this}addHelpCommand(t,r){return typeof t!="object"?(this.helpCommand(t,r),this):(this._addImplicitHelpCommand=!0,this._helpCommand=t,this._initCommandGroup(t),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(t,r){let i=["preSubcommand","preAction","postAction"];if(!i.includes(t))throw new Error(`Unexpected value for event passed to hook : '${t}'.
|
|
18
|
+
Expecting one of '${i.join("', '")}'`);return this._lifeCycleHooks[t]?this._lifeCycleHooks[t].push(r):this._lifeCycleHooks[t]=[r],this}exitOverride(t){return t?this._exitCallback=t:this._exitCallback=r=>{if(r.code!=="commander.executeSubCommandAsync")throw r},this}_exit(t,r,i){this._exitCallback&&this._exitCallback(new Nn(t,r,i)),R.exit(t)}action(t){let r=i=>{let n=this.registeredArguments.length,s=i.slice(0,n);return this._storeOptionsAsProperties?s[n]=this:s[n]=this.opts(),s.push(this),t.apply(this,s)};return this._actionHandler=r,this}createOption(t,r){return new ba(t,r)}_callParseArg(t,r,i,n){try{return t.parseArg(r,i)}catch(s){if(s.code==="commander.invalidArgument"){let o=`${n} ${s.message}`;this.error(o,{exitCode:s.exitCode,code:s.code})}throw s}}_registerOption(t){let r=t.short&&this._findOption(t.short)||t.long&&this._findOption(t.long);if(r){let i=t.long&&this._findOption(t.long)?t.long:t.short;throw new Error(`Cannot add option '${t.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${i}'
|
|
19
|
+
- already used by option '${r.flags}'`)}this._initOptionGroup(t),this.options.push(t)}_registerCommand(t){let r=n=>[n.name()].concat(n.aliases()),i=r(t).find(n=>this._findCommand(n));if(i){let n=r(this._findCommand(i)).join("|"),s=r(t).join("|");throw new Error(`cannot add command '${s}' as already have command '${n}'`)}this._initCommandGroup(t),this.commands.push(t)}addOption(t){this._registerOption(t);let r=t.name(),i=t.attributeName();if(t.negate){let s=t.long.replace(/^--no-/,"--");this._findOption(s)||this.setOptionValueWithSource(i,t.defaultValue===void 0?!0:t.defaultValue,"default")}else t.defaultValue!==void 0&&this.setOptionValueWithSource(i,t.defaultValue,"default");let n=(s,o,a)=>{s==null&&t.presetArg!==void 0&&(s=t.presetArg);let c=this.getOptionValue(i);s!==null&&t.parseArg?s=this._callParseArg(t,s,c,o):s!==null&&t.variadic&&(s=t._collectValue(s,c)),s==null&&(t.negate?s=!1:t.isBoolean()||t.optional?s=!0:s=""),this.setOptionValueWithSource(i,s,a)};return this.on("option:"+r,s=>{let o=`error: option '${t.flags}' argument '${s}' is invalid.`;n(s,o,"cli")}),t.envVar&&this.on("optionEnv:"+r,s=>{let o=`error: option '${t.flags}' value '${s}' from env '${t.envVar}' is invalid.`;n(s,o,"env")}),this}_optionEx(t,r,i,n,s){if(typeof r=="object"&&r instanceof ba)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let o=this.createOption(r,i);if(o.makeOptionMandatory(!!t.mandatory),typeof n=="function")o.default(s).argParser(n);else if(n instanceof RegExp){let a=n;n=(c,d)=>{let p=a.exec(c);return p?p[0]:d},o.default(s).argParser(n)}else o.default(n);return this.addOption(o)}option(t,r,i,n){return this._optionEx({},t,r,i,n)}requiredOption(t,r,i,n){return this._optionEx({mandatory:!0},t,r,i,n)}combineFlagAndOptionalValue(t=!0){return this._combineFlagAndOptionalValue=!!t,this}allowUnknownOption(t=!0){return this._allowUnknownOption=!!t,this}allowExcessArguments(t=!0){return this._allowExcessArguments=!!t,this}enablePositionalOptions(t=!0){return this._enablePositionalOptions=!!t,this}passThroughOptions(t=!0){return this._passThroughOptions=!!t,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(t=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!t,this}getOptionValue(t){return this._storeOptionsAsProperties?this[t]:this._optionValues[t]}setOptionValue(t,r){return this.setOptionValueWithSource(t,r,void 0)}setOptionValueWithSource(t,r,i){return this._storeOptionsAsProperties?this[t]=r:this._optionValues[t]=r,this._optionValueSources[t]=i,this}getOptionValueSource(t){return this._optionValueSources[t]}getOptionValueSourceWithGlobals(t){let r;return this._getCommandAndAncestors().forEach(i=>{i.getOptionValueSource(t)!==void 0&&(r=i.getOptionValueSource(t))}),r}_prepareUserArgs(t,r){if(t!==void 0&&!Array.isArray(t))throw new Error("first parameter to parse must be array or undefined");if(r=r||{},t===void 0&&r.from===void 0){R.versions?.electron&&(r.from="electron");let n=R.execArgv??[];(n.includes("-e")||n.includes("--eval")||n.includes("-p")||n.includes("--print"))&&(r.from="eval")}t===void 0&&(t=R.argv),this.rawArgs=t.slice();let i;switch(r.from){case void 0:case"node":this._scriptPath=t[1],i=t.slice(2);break;case"electron":R.defaultApp?(this._scriptPath=t[1],i=t.slice(2)):i=t.slice(1);break;case"user":i=t.slice(0);break;case"eval":i=t.slice(1);break;default:throw new Error(`unexpected parse option { from: '${r.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",i}parse(t,r){this._prepareForParse();let i=this._prepareUserArgs(t,r);return this._parseCommand([],i),this}async parseAsync(t,r){this._prepareForParse();let i=this._prepareUserArgs(t,r);return await this._parseCommand([],i),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
|
|
20
|
+
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(t,r,i){if(Ur.existsSync(t))return;let n=r?`searched for local subcommand relative to directory '${r}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",s=`'${t}' does not exist
|
|
21
21
|
- if '${i}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
22
22
|
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
23
|
-
- ${n}`;throw new Error(s)}_executeSubCommand(t,r){r=r.slice();let i=!1,n=[".js",".ts",".tsx",".mjs",".cjs"];function s(p,u){let l=
|
|
23
|
+
- ${n}`;throw new Error(s)}_executeSubCommand(t,r){r=r.slice();let i=!1,n=[".js",".ts",".tsx",".mjs",".cjs"];function s(p,u){let l=He.resolve(p,u);if(Ur.existsSync(l))return l;if(n.includes(He.extname(u)))return;let m=n.find(h=>Ur.existsSync(`${l}${h}`));if(m)return`${l}${m}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let o=t._executableFile||`${this._name}-${t._name}`,a=this._executableDir||"";if(this._scriptPath){let p;try{p=Ur.realpathSync(this._scriptPath)}catch{p=this._scriptPath}a=He.resolve(He.dirname(p),a)}if(a){let p=s(a,o);if(!p&&!t._executableFile&&this._scriptPath){let u=He.basename(this._scriptPath,He.extname(this._scriptPath));u!==this._name&&(p=s(a,`${u}-${t._name}`))}o=p||o}i=n.includes(He.extname(o));let c;R.platform!=="win32"?i?(r.unshift(o),r=xa(R.execArgv).concat(r),c=Un.spawn(R.argv[0],r,{stdio:"inherit"})):c=Un.spawn(o,r,{stdio:"inherit"}):(this._checkForMissingExecutable(o,a,t._name),r.unshift(o),r=xa(R.execArgv).concat(r),c=Un.spawn(R.execPath,r,{stdio:"inherit"})),c.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(u=>{R.on(u,()=>{c.killed===!1&&c.exitCode===null&&c.kill(u)})});let d=this._exitCallback;c.on("close",p=>{p=p??1,d?d(new Nn(p,"commander.executeSubCommandAsync","(close)")):R.exit(p)}),c.on("error",p=>{if(p.code==="ENOENT")this._checkForMissingExecutable(o,a,t._name);else if(p.code==="EACCES")throw new Error(`'${o}' not executable`);if(!d)R.exit(1);else{let u=new Nn(1,"commander.executeSubCommandAsync","(error)");u.nestedError=p,d(u)}}),this.runningCommand=c}_dispatchSubcommand(t,r,i){let n=this._findCommand(t);n||this.help({error:!0}),n._prepareForParse();let s;return s=this._chainOrCallSubCommandHook(s,n,"preSubcommand"),s=this._chainOrCall(s,()=>{if(n._executableHandler)this._executeSubCommand(n,r.concat(i));else return n._parseCommand(r,i)}),s}_dispatchHelpCommand(t){t||this.help();let r=this._findCommand(t);return r&&!r._executableHandler&&r.help(),this._dispatchSubcommand(t,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((t,r)=>{t.required&&this.args[r]==null&&this.missingArgument(t.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let t=(i,n,s)=>{let o=n;if(n!==null&&i.parseArg){let a=`error: command-argument value '${n}' is invalid for argument '${i.name()}'.`;o=this._callParseArg(i,n,s,a)}return o};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((i,n)=>{let s=i.defaultValue;i.variadic?n<this.args.length?(s=this.args.slice(n),i.parseArg&&(s=s.reduce((o,a)=>t(i,a,o),i.defaultValue))):s===void 0&&(s=[]):n<this.args.length&&(s=this.args[n],i.parseArg&&(s=t(i,s,i.defaultValue))),r[n]=s}),this.processedArgs=r}_chainOrCall(t,r){return t?.then&&typeof t.then=="function"?t.then(()=>r()):r()}_chainOrCallHooks(t,r){let i=t,n=[];return this._getCommandAndAncestors().reverse().filter(s=>s._lifeCycleHooks[r]!==void 0).forEach(s=>{s._lifeCycleHooks[r].forEach(o=>{n.push({hookedCommand:s,callback:o})})}),r==="postAction"&&n.reverse(),n.forEach(s=>{i=this._chainOrCall(i,()=>s.callback(s.hookedCommand,this))}),i}_chainOrCallSubCommandHook(t,r,i){let n=t;return this._lifeCycleHooks[i]!==void 0&&this._lifeCycleHooks[i].forEach(s=>{n=this._chainOrCall(n,()=>s(this,r))}),n}_parseCommand(t,r){let i=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),t=t.concat(i.operands),r=i.unknown,this.args=t.concat(r),t&&this._findCommand(t[0]))return this._dispatchSubcommand(t[0],t.slice(1),r);if(this._getHelpCommand()&&t[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(t[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,t,r);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(i.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let n=()=>{i.unknown.length>0&&this.unknownOption(i.unknown[0])},s=`command:${this.name()}`;if(this._actionHandler){n(),this._processArguments();let o;return o=this._chainOrCallHooks(o,"preAction"),o=this._chainOrCall(o,()=>this._actionHandler(this.processedArgs)),this.parent&&(o=this._chainOrCall(o,()=>{this.parent.emit(s,t,r)})),o=this._chainOrCallHooks(o,"postAction"),o}if(this.parent?.listenerCount(s))n(),this._processArguments(),this.parent.emit(s,t,r);else if(t.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",t,r);this.listenerCount("command:*")?this.emit("command:*",t,r):this.commands.length?this.unknownCommand():(n(),this._processArguments())}else this.commands.length?(n(),this.help({error:!0})):(n(),this._processArguments())}_findCommand(t){if(t)return this.commands.find(r=>r._name===t||r._aliases.includes(t))}_findOption(t){return this.options.find(r=>r.is(t))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(t=>{t.options.forEach(r=>{r.mandatory&&t.getOptionValue(r.attributeName())===void 0&&t.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let t=this.options.filter(i=>{let n=i.attributeName();return this.getOptionValue(n)===void 0?!1:this.getOptionValueSource(n)!=="default"});t.filter(i=>i.conflictsWith.length>0).forEach(i=>{let n=t.find(s=>i.conflictsWith.includes(s.attributeName()));n&&this._conflictingOption(i,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(t=>{t._checkForConflictingLocalOptions()})}parseOptions(t){let r=[],i=[],n=r;function s(p){return p.length>1&&p[0]==="-"}let o=p=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(p)?!this._getCommandAndAncestors().some(u=>u.options.map(l=>l.short).some(l=>/^-\d$/.test(l))):!1,a=null,c=null,d=0;for(;d<t.length||c;){let p=c??t[d++];if(c=null,p==="--"){n===i&&n.push(p),n.push(...t.slice(d));break}if(a&&(!s(p)||o(p))){this.emit(`option:${a.name()}`,p);continue}if(a=null,s(p)){let u=this._findOption(p);if(u){if(u.required){let l=t[d++];l===void 0&&this.optionMissingArgument(u),this.emit(`option:${u.name()}`,l)}else if(u.optional){let l=null;d<t.length&&(!s(t[d])||o(t[d]))&&(l=t[d++]),this.emit(`option:${u.name()}`,l)}else this.emit(`option:${u.name()}`);a=u.variadic?u:null;continue}}if(p.length>2&&p[0]==="-"&&p[1]!=="-"){let u=this._findOption(`-${p[1]}`);if(u){u.required||u.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${u.name()}`,p.slice(2)):(this.emit(`option:${u.name()}`),c=`-${p.slice(2)}`);continue}}if(/^--[^=]+=/.test(p)){let u=p.indexOf("="),l=this._findOption(p.slice(0,u));if(l&&(l.required||l.optional)){this.emit(`option:${l.name()}`,p.slice(u+1));continue}}if(n===r&&s(p)&&!(this.commands.length===0&&o(p))&&(n=i),(this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&i.length===0){if(this._findCommand(p)){r.push(p),i.push(...t.slice(d));break}else if(this._getHelpCommand()&&p===this._getHelpCommand().name()){r.push(p,...t.slice(d));break}else if(this._defaultCommandName){i.push(p,...t.slice(d));break}}if(this._passThroughOptions){n.push(p,...t.slice(d));break}n.push(p)}return{operands:r,unknown:i}}opts(){if(this._storeOptionsAsProperties){let t={},r=this.options.length;for(let i=0;i<r;i++){let n=this.options[i].attributeName();t[n]=n===this._versionOptionName?this._version:this[n]}return t}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((t,r)=>Object.assign(t,r.opts()),{})}error(t,r){this._outputConfiguration.outputError(`${t}
|
|
24
24
|
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
25
25
|
`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
26
|
-
`),this.outputHelp({error:!0}));let i=r||{},n=i.exitCode||1,s=i.code||"commander.error";this._exit(n,s,t)}_parseOptionsEnv(){this.options.forEach(t=>{if(t.envVar&&t.envVar in R.env){let r=t.attributeName();(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))&&(t.required||t.optional?this.emit(`optionEnv:${t.name()}`,R.env[t.envVar]):this.emit(`optionEnv:${t.name()}`))}})}_parseOptionsImplied(){let t=new
|
|
27
|
-
`),this._exit(0,"commander.version",t)}),this}description(t,r){return t===void 0&&r===void 0?this._description:(this._description=t,r&&(this._argsDescription=r),this)}summary(t){return t===void 0?this._summary:(this._summary=t,this)}alias(t){if(t===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(r=this.commands[this.commands.length-1]),t===r._name)throw new Error("Command alias can't be the same as its name");let i=this.parent?._findCommand(t);if(i){let n=[i.name()].concat(i.aliases()).join("|");throw new Error(`cannot add alias '${t}' to command '${this.name()}' as already have command '${n}'`)}return r._aliases.push(t),this}aliases(t){return t===void 0?this._aliases:(t.forEach(r=>this.alias(r)),this)}usage(t){if(t===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map(i=>
|
|
26
|
+
`),this.outputHelp({error:!0}));let i=r||{},n=i.exitCode||1,s=i.code||"commander.error";this._exit(n,s,t)}_parseOptionsEnv(){this.options.forEach(t=>{if(t.envVar&&t.envVar in R.env){let r=t.attributeName();(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))&&(t.required||t.optional?this.emit(`optionEnv:${t.name()}`,R.env[t.envVar]):this.emit(`optionEnv:${t.name()}`))}})}_parseOptionsImplied(){let t=new oy(this.options),r=i=>this.getOptionValue(i)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(i));this.options.filter(i=>i.implied!==void 0&&r(i.attributeName())&&t.valueFromOption(this.getOptionValue(i.attributeName()),i)).forEach(i=>{Object.keys(i.implied).filter(n=>!r(n)).forEach(n=>{this.setOptionValueWithSource(n,i.implied[n],"implied")})})}missingArgument(t){let r=`error: missing required argument '${t}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(t){let r=`error: option '${t.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(t){let r=`error: required option '${t.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(t,r){let i=o=>{let a=o.attributeName(),c=this.getOptionValue(a),d=this.options.find(u=>u.negate&&a===u.attributeName()),p=this.options.find(u=>!u.negate&&a===u.attributeName());return d&&(d.presetArg===void 0&&c===!1||d.presetArg!==void 0&&c===d.presetArg)?d:p||o},n=o=>{let a=i(o),c=a.attributeName();return this.getOptionValueSource(c)==="env"?`environment variable '${a.envVar}'`:`option '${a.flags}'`},s=`error: ${n(t)} cannot be used with ${n(r)}`;this.error(s,{code:"commander.conflictingOption"})}unknownOption(t){if(this._allowUnknownOption)return;let r="";if(t.startsWith("--")&&this._showSuggestionAfterError){let n=[],s=this;do{let o=s.createHelp().visibleOptions(s).filter(a=>a.long).map(a=>a.long);n=n.concat(o),s=s.parent}while(s&&!s._enablePositionalOptions);r=wa(t,n)}let i=`error: unknown option '${t}'${r}`;this.error(i,{code:"commander.unknownOption"})}_excessArguments(t){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,i=r===1?"":"s",s=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${i} but got ${t.length}.`;this.error(s,{code:"commander.excessArguments"})}unknownCommand(){let t=this.args[0],r="";if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(s=>{n.push(s.name()),s.alias()&&n.push(s.alias())}),r=wa(t,n)}let i=`error: unknown command '${t}'${r}`;this.error(i,{code:"commander.unknownCommand"})}version(t,r,i){if(t===void 0)return this._version;this._version=t,r=r||"-V, --version",i=i||"output the version number";let n=this.createOption(r,i);return this._versionOptionName=n.attributeName(),this._registerOption(n),this.on("option:"+n.name(),()=>{this._outputConfiguration.writeOut(`${t}
|
|
27
|
+
`),this._exit(0,"commander.version",t)}),this}description(t,r){return t===void 0&&r===void 0?this._description:(this._description=t,r&&(this._argsDescription=r),this)}summary(t){return t===void 0?this._summary:(this._summary=t,this)}alias(t){if(t===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(r=this.commands[this.commands.length-1]),t===r._name)throw new Error("Command alias can't be the same as its name");let i=this.parent?._findCommand(t);if(i){let n=[i.name()].concat(i.aliases()).join("|");throw new Error(`cannot add alias '${t}' to command '${this.name()}' as already have command '${n}'`)}return r._aliases.push(t),this}aliases(t){return t===void 0?this._aliases:(t.forEach(r=>this.alias(r)),this)}usage(t){if(t===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map(i=>iy(i));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=t,this}name(t){return t===void 0?this._name:(this._name=t,this)}helpGroup(t){return t===void 0?this._helpGroupHeading??"":(this._helpGroupHeading=t,this)}commandsGroup(t){return t===void 0?this._defaultCommandGroup??"":(this._defaultCommandGroup=t,this)}optionsGroup(t){return t===void 0?this._defaultOptionGroup??"":(this._defaultOptionGroup=t,this)}_initOptionGroup(t){this._defaultOptionGroup&&!t.helpGroupHeading&&t.helpGroup(this._defaultOptionGroup)}_initCommandGroup(t){this._defaultCommandGroup&&!t.helpGroup()&&t.helpGroup(this._defaultCommandGroup)}nameFromFilename(t){return this._name=He.basename(t,He.extname(t)),this}executableDir(t){return t===void 0?this._executableDir:(this._executableDir=t,this)}helpInformation(t){let r=this.createHelp(),i=this._getOutputContext(t);r.prepareContext({error:i.error,helpWidth:i.helpWidth,outputHasColors:i.hasColors});let n=r.formatHelp(this,r);return i.hasColors?n:this._outputConfiguration.stripColor(n)}_getOutputContext(t){t=t||{};let r=!!t.error,i,n,s;return r?(i=a=>this._outputConfiguration.writeErr(a),n=this._outputConfiguration.getErrHasColors(),s=this._outputConfiguration.getErrHelpWidth()):(i=a=>this._outputConfiguration.writeOut(a),n=this._outputConfiguration.getOutHasColors(),s=this._outputConfiguration.getOutHelpWidth()),{error:r,write:a=>(n||(a=this._outputConfiguration.stripColor(a)),i(a)),hasColors:n,helpWidth:s}}outputHelp(t){let r;typeof t=="function"&&(r=t,t=void 0);let i=this._getOutputContext(t),n={error:i.error,write:i.write,command:this};this._getCommandAndAncestors().reverse().forEach(o=>o.emit("beforeAllHelp",n)),this.emit("beforeHelp",n);let s=this.helpInformation({error:i.error});if(r&&(s=r(s),typeof s!="string"&&!Buffer.isBuffer(s)))throw new Error("outputHelp callback must return a string or a Buffer");i.write(s),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",n),this._getCommandAndAncestors().forEach(o=>o.emit("afterAllHelp",n))}helpOption(t,r){return typeof t=="boolean"?(t?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(t??"-h, --help",r??"display help for command"),(t||r)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(t){return this._helpOption=t,this._initOptionGroup(t),this}help(t){this.outputHelp(t);let r=Number(R.exitCode??0);r===0&&t&&typeof t!="function"&&t.error&&(r=1),this._exit(r,"commander.help","(outputHelp)")}addHelpText(t,r){let i=["beforeAll","before","after","afterAll"];if(!i.includes(t))throw new Error(`Unexpected value for position to addHelpText.
|
|
28
28
|
Expecting one of '${i.join("', '")}'`);let n=`${t}Help`;return this.on(n,s=>{let o;typeof r=="function"?o=r({error:s.error,command:s.command}):o=r,o&&s.write(`${o}
|
|
29
|
-
`)}),this}_outputHelpIfRequested(t){let r=this._getHelpOption();r&&t.find(n=>r.is(n))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function ya(e){return e.map(t=>{if(!t.startsWith("--inspect"))return t;let r,i="127.0.0.1",n="9229",s;return(s=t.match(/^(--inspect(-brk)?)$/))!==null?r=s[1]:(s=t.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=s[1],/^\d+$/.test(s[3])?n=s[3]:i=s[3]):(s=t.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=s[1],i=s[3],n=s[4]),r&&n!=="0"?`${r}=${i}:${parseInt(n)+1}`:t})}function Bn(){if(R.env.NO_COLOR||R.env.FORCE_COLOR==="0"||R.env.FORCE_COLOR==="false")return!1;if(R.env.FORCE_COLOR||R.env.CLICOLOR_FORCE!==void 0)return!0}Un.Command=Fn;Un.useColor=Bn});var wa=A(ge=>{"use strict";var{Argument:ga}=jr(),{Command:Nn}=fa(),{CommanderError:Zh,InvalidArgumentError:_a}=Qt(),{Help:Qh}=In(),{Option:ba}=Dn();ge.program=new Nn;ge.createCommand=e=>new Nn(e);ge.createOption=(e,t)=>new ba(e,t);ge.createArgument=(e,t)=>new ga(e,t);ge.Command=Nn;ge.Option=ba;ge.Argument=ga;ge.Help=Qh;ge.CommanderError=Zh;ge.InvalidArgumentError=_a;ge.InvalidOptionArgumentError=_a});var Y=A((tq,Gn)=>{"use strict";var Mr=process||{},Sa=Mr.argv||[],Lr=Mr.env||{},ey=!(Lr.NO_COLOR||Sa.includes("--no-color"))&&(!!Lr.FORCE_COLOR||Sa.includes("--color")||Mr.platform==="win32"||(Mr.stdout||{}).isTTY&&Lr.TERM!=="dumb"||!!Lr.CI),ty=(e,t,r=e)=>i=>{let n=""+i,s=n.indexOf(t,e.length);return~s?e+ry(n,t,r,s)+t:e+n+t},ry=(e,t,r,i)=>{let n="",s=0;do n+=e.substring(s,i)+r,s=i+t.length,i=e.indexOf(t,s);while(~i);return n+e.substring(s)},qa=(e=ey)=>{let t=e?ty:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};Gn.exports=qa();Gn.exports.createColors=qa});var Kn=A((pq,Ba)=>{"use strict";var Hn={to(e,t){return t?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`},move(e,t){let r="";return e<0?r+=`\x1B[${-e}D`:e>0&&(r+=`\x1B[${e}C`),t<0?r+=`\x1B[${-t}A`:t>0&&(r+=`\x1B[${t}B`),r},up:(e=1)=>`\x1B[${e}A`,down:(e=1)=>`\x1B[${e}B`,forward:(e=1)=>`\x1B[${e}C`,backward:(e=1)=>`\x1B[${e}D`,nextLine:(e=1)=>"\x1B[E".repeat(e),prevLine:(e=1)=>"\x1B[F".repeat(e),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},fy={up:(e=1)=>"\x1B[S".repeat(e),down:(e=1)=>"\x1B[T".repeat(e)},gy={screen:"\x1B[2J",up:(e=1)=>"\x1B[1J".repeat(e),down:(e=1)=>"\x1B[J".repeat(e),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(e){let t="";for(let r=0;r<e;r++)t+=this.line+(r<e-1?Hn.up():"");return e&&(t+=Hn.left),t}};Ba.exports={cursor:Hn,scroll:fy,erase:gy,beep:"\x07"}});var Sc=A((CA,vc)=>{"use strict";vc.exports=kc;kc.sync=Gf;var wc=he("fs");function Nf(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var i=0;i<r.length;i++){var n=r[i].toLowerCase();if(n&&e.substr(-n.length).toLowerCase()===n)return!0}return!1}function xc(e,t,r){return!e.isSymbolicLink()&&!e.isFile()?!1:Nf(t,r)}function kc(e,t,r){wc.stat(e,function(i,n){r(i,i?!1:xc(n,e,t))})}function Gf(e,t){return xc(wc.statSync(e),e,t)}});var Ec=A((EA,Cc)=>{"use strict";Cc.exports=$c;$c.sync=zf;var qc=he("fs");function $c(e,t,r){qc.stat(e,function(i,n){r(i,i?!1:Ac(n,t))})}function zf(e,t){return Ac(qc.statSync(e),t)}function Ac(e,t){return e.isFile()&&Vf(e,t)}function Vf(e,t){var r=e.mode,i=e.uid,n=e.gid,s=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),o=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),d=parseInt("001",8),p=a|c,u=r&d||r&c&&n===o||r&a&&i===s||r&p&&s===0;return u}});var Tc=A((TA,Pc)=>{"use strict";var PA=he("fs"),li;process.platform==="win32"||global.TESTING_WINDOWS?li=Sc():li=Ec();Pc.exports=ls;ls.sync=Wf;function ls(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){ls(e,t||{},function(s,o){s?n(s):i(o)})})}li(e,t||{},function(i,n){i&&(i.code==="EACCES"||t&&t.ignoreErrors)&&(i=null,n=!1),r(i,n)})}function Wf(e,t){try{return li.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Mc=A((IA,Lc)=>{"use strict";var It=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Ic=he("path"),Hf=It?";":":",Rc=Tc(),Oc=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),jc=(e,t)=>{let r=t.colon||Hf,i=e.match(/\//)||It&&e.match(/\\/)?[""]:[...It?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],n=It?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=It?n.split(r):[""];return It&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},Dc=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:i,pathExt:n,pathExtExe:s}=jc(e,t),o=[],a=d=>new Promise((p,u)=>{if(d===i.length)return t.all&&o.length?p(o):u(Oc(e));let l=i[d],m=/^".*"$/.test(l)?l.slice(1,-1):l,h=Ic.join(m,e),f=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+h:h;p(c(f,d,0))}),c=(d,p,u)=>new Promise((l,m)=>{if(u===n.length)return l(a(p+1));let h=n[u];Rc(d+h,{pathExt:s},(f,x)=>{if(!f&&x)if(t.all)o.push(d+h);else return l(d+h);return l(c(d,p,u+1))})});return r?a(0).then(d=>r(null,d),r):a(0)},Kf=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:i,pathExtExe:n}=jc(e,t),s=[];for(let o=0;o<r.length;o++){let a=r[o],c=/^".*"$/.test(a)?a.slice(1,-1):a,d=Ic.join(c,e),p=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let u=0;u<i.length;u++){let l=p+i[u];try{if(Rc.sync(l,{pathExt:n}))if(t.all)s.push(l);else return l}catch{}}}if(t.all&&s.length)return s;if(t.nothrow)return null;throw Oc(e)};Lc.exports=Dc;Dc.sync=Kf});var Bc=A((RA,ms)=>{"use strict";var Fc=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};ms.exports=Fc;ms.exports.default=Fc});var zc=A((OA,Gc)=>{"use strict";var Uc=he("path"),Yf=Mc(),Jf=Bc();function Nc(e,t){let r=e.options.env||process.env,i=process.cwd(),n=e.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd)}catch{}let o;try{o=Yf.sync(e.command,{path:r[Jf({env:r})],pathExt:t?Uc.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=Uc.resolve(n?e.options.cwd:"",o)),o}function Xf(e){return Nc(e)||Nc(e,!0)}Gc.exports=Xf});var Vc=A((jA,ys)=>{"use strict";var hs=/([()\][%!^"`<>&|;, *?])/g;function Zf(e){return e=e.replace(hs,"^$1"),e}function Qf(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(hs,"^$1"),t&&(e=e.replace(hs,"^$1")),e}ys.exports.command=Zf;ys.exports.argument=Qf});var Hc=A((DA,Wc)=>{"use strict";Wc.exports=/^#!(.*)/});var Yc=A((LA,Kc)=>{"use strict";var eg=Hc();Kc.exports=(e="")=>{let t=e.match(eg);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var Xc=A((MA,Jc)=>{"use strict";var fs=he("fs"),tg=Yc();function rg(e){let r=Buffer.alloc(150),i;try{i=fs.openSync(e,"r"),fs.readSync(i,r,0,150,0),fs.closeSync(i)}catch{}return tg(r.toString())}Jc.exports=rg});var tp=A((FA,ep)=>{"use strict";var ig=he("path"),Zc=zc(),Qc=Vc(),ng=Xc(),sg=process.platform==="win32",og=/\.(?:com|exe)$/i,ag=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function cg(e){e.file=Zc(e);let t=e.file&&ng(e.file);return t?(e.args.unshift(e.file),e.command=t,Zc(e)):e.file}function pg(e){if(!sg)return e;let t=cg(e),r=!og.test(t);if(e.options.forceShell||r){let i=ag.test(t);e.command=ig.normalize(e.command),e.command=Qc.command(e.command),e.args=e.args.map(s=>Qc.argument(s,i));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function dg(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let i={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?i:pg(i)}ep.exports=dg});var np=A((BA,ip)=>{"use strict";var gs=process.platform==="win32";function _s(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function ug(e,t){if(!gs)return;let r=e.emit;e.emit=function(i,n){if(i==="exit"){let s=rp(n,t);if(s)return r.call(e,"error",s)}return r.apply(e,arguments)}}function rp(e,t){return gs&&e===1&&!t.file?_s(t.original,"spawn"):null}function lg(e,t){return gs&&e===1&&!t.file?_s(t.original,"spawnSync"):null}ip.exports={hookChildProcess:ug,verifyENOENT:rp,verifyENOENTSync:lg,notFoundError:_s}});var ap=A((UA,Rt)=>{"use strict";var sp=he("child_process"),bs=tp(),ws=np();function op(e,t,r){let i=bs(e,t,r),n=sp.spawn(i.command,i.args,i.options);return ws.hookChildProcess(n,i),n}function mg(e,t,r){let i=bs(e,t,r),n=sp.spawnSync(i.command,i.args,i.options);return n.error=n.error||ws.verifyENOENTSync(n.status,i),n}Rt.exports=op;Rt.exports.spawn=op;Rt.exports.sync=mg;Rt.exports._parse=bs;Rt.exports._enoent=ws});var jo=A(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.DEFAULT_COLOR_MAP=void 0;zt.DEFAULT_COLOR_MAP={red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",white_bold:"\x1B[01m",reset:"\x1B[0m"};var Oo=class{constructor(t=zt.DEFAULT_COLOR_MAP){this.text="",this.colorMap=t}addCharsWithColor(t,r){let i=this.colorMap[t];this.text+=i!==void 0?`${i}${r}${this.colorMap.reset}`:r}renderConsole(){return this.text}};zt.default=Oo});var wr=A(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.DEFAULT_HEADER_ALIGNMENT=J.DEFAULT_ROW_ALIGNMENT=J.DEFAULT_HEADER_FONT_COLOR=J.DEFAULT_ROW_FONT_COLOR=J.COLORS=J.ALIGNMENTS=J.DEFAULT_TABLE_STYLE=J.DEFAULT_ROW_SEPARATOR=J.DEFAULT_COLUMN_LEN=void 0;J.DEFAULT_COLUMN_LEN=20;J.DEFAULT_ROW_SEPARATOR=!1;J.DEFAULT_TABLE_STYLE={headerTop:{left:"\u250C",mid:"\u252C",right:"\u2510",other:"\u2500"},headerBottom:{left:"\u251C",mid:"\u253C",right:"\u2524",other:"\u2500"},tableBottom:{left:"\u2514",mid:"\u2534",right:"\u2518",other:"\u2500"},vertical:"\u2502",rowSeparator:{left:"\u251C",mid:"\u253C",right:"\u2524",other:"\u2500"}};J.ALIGNMENTS=["right","left","center"];J.COLORS=["red","green","yellow","white","blue","magenta","cyan","white_bold","reset"];J.DEFAULT_ROW_FONT_COLOR="white";J.DEFAULT_HEADER_FONT_COLOR="white_bold";J.DEFAULT_ROW_ALIGNMENT="right";J.DEFAULT_HEADER_ALIGNMENT="center"});var im=A(Do=>{"use strict";Object.defineProperty(Do,"__esModule",{value:!0});var Ek=[{first:768,last:879},{first:1155,last:1158},{first:1160,last:1161},{first:1425,last:1469},{first:1471,last:1471},{first:1473,last:1474},{first:1476,last:1477},{first:1479,last:1479},{first:1536,last:1539},{first:1552,last:1557},{first:1611,last:1630},{first:1648,last:1648},{first:1750,last:1764},{first:1767,last:1768},{first:1770,last:1773},{first:1807,last:1807},{first:1809,last:1809},{first:1840,last:1866},{first:1958,last:1968},{first:2027,last:2035},{first:2305,last:2306},{first:2364,last:2364},{first:2369,last:2376},{first:2381,last:2381},{first:2385,last:2388},{first:2402,last:2403},{first:2433,last:2433},{first:2492,last:2492},{first:2497,last:2500},{first:2509,last:2509},{first:2530,last:2531},{first:2561,last:2562},{first:2620,last:2620},{first:2625,last:2626},{first:2631,last:2632},{first:2635,last:2637},{first:2672,last:2673},{first:2689,last:2690},{first:2748,last:2748},{first:2753,last:2757},{first:2759,last:2760},{first:2765,last:2765},{first:2786,last:2787},{first:2817,last:2817},{first:2876,last:2876},{first:2879,last:2879},{first:2881,last:2883},{first:2893,last:2893},{first:2902,last:2902},{first:2946,last:2946},{first:3008,last:3008},{first:3021,last:3021},{first:3134,last:3136},{first:3142,last:3144},{first:3146,last:3149},{first:3157,last:3158},{first:3260,last:3260},{first:3263,last:3263},{first:3270,last:3270},{first:3276,last:3277},{first:3298,last:3299},{first:3393,last:3395},{first:3405,last:3405},{first:3530,last:3530},{first:3538,last:3540},{first:3542,last:3542},{first:3633,last:3633},{first:3636,last:3642},{first:3655,last:3662},{first:3761,last:3761},{first:3764,last:3769},{first:3771,last:3772},{first:3784,last:3789},{first:3864,last:3865},{first:3893,last:3893},{first:3895,last:3895},{first:3897,last:3897},{first:3953,last:3966},{first:3968,last:3972},{first:3974,last:3975},{first:3984,last:3991},{first:3993,last:4028},{first:4038,last:4038},{first:4141,last:4144},{first:4146,last:4146},{first:4150,last:4151},{first:4153,last:4153},{first:4184,last:4185},{first:4448,last:4607},{first:4959,last:4959},{first:5906,last:5908},{first:5938,last:5940},{first:5970,last:5971},{first:6002,last:6003},{first:6068,last:6069},{first:6071,last:6077},{first:6086,last:6086},{first:6089,last:6099},{first:6109,last:6109},{first:6155,last:6157},{first:6313,last:6313},{first:6432,last:6434},{first:6439,last:6440},{first:6450,last:6450},{first:6457,last:6459},{first:6679,last:6680},{first:6912,last:6915},{first:6964,last:6964},{first:6966,last:6970},{first:6972,last:6972},{first:6978,last:6978},{first:7019,last:7027},{first:7616,last:7626},{first:7678,last:7679},{first:8203,last:8207},{first:8234,last:8238},{first:8288,last:8291},{first:8298,last:8303},{first:8400,last:8431},{first:12330,last:12335},{first:12441,last:12442},{first:43014,last:43014},{first:43019,last:43019},{first:43045,last:43046},{first:64286,last:64286},{first:65024,last:65039},{first:65056,last:65059},{first:65279,last:65279},{first:65529,last:65531},{first:68097,last:68099},{first:68101,last:68102},{first:68108,last:68111},{first:68152,last:68154},{first:68159,last:68159},{first:119143,last:119145},{first:119155,last:119170},{first:119173,last:119179},{first:119210,last:119213},{first:119362,last:119364},{first:917505,last:917505},{first:917536,last:917631},{first:917760,last:917999}];Do.default=Ek});var nm=A(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});var Pk=(e,t,r)=>{let i=0,n,s=r;if(e<t[0].first||e>t[s].last)return 0;for(;s>=i;)if(n=Math.floor((i+s)/2),e>t[n].last)i=n+1;else if(e<t[n].first)s=n-1;else return 1;return 0};Lo.default=Pk});var Mo=A(xr=>{"use strict";var om=xr&&xr.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xr,"__esModule",{value:!0});var sm=om(im()),Tk=om(nm()),Ik=e=>e===0?0:e<32||e>=127&&e<160?-1:(0,Tk.default)(e,sm.default,sm.default.length-1)?0:1+ +(e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141));xr.default=Ik});var am=A(kr=>{"use strict";var Rk=kr&&kr.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kr,"__esModule",{value:!0});var Ok=Rk(Mo()),jk=e=>{let t=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r),n=(0,Ok.default)(i);if(n<0)return-1;t+=n}return t};kr.default=jk});var pm=A(ct=>{"use strict";var cm=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ct,"__esModule",{value:!0});ct.wcswidth=ct.wcwidth=void 0;var Dk=cm(am());ct.wcswidth=Dk.default;var Lk=cm(Mo());ct.wcwidth=Lk.default});var Fo=A(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.findWidthInConsole=St.stripAnsi=void 0;var Mk=pm(),Fk=/\x1b\[\d{1,3}(;\d{1,3})*m/g,Bk=e=>e.replace(Fk,"");St.stripAnsi=Bk;var Uk=(e,t)=>{let r=0;return e=(0,St.stripAnsi)(e),t&&Object.entries(t).forEach(([i,n])=>{let s=new RegExp(i,"g");r+=(e.match(s)||[]).length*n,e=e.replace(i,"")}),r+=(0,Mk.wcswidth)(e),r};St.findWidthInConsole=Uk});var Uo=A(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.biggestWordInSentence=De.textWithPadding=De.splitTextIntoTextsOfMinLen=void 0;var Bo=Fo(),Nk=(e,t,r)=>{let i=[];return e.split(/[\n\r]/).forEach(s=>{let o=s.split(" "),a=[],c=0;o.forEach(d=>{let p=(0,Bo.findWidthInConsole)(d,r);c+p<=t?(c+=p+1,a.push(d)):(a.length>0&&i.push(a.join(" ")),a=[d],c=p+1)}),i.push(a.join(" "))}),i};De.splitTextIntoTextsOfMinLen=Nk;var Gk=(e,t,r,i)=>{let n=(0,Bo.findWidthInConsole)(e,i),s=Math.floor((r-n)/2),o=r-s-n;if(r<n){let a=(0,De.splitTextIntoTextsOfMinLen)(e,r);return a.length===1?e:a.map(c=>(0,De.textWithPadding)(c,t,r,i)).join(`
|
|
30
|
-
`)}switch(t){case"left":return e.concat(" ".repeat(r-n));case"center":return" ".repeat(s).concat(e).concat(" ".repeat(o));default:return" ".repeat(r-n).concat(e)}};
|
|
31
|
-
`)};
|
|
32
|
-
`),p=!1;for(let u=0;u<d.length;u++){let l=d[u];if(i+=l,p)p=!1;else if(p=l>="\uD800"&&l<="\uDBFF",p)continue;if(l===
|
|
33
|
-
`){s&&(i+=
|
|
34
|
-
`&&(n&&
|
|
35
|
-
`)}var ne=U(
|
|
29
|
+
`)}),this}_outputHelpIfRequested(t){let r=this._getHelpOption();r&&t.find(n=>r.is(n))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function xa(e){return e.map(t=>{if(!t.startsWith("--inspect"))return t;let r,i="127.0.0.1",n="9229",s;return(s=t.match(/^(--inspect(-brk)?)$/))!==null?r=s[1]:(s=t.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=s[1],/^\d+$/.test(s[3])?n=s[3]:i=s[3]):(s=t.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=s[1],i=s[3],n=s[4]),r&&n!=="0"?`${r}=${i}:${parseInt(n)+1}`:t})}function zn(){if(R.env.NO_COLOR||R.env.FORCE_COLOR==="0"||R.env.FORCE_COLOR==="false")return!1;if(R.env.FORCE_COLOR||R.env.CLICOLOR_FORCE!==void 0)return!0}Vn.Command=Gn;Vn.useColor=zn});var $a=A(_e=>{"use strict";var{Argument:va}=Br(),{Command:Wn}=ka(),{CommanderError:ay,InvalidArgumentError:Sa}=rr(),{Help:cy}=Dn(),{Option:qa}=Bn();_e.program=new Wn;_e.createCommand=e=>new Wn(e);_e.createOption=(e,t)=>new qa(e,t);_e.createArgument=(e,t)=>new va(e,t);_e.Command=Wn;_e.Option=qa;_e.Argument=va;_e.Help=cy;_e.CommanderError=ay;_e.InvalidArgumentError=Sa;_e.InvalidOptionArgumentError=Sa});var Y=A((aq,Hn)=>{"use strict";var Gr=process||{},Pa=Gr.argv||[],Nr=Gr.env||{},py=!(Nr.NO_COLOR||Pa.includes("--no-color"))&&(!!Nr.FORCE_COLOR||Pa.includes("--color")||Gr.platform==="win32"||(Gr.stdout||{}).isTTY&&Nr.TERM!=="dumb"||!!Nr.CI),dy=(e,t,r=e)=>i=>{let n=""+i,s=n.indexOf(t,e.length);return~s?e+uy(n,t,r,s)+t:e+n+t},uy=(e,t,r,i)=>{let n="",s=0;do n+=e.substring(s,i)+r,s=i+t.length,i=e.indexOf(t,s);while(~i);return n+e.substring(s)},Ta=(e=py)=>{let t=e?dy:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};Hn.exports=Ta();Hn.exports.createColors=Ta});var Zn=A((yq,Wa)=>{"use strict";var Xn={to(e,t){return t?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`},move(e,t){let r="";return e<0?r+=`\x1B[${-e}D`:e>0&&(r+=`\x1B[${e}C`),t<0?r+=`\x1B[${-t}A`:t>0&&(r+=`\x1B[${t}B`),r},up:(e=1)=>`\x1B[${e}A`,down:(e=1)=>`\x1B[${e}B`,forward:(e=1)=>`\x1B[${e}C`,backward:(e=1)=>`\x1B[${e}D`,nextLine:(e=1)=>"\x1B[E".repeat(e),prevLine:(e=1)=>"\x1B[F".repeat(e),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},qy={up:(e=1)=>"\x1B[S".repeat(e),down:(e=1)=>"\x1B[T".repeat(e)},$y={screen:"\x1B[2J",up:(e=1)=>"\x1B[1J".repeat(e),down:(e=1)=>"\x1B[J".repeat(e),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(e){let t="";for(let r=0;r<e;r++)t+=this.line+(r<e-1?Xn.up():"");return e&&(t+=Xn.left),t}};Wa.exports={cursor:Xn,scroll:qy,erase:$y,beep:"\x07"}});var Pc=A((OA,Ec)=>{"use strict";Ec.exports=Cc;Cc.sync=Zf;var $c=he("fs");function Xf(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var i=0;i<r.length;i++){var n=r[i].toLowerCase();if(n&&e.substr(-n.length).toLowerCase()===n)return!0}return!1}function Ac(e,t,r){return!e.isSymbolicLink()&&!e.isFile()?!1:Xf(t,r)}function Cc(e,t,r){$c.stat(e,function(i,n){r(i,i?!1:Ac(n,e,t))})}function Zf(e,t){return Ac($c.statSync(e),e,t)}});var jc=A((jA,Oc)=>{"use strict";Oc.exports=Ic;Ic.sync=Qf;var Tc=he("fs");function Ic(e,t,r){Tc.stat(e,function(i,n){r(i,i?!1:Rc(n,t))})}function Qf(e,t){return Rc(Tc.statSync(e),t)}function Rc(e,t){return e.isFile()&&eg(e,t)}function eg(e,t){var r=e.mode,i=e.uid,n=e.gid,s=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),o=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),d=parseInt("001",8),p=a|c,u=r&d||r&c&&n===o||r&a&&i===s||r&p&&s===0;return u}});var Lc=A((LA,Dc)=>{"use strict";var DA=he("fs"),gi;process.platform==="win32"||global.TESTING_WINDOWS?gi=Pc():gi=jc();Dc.exports=fs;fs.sync=tg;function fs(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){fs(e,t||{},function(s,o){s?n(s):i(o)})})}gi(e,t||{},function(i,n){i&&(i.code==="EACCES"||t&&t.ignoreErrors)&&(i=null,n=!1),r(i,n)})}function tg(e,t){try{return gi.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var zc=A((MA,Gc)=>{"use strict";var Rt=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Mc=he("path"),rg=Rt?";":":",Fc=Lc(),Bc=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Uc=(e,t)=>{let r=t.colon||rg,i=e.match(/\//)||Rt&&e.match(/\\/)?[""]:[...Rt?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],n=Rt?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Rt?n.split(r):[""];return Rt&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},Nc=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:i,pathExt:n,pathExtExe:s}=Uc(e,t),o=[],a=d=>new Promise((p,u)=>{if(d===i.length)return t.all&&o.length?p(o):u(Bc(e));let l=i[d],m=/^".*"$/.test(l)?l.slice(1,-1):l,h=Mc.join(m,e),f=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+h:h;p(c(f,d,0))}),c=(d,p,u)=>new Promise((l,m)=>{if(u===n.length)return l(a(p+1));let h=n[u];Fc(d+h,{pathExt:s},(f,x)=>{if(!f&&x)if(t.all)o.push(d+h);else return l(d+h);return l(c(d,p,u+1))})});return r?a(0).then(d=>r(null,d),r):a(0)},ig=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:i,pathExtExe:n}=Uc(e,t),s=[];for(let o=0;o<r.length;o++){let a=r[o],c=/^".*"$/.test(a)?a.slice(1,-1):a,d=Mc.join(c,e),p=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let u=0;u<i.length;u++){let l=p+i[u];try{if(Fc.sync(l,{pathExt:n}))if(t.all)s.push(l);else return l}catch{}}}if(t.all&&s.length)return s;if(t.nothrow)return null;throw Bc(e)};Gc.exports=Nc;Nc.sync=ig});var Wc=A((FA,gs)=>{"use strict";var Vc=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};gs.exports=Vc;gs.exports.default=Vc});var Jc=A((BA,Yc)=>{"use strict";var Hc=he("path"),ng=zc(),sg=Wc();function Kc(e,t){let r=e.options.env||process.env,i=process.cwd(),n=e.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd)}catch{}let o;try{o=ng.sync(e.command,{path:r[sg({env:r})],pathExt:t?Hc.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=Hc.resolve(n?e.options.cwd:"",o)),o}function og(e){return Kc(e)||Kc(e,!0)}Yc.exports=og});var Xc=A((UA,bs)=>{"use strict";var _s=/([()\][%!^"`<>&|;, *?])/g;function ag(e){return e=e.replace(_s,"^$1"),e}function cg(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(_s,"^$1"),t&&(e=e.replace(_s,"^$1")),e}bs.exports.command=ag;bs.exports.argument=cg});var Qc=A((NA,Zc)=>{"use strict";Zc.exports=/^#!(.*)/});var tp=A((GA,ep)=>{"use strict";var pg=Qc();ep.exports=(e="")=>{let t=e.match(pg);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var ip=A((zA,rp)=>{"use strict";var ws=he("fs"),dg=tp();function ug(e){let r=Buffer.alloc(150),i;try{i=ws.openSync(e,"r"),ws.readSync(i,r,0,150,0),ws.closeSync(i)}catch{}return dg(r.toString())}rp.exports=ug});var ap=A((VA,op)=>{"use strict";var lg=he("path"),np=Jc(),sp=Xc(),mg=ip(),hg=process.platform==="win32",yg=/\.(?:com|exe)$/i,fg=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function gg(e){e.file=np(e);let t=e.file&&mg(e.file);return t?(e.args.unshift(e.file),e.command=t,np(e)):e.file}function _g(e){if(!hg)return e;let t=gg(e),r=!yg.test(t);if(e.options.forceShell||r){let i=fg.test(t);e.command=lg.normalize(e.command),e.command=sp.command(e.command),e.args=e.args.map(s=>sp.argument(s,i));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function bg(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let i={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?i:_g(i)}op.exports=bg});var dp=A((WA,pp)=>{"use strict";var xs=process.platform==="win32";function ks(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function wg(e,t){if(!xs)return;let r=e.emit;e.emit=function(i,n){if(i==="exit"){let s=cp(n,t);if(s)return r.call(e,"error",s)}return r.apply(e,arguments)}}function cp(e,t){return xs&&e===1&&!t.file?ks(t.original,"spawn"):null}function xg(e,t){return xs&&e===1&&!t.file?ks(t.original,"spawnSync"):null}pp.exports={hookChildProcess:wg,verifyENOENT:cp,verifyENOENTSync:xg,notFoundError:ks}});var mp=A((HA,Ot)=>{"use strict";var up=he("child_process"),vs=ap(),Ss=dp();function lp(e,t,r){let i=vs(e,t,r),n=up.spawn(i.command,i.args,i.options);return Ss.hookChildProcess(n,i),n}function kg(e,t,r){let i=vs(e,t,r),n=up.spawnSync(i.command,i.args,i.options);return n.error=n.error||Ss.verifyENOENTSync(n.status,i),n}Ot.exports=lp;Ot.exports.spawn=lp;Ot.exports.sync=kg;Ot.exports._parse=vs;Ot.exports._enoent=Ss});var Fo=A(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.DEFAULT_COLOR_MAP=void 0;Vt.DEFAULT_COLOR_MAP={red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",white_bold:"\x1B[01m",reset:"\x1B[0m"};var Mo=class{constructor(t=Vt.DEFAULT_COLOR_MAP){this.text="",this.colorMap=t}addCharsWithColor(t,r){let i=this.colorMap[t];this.text+=i!==void 0?`${i}${r}${this.colorMap.reset}`:r}renderConsole(){return this.text}};Vt.default=Mo});var qr=A(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.DEFAULT_HEADER_ALIGNMENT=X.DEFAULT_ROW_ALIGNMENT=X.DEFAULT_HEADER_FONT_COLOR=X.DEFAULT_ROW_FONT_COLOR=X.COLORS=X.ALIGNMENTS=X.DEFAULT_TABLE_STYLE=X.DEFAULT_ROW_SEPARATOR=X.DEFAULT_COLUMN_LEN=void 0;X.DEFAULT_COLUMN_LEN=20;X.DEFAULT_ROW_SEPARATOR=!1;X.DEFAULT_TABLE_STYLE={headerTop:{left:"\u250C",mid:"\u252C",right:"\u2510",other:"\u2500"},headerBottom:{left:"\u251C",mid:"\u253C",right:"\u2524",other:"\u2500"},tableBottom:{left:"\u2514",mid:"\u2534",right:"\u2518",other:"\u2500"},vertical:"\u2502",rowSeparator:{left:"\u251C",mid:"\u253C",right:"\u2524",other:"\u2500"}};X.ALIGNMENTS=["right","left","center"];X.COLORS=["red","green","yellow","white","blue","magenta","cyan","white_bold","reset"];X.DEFAULT_ROW_FONT_COLOR="white";X.DEFAULT_HEADER_FONT_COLOR="white_bold";X.DEFAULT_ROW_ALIGNMENT="right";X.DEFAULT_HEADER_ALIGNMENT="center"});var cm=A(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});var Mk=[{first:768,last:879},{first:1155,last:1158},{first:1160,last:1161},{first:1425,last:1469},{first:1471,last:1471},{first:1473,last:1474},{first:1476,last:1477},{first:1479,last:1479},{first:1536,last:1539},{first:1552,last:1557},{first:1611,last:1630},{first:1648,last:1648},{first:1750,last:1764},{first:1767,last:1768},{first:1770,last:1773},{first:1807,last:1807},{first:1809,last:1809},{first:1840,last:1866},{first:1958,last:1968},{first:2027,last:2035},{first:2305,last:2306},{first:2364,last:2364},{first:2369,last:2376},{first:2381,last:2381},{first:2385,last:2388},{first:2402,last:2403},{first:2433,last:2433},{first:2492,last:2492},{first:2497,last:2500},{first:2509,last:2509},{first:2530,last:2531},{first:2561,last:2562},{first:2620,last:2620},{first:2625,last:2626},{first:2631,last:2632},{first:2635,last:2637},{first:2672,last:2673},{first:2689,last:2690},{first:2748,last:2748},{first:2753,last:2757},{first:2759,last:2760},{first:2765,last:2765},{first:2786,last:2787},{first:2817,last:2817},{first:2876,last:2876},{first:2879,last:2879},{first:2881,last:2883},{first:2893,last:2893},{first:2902,last:2902},{first:2946,last:2946},{first:3008,last:3008},{first:3021,last:3021},{first:3134,last:3136},{first:3142,last:3144},{first:3146,last:3149},{first:3157,last:3158},{first:3260,last:3260},{first:3263,last:3263},{first:3270,last:3270},{first:3276,last:3277},{first:3298,last:3299},{first:3393,last:3395},{first:3405,last:3405},{first:3530,last:3530},{first:3538,last:3540},{first:3542,last:3542},{first:3633,last:3633},{first:3636,last:3642},{first:3655,last:3662},{first:3761,last:3761},{first:3764,last:3769},{first:3771,last:3772},{first:3784,last:3789},{first:3864,last:3865},{first:3893,last:3893},{first:3895,last:3895},{first:3897,last:3897},{first:3953,last:3966},{first:3968,last:3972},{first:3974,last:3975},{first:3984,last:3991},{first:3993,last:4028},{first:4038,last:4038},{first:4141,last:4144},{first:4146,last:4146},{first:4150,last:4151},{first:4153,last:4153},{first:4184,last:4185},{first:4448,last:4607},{first:4959,last:4959},{first:5906,last:5908},{first:5938,last:5940},{first:5970,last:5971},{first:6002,last:6003},{first:6068,last:6069},{first:6071,last:6077},{first:6086,last:6086},{first:6089,last:6099},{first:6109,last:6109},{first:6155,last:6157},{first:6313,last:6313},{first:6432,last:6434},{first:6439,last:6440},{first:6450,last:6450},{first:6457,last:6459},{first:6679,last:6680},{first:6912,last:6915},{first:6964,last:6964},{first:6966,last:6970},{first:6972,last:6972},{first:6978,last:6978},{first:7019,last:7027},{first:7616,last:7626},{first:7678,last:7679},{first:8203,last:8207},{first:8234,last:8238},{first:8288,last:8291},{first:8298,last:8303},{first:8400,last:8431},{first:12330,last:12335},{first:12441,last:12442},{first:43014,last:43014},{first:43019,last:43019},{first:43045,last:43046},{first:64286,last:64286},{first:65024,last:65039},{first:65056,last:65059},{first:65279,last:65279},{first:65529,last:65531},{first:68097,last:68099},{first:68101,last:68102},{first:68108,last:68111},{first:68152,last:68154},{first:68159,last:68159},{first:119143,last:119145},{first:119155,last:119170},{first:119173,last:119179},{first:119210,last:119213},{first:119362,last:119364},{first:917505,last:917505},{first:917536,last:917631},{first:917760,last:917999}];Bo.default=Mk});var pm=A(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});var Fk=(e,t,r)=>{let i=0,n,s=r;if(e<t[0].first||e>t[s].last)return 0;for(;s>=i;)if(n=Math.floor((i+s)/2),e>t[n].last)i=n+1;else if(e<t[n].first)s=n-1;else return 1;return 0};Uo.default=Fk});var No=A($r=>{"use strict";var um=$r&&$r.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($r,"__esModule",{value:!0});var dm=um(cm()),Bk=um(pm()),Uk=e=>e===0?0:e<32||e>=127&&e<160?-1:(0,Bk.default)(e,dm.default,dm.default.length-1)?0:1+ +(e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141));$r.default=Uk});var lm=A(Ar=>{"use strict";var Nk=Ar&&Ar.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ar,"__esModule",{value:!0});var Gk=Nk(No()),zk=e=>{let t=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r),n=(0,Gk.default)(i);if(n<0)return-1;t+=n}return t};Ar.default=zk});var hm=A(dt=>{"use strict";var mm=dt&&dt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(dt,"__esModule",{value:!0});dt.wcswidth=dt.wcwidth=void 0;var Vk=mm(lm());dt.wcswidth=Vk.default;var Wk=mm(No());dt.wcwidth=Wk.default});var Go=A(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.findWidthInConsole=qt.stripAnsi=void 0;var Hk=hm(),Kk=/\x1b\[\d{1,3}(;\d{1,3})*m/g,Yk=e=>e.replace(Kk,"");qt.stripAnsi=Yk;var Jk=(e,t)=>{let r=0;return e=(0,qt.stripAnsi)(e),t&&Object.entries(t).forEach(([i,n])=>{let s=new RegExp(i,"g");r+=(e.match(s)||[]).length*n,e=e.replace(i,"")}),r+=(0,Hk.wcswidth)(e),r};qt.findWidthInConsole=Jk});var Vo=A(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.biggestWordInSentence=Fe.textWithPadding=Fe.splitTextIntoTextsOfMinLen=void 0;var zo=Go(),Xk=(e,t,r)=>{let i=[];return e.split(/[\n\r]/).forEach(s=>{let o=s.split(" "),a=[],c=0;o.forEach(d=>{let p=(0,zo.findWidthInConsole)(d,r);c+p<=t?(c+=p+1,a.push(d)):(a.length>0&&i.push(a.join(" ")),a=[d],c=p+1)}),i.push(a.join(" "))}),i};Fe.splitTextIntoTextsOfMinLen=Xk;var Zk=(e,t,r,i)=>{let n=(0,zo.findWidthInConsole)(e,i),s=Math.floor((r-n)/2),o=r-s-n;if(r<n){let a=(0,Fe.splitTextIntoTextsOfMinLen)(e,r);return a.length===1?e:a.map(c=>(0,Fe.textWithPadding)(c,t,r,i)).join(`
|
|
30
|
+
`)}switch(t){case"left":return e.concat(" ".repeat(r-n));case"center":return" ".repeat(s).concat(e).concat(" ".repeat(o));default:return" ".repeat(r-n).concat(e)}};Fe.textWithPadding=Zk;var Qk=(e,t)=>e.split(" ").reduce((r,i)=>Math.max(r,(0,zo.findWidthInConsole)(i,t)),0);Fe.biggestWordInSentence=Qk});var Cr=A(N=>{"use strict";Object.defineProperty(N,"__esModule",{value:!0});N.getWidthLimitedColumnsArray=N.createHeaderAsRow=N.renderTableHorizontalBorders=N.findLenOfColumn=N.createRow=N.createColumFromOnlyName=N.createTableHorizontalBorders=N.convertRawRowOptionsToStandard=N.evaluateCellText=N.cellText=void 0;var ym=Go(),Wo=Vo(),Ho=qr(),Wt=(e,t)=>Math.max(e,t),ev=e=>e==null?"":`${e}`;N.cellText=ev;var tv=(e,t)=>t?`${t(e)}`:(0,N.cellText)(e);N.evaluateCellText=tv;var rv=e=>{if(e)return{color:e.color,separator:e.separator||Ho.DEFAULT_ROW_SEPARATOR}};N.convertRawRowOptionsToStandard=rv;var iv=({left:e,mid:t,right:r,other:i},n)=>{let s=e;return n.forEach(o=>{s+=i.repeat(o+2),s+=t}),s=s.slice(0,-t.length),s+=r,s};N.createTableHorizontalBorders=iv;var nv=e=>({name:e,title:e});N.createColumFromOnlyName=nv;var sv=(e,t,r)=>({color:e,separator:r,text:t});N.createRow=sv;var ov=(e,t,r)=>{let i=e.name,n=e.title,s=e.transform,o=Wt(0,e?.minLen||0);return e.maxLen?(o=Wt(o,Wt(e.maxLen,(0,Wo.biggestWordInSentence)(n,r))),o=t.reduce((a,c)=>Wt(a,(0,Wo.biggestWordInSentence)((0,N.evaluateCellText)(c.text[i],s),r)),o),o):(o=Wt(o,(0,ym.findWidthInConsole)(n,r)),t.forEach(a=>{o=Wt(o,(0,ym.findWidthInConsole)((0,N.evaluateCellText)(a.text[i],s),r))}),o)};N.findLenOfColumn=ov;var av=(e,t)=>(0,N.createTableHorizontalBorders)(e,t);N.renderTableHorizontalBorders=av;var cv=(e,t)=>{let r=Ho.DEFAULT_HEADER_FONT_COLOR,i=e(r,{},!1);return t.forEach(n=>{i.text[n.name]=n.title}),i};N.createHeaderAsRow=cv;var pv=(e,t,r)=>{let i={};return e.forEach(n=>{i[n.name]=(0,Wo.splitTextIntoTextsOfMinLen)((0,N.cellText)(t.text[n.name]),n.length||Ho.DEFAULT_COLUMN_LEN,r)}),i};N.getWidthLimitedColumnsArray=pv});var fm=A(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.rawColumnToInternalColumn=Qe.objIfExists=void 0;var dv=qr(),uv=(e,t)=>t?{[e]:t}:{};Qe.objIfExists=uv;var lv=(e,t)=>{var r;return Object.assign(Object.assign(Object.assign(Object.assign({name:e.name,title:(r=e.title)!==null&&r!==void 0?r:e.name},(0,Qe.objIfExists)("color",e.color||t?.color)),(0,Qe.objIfExists)("maxLen",e.maxLen||t?.maxLen)),(0,Qe.objIfExists)("minLen",e.minLen||t?.minLen)),{alignment:e.alignment||t?.alignment||dv.DEFAULT_ROW_ALIGNMENT,transform:e.transform})};Qe.rawColumnToInternalColumn=lv});var gm=A(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.preProcessRows=Ht.preProcessColumns=void 0;var mv=Cr(),hv=e=>{e.computedColumns.length&&e.computedColumns.forEach(t=>{e.columns.some(i=>i.name===t.name)||(e.addColumn(Object.assign(Object.assign({},t),e.defaultColumnOptions)),e.rows.forEach((i,n,s)=>{let o=s.map(a=>a.text);i.text[t.name]=t.function(i.text,n,o)}))})},yv=e=>{e.enabledColumns.length&&(e.columns=e.columns.filter(t=>e.enabledColumns.includes(t.name)))},fv=e=>{e.disabledColumns.length&&(e.columns=e.columns.filter(t=>!e.disabledColumns.includes(t.name)))},gv=e=>{e.columns.forEach(t=>{t.length=(0,mv.findLenOfColumn)(t,e.rows,e.charLength)})},_v=e=>{hv(e),fv(e),yv(e),gv(e)};Ht.preProcessColumns=_v;var bv=e=>{let t=e.rows.filter(r=>e.filterFunction(r.text)).sort((r,i)=>e.sortFunction(r.text,i.text));e.rows=t};Ht.preProcessRows=bv});var Ko=A(ke=>{"use strict";var bm=ke&&ke.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ke,"__esModule",{value:!0});ke.printSimpleTable=ke.renderSimpleTable=ke.renderTable=void 0;var wm=bm(Fo()),xm=Vo(),Ae=qr(),ut=Cr(),wv=bm(Yo()),_m=gm(),xv=(e,t,r,i,n,s,o,a)=>{let c=new wm.default(o);return c.addCharsWithColor("",e.vertical),t.forEach(d=>{let u=r<i[d.name].length?(0,ut.cellText)(i[d.name][r]):"";c.addCharsWithColor(Ae.DEFAULT_ROW_FONT_COLOR," "),c.addCharsWithColor(n&&Ae.DEFAULT_HEADER_FONT_COLOR||d.color||s.color,(0,xm.textWithPadding)(u,d.alignment||Ae.DEFAULT_ROW_ALIGNMENT,d.length||Ae.DEFAULT_COLUMN_LEN,a)),c.addCharsWithColor("",` ${e.vertical}`)}),c.renderConsole()},km=(e,t,r,i,n,s)=>{let o=(0,ut.getWidthLimitedColumnsArray)(t,r,s),a=Object.values(o).reduce((d,p)=>Math.max(d,p.length),0),c=[];for(let d=0;d<a;d+=1){let p=xv(e,t,d,o,n,r,i,s);c.push(p)}return c},kv=(e,t)=>{let r=JSON.parse(JSON.stringify(e)),i={};return t.filter(n=>!!n.transform).forEach(n=>{i[n.name]=n.transform}),Object.keys(i).forEach(n=>{r.text[n]=i[n](r.text[n])}),r},vv=(e,t)=>{let r=[],i=kv(t,e.columns);return r=r.concat(km(e.tableStyle,e.columns,i,e.colorMap,void 0,e.charLength)),r},Sv=e=>{let t=[];if(e.title===void 0)return t;let r=()=>{let s=(o,a)=>o+a+2+1;return e.columns.map(o=>o.length||Ae.DEFAULT_COLUMN_LEN).reduce(s,1)},i=(0,xm.textWithPadding)(e.title,Ae.DEFAULT_HEADER_ALIGNMENT,r()),n=new wm.default(e.colorMap);return n.addCharsWithColor(Ae.DEFAULT_HEADER_FONT_COLOR,i),t.push(n.renderConsole()),t},qv=e=>{let t=[];t.push((0,ut.renderTableHorizontalBorders)(e.tableStyle.headerTop,e.columns.map(i=>i.length||Ae.DEFAULT_COLUMN_LEN)));let r=(0,ut.createHeaderAsRow)(ut.createRow,e.columns);return t=t.concat(km(e.tableStyle,e.columns,r,e.colorMap,!0)),t.push((0,ut.renderTableHorizontalBorders)(e.tableStyle.headerBottom,e.columns.map(i=>i.length||Ae.DEFAULT_COLUMN_LEN))),t},$v=e=>{let t=[];return t.push((0,ut.renderTableHorizontalBorders)(e.tableStyle.tableBottom,e.columns.map(r=>r.length||Ae.DEFAULT_COLUMN_LEN))),t},Av=(e,t)=>{let r=[],i=e.rows.length-1;return e.rows.indexOf(t)!==i&&t.separator&&r.push((0,ut.renderTableHorizontalBorders)(e.tableStyle.rowSeparator,e.columns.map(s=>s.length||Ae.DEFAULT_COLUMN_LEN))),r},Cv=e=>{(0,_m.preProcessColumns)(e),(0,_m.preProcessRows)(e);let t=[];return Sv(e).forEach(r=>t.push(r)),qv(e).forEach(r=>t.push(r)),e.rows.forEach(r=>{vv(e,r).forEach(i=>t.push(i)),Av(e,r).forEach(i=>t.push(i))}),$v(e).forEach(r=>t.push(r)),t.join(`
|
|
31
|
+
`)};ke.renderTable=Cv;var Ev=(e,t)=>{let r=new wv.default(t);return r.addRows(e),(0,ke.renderTable)(r)};ke.renderSimpleTable=Ev;var Pv=(e,t)=>{console.log((0,ke.renderSimpleTable)(e,t))};ke.printSimpleTable=Pv});var Yo=A(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});var Tv=Fo(),bn=qr(),Jo=Cr(),Xo=fm(),Iv=Ko(),Rv=()=>0,Ov=()=>!0,Zo=class{initSimple(t){this.columns=t.map(r=>({name:r,title:r,alignment:bn.DEFAULT_ROW_ALIGNMENT}))}initDetailed(t){var r;this.title=t?.title||this.title,this.tableStyle=Object.assign(Object.assign({},this.tableStyle),t?.style),this.sortFunction=t?.sort||this.sortFunction,this.filterFunction=t?.filter||this.filterFunction,this.enabledColumns=t?.enabledColumns||this.enabledColumns,this.disabledColumns=t?.disabledColumns||this.disabledColumns,this.computedColumns=t?.computedColumns||this.computedColumns,this.columns=((r=t?.columns)===null||r===void 0?void 0:r.map(i=>(0,Xo.rawColumnToInternalColumn)(i,t?.defaultColumnOptions)))||this.columns,this.rowSeparator=t?.rowSeparator||this.rowSeparator,this.charLength=t?.charLength||this.charLength,this.defaultColumnOptions=t?.defaultColumnOptions||this.defaultColumnOptions,t?.shouldDisableColors?this.colorMap={}:t?.colorMap&&(this.colorMap=Object.assign(Object.assign({},this.colorMap),t.colorMap)),t.rows!==void 0&&this.addRows(t.rows)}constructor(t){this.rows=[],this.columns=[],this.title=void 0,this.tableStyle=bn.DEFAULT_TABLE_STYLE,this.filterFunction=Ov,this.sortFunction=Rv,this.enabledColumns=[],this.disabledColumns=[],this.computedColumns=[],this.rowSeparator=bn.DEFAULT_ROW_SEPARATOR,this.colorMap=Tv.DEFAULT_COLOR_MAP,this.charLength={},this.defaultColumnOptions=void 0,this.transforms={},t instanceof Array?this.initSimple(t):typeof t=="object"&&this.initDetailed(t)}createColumnFromRow(t){let r=this.columns.map(i=>i.name);Object.keys(t).forEach(i=>{r.includes(i)||this.columns.push((0,Xo.rawColumnToInternalColumn)((0,Jo.createColumFromOnlyName)(i),this.defaultColumnOptions))})}addColumn(t){let r=typeof t=="string"?(0,Jo.createColumFromOnlyName)(t):t;this.columns.push((0,Xo.rawColumnToInternalColumn)(r,this.defaultColumnOptions))}addColumns(t){t.forEach(r=>{this.addColumn(r)})}addRow(t,r){this.createColumnFromRow(t),this.rows.push((0,Jo.createRow)(r?.color||bn.DEFAULT_ROW_FONT_COLOR,t,r?.separator!==void 0?r?.separator:this.rowSeparator))}addRows(t,r){t.forEach(i=>{this.addRow(i,r)})}renderTable(){return(0,Iv.renderTable)(this)}};Qo.default=Zo});var Sm=A(Er=>{"use strict";var jv=Er&&Er.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Er,"__esModule",{value:!0});var Dv=jv(Yo()),vm=Cr(),ea=class{constructor(t){this.table=new Dv.default(t)}addColumn(t){return this.table.addColumn(t),this}addColumns(t){return this.table.addColumns(t),this}addRow(t,r){return this.table.addRow(t,(0,vm.convertRawRowOptionsToStandard)(r)),this}addRows(t,r){return this.table.addRows(t,(0,vm.convertRawRowOptionsToStandard)(r)),this}printTable(){let t=this.table.renderTable();console.log(t)}render(){return this.table.renderTable()}};Er.default=ea});var Pr=A(Be=>{"use strict";var Lv=Be&&Be.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Be,"__esModule",{value:!0});Be.renderTable=Be.printTable=Be.Table=void 0;var Mv=Lv(Sm());Be.Table=Mv.default;var qm=Ko();Object.defineProperty(Be,"printTable",{enumerable:!0,get:function(){return qm.printSimpleTable}});Object.defineProperty(Be,"renderTable",{enumerable:!0,get:function(){return qm.renderSimpleTable}})});var Aa=U($a(),1),{program:XS,createCommand:ZS,createArgument:QS,createOption:eq,CommanderError:tq,InvalidArgumentError:rq,InvalidOptionArgumentError:iq,Command:Ca,Argument:nq,Option:Ea,Help:sq}=Aa.default;var Fh=U(Y(),1);import se from"fs";import le from"path";import{fileURLToPath as $k}from"url";import{styleText as Qn}from"util";import{stdout as ts,stdin as Ka}from"process";import*as rt from"readline";import Ay from"readline";var Ia=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let r=0;for(e.lastIndex=0;e.test(t);)r+=1;return t.length-r}})(),Ra=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,Oa=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var ly=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,my=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,ja=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,hy=/\t{1,1000}/y,Da=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),yy=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,fy=new RegExp("\\p{M}+","gu"),gy={limit:1/0,ellipsis:""},La=(e,t={},r={})=>{let i=t.limit??1/0,n=t.ellipsis??"",s=t?.ellipsisWidth??(n?La(n,gy,r).width:0),o=0,a=r.controlWidth??0,c=r.tabWidth??8,d=r.emojiWidth??2,p=2,u=r.regularWidth??1,l=r.wideWidth??p,m=[[yy,u],[ly,o],[my,a],[hy,c],[Da,d],[ja,l]],h=0,f=0,x=e.length,w=0,S=!1,g=x,I=Math.max(0,i-s),v=0,B=0,j=0,L=0;e:for(;;){if(B>v||f>=x&&f>h){let G=e.slice(v,B)||e.slice(h,f);w=0;for(let H of G.replaceAll(fy,"")){let $=H.codePointAt(0)||0;if(Ra($)?L=p:Oa($)?L=l:L=u,j+L>I&&(g=Math.min(g,Math.max(v,h)+w)),j+L>i){S=!0;break e}w+=H.length,j+=L}v=B=0}if(f>=x)break e;for(let G=0,H=m.length;G<H;G++){let[$,Ge]=m[G];if($.lastIndex=f,$.test(e)){if(w=$===ja?Ia(e.slice(f,$.lastIndex)):$===Da?1:$.lastIndex-f,L=w*Ge,j+L>I&&(g=Math.min(g,f+Math.floor((I-j)/Ge))),j+L>i){S=!0;break e}j+=L,v=h,B=f,f=h=$.lastIndex;continue e}}f+=1}return{width:S?I:j,index:S?g:x,truncated:S,ellipsed:S&&i>=s}},Ma=La;var _y={limit:1/0,ellipsis:"",ellipsisWidth:0},by=(e,t={})=>Ma(e,_y,t).width,ae=by;var zr="\x1B",Ga="\x9B",wy=39,Yn="\x07",za="[",xy="]",Va="m",Jn=`${xy}8;;`,Fa=new RegExp(`(?:\\${za}(?<code>\\d+)m|\\${Jn}(?<uri>.*)${Yn})`,"y"),Ba=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},Ua=e=>`${zr}${za}${e}${Va}`,Na=e=>`${zr}${Jn}${e}${Yn}`,Kn=(e,t,r)=>{let i=t[Symbol.iterator](),n=!1,s=!1,o=e.at(-1),a=o===void 0?0:ae(o),c=i.next(),d=i.next(),p=0;for(;!c.done;){let u=c.value,l=ae(u);a+l<=r?e[e.length-1]+=u:(e.push(u),a=0),(u===zr||u===Ga)&&(n=!0,s=t.startsWith(Jn,p+1)),n?s?u===Yn&&(n=!1,s=!1):u===Va&&(n=!1):(a+=l,a===r&&!d.done&&(e.push(""),a=0)),c=d,d=i.next(),p+=u.length}o=e.at(-1),!a&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},ky=e=>{let t=e.split(" "),r=t.length;for(;r&&!ae(t[r-1]);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},vy=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let i="",n,s,o=e.split(" "),a=[""],c=0;for(let u=0;u<o.length;u++){let l=o[u];if(r.trim!==!1){let h=a.at(-1)??"",f=h.trimStart();h.length!==f.length&&(a[a.length-1]=f,c=ae(f))}u!==0&&(c>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),c=0),(c||r.trim===!1)&&(a[a.length-1]+=" ",c++));let m=ae(l);if(r.hard&&m>t){let h=t-c,f=1+Math.floor((m-h-1)/t);Math.floor((m-1)/t)<f&&a.push(""),Kn(a,l,t),c=ae(a.at(-1)??"");continue}if(c+m>t&&c&&m){if(r.wordWrap===!1&&c<t){Kn(a,l,t),c=ae(a.at(-1)??"");continue}a.push(""),c=0}if(c+m>t&&r.wordWrap===!1){Kn(a,l,t),c=ae(a.at(-1)??"");continue}a[a.length-1]+=l,c+=m}r.trim!==!1&&(a=a.map(u=>ky(u)));let d=a.join(`
|
|
32
|
+
`),p=!1;for(let u=0;u<d.length;u++){let l=d[u];if(i+=l,p)p=!1;else if(p=l>="\uD800"&&l<="\uDBFF",p)continue;if(l===zr||l===Ga){Fa.lastIndex=u+1;let h=Fa.exec(d)?.groups;if(h?.code!==void 0){let f=Number.parseFloat(h.code);n=f===wy?void 0:f}else h?.uri!==void 0&&(s=h.uri.length===0?void 0:h.uri)}if(d[u+1]===`
|
|
33
|
+
`){s&&(i+=Na(""));let m=n?Ba(n):void 0;n&&m&&(i+=Ua(m))}else l===`
|
|
34
|
+
`&&(n&&Ba(n)&&(i+=Ua(n)),s&&(i+=Na(s)))}return i},Sy=/\r?\n/;function Te(e,t,r){return String(e).normalize().split(Sy).map(i=>vy(i,t,r)).join(`
|
|
35
|
+
`)}var ne=U(Zn(),1);import{ReadStream as Ha}from"tty";function Wr(e,t,r){if(!r.some(o=>!o.disabled))return e;let i=e+t,n=Math.max(r.length-1,0),s=i<0?n:i>n?0:i;return r[s].disabled?Wr(s,t<0?-1:1,r):s}var Cy=["up","down","left","right","space","enter","cancel"],Ey=["January","February","March","April","May","June","July","August","September","October","November","December"],ee={actions:new Set(Cy),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0,date:{monthNames:[...Ey],messages:{required:"Please enter a valid date",invalidMonth:"There are only 12 months in a year",invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};function rs(e,t){if(typeof e=="string")return ee.aliases.get(e)===t;for(let r of e)if(r!==void 0&&rs(r,t))return!0;return!1}function Py(e,t){if(e===t)return;let r=e.split(`
|
|
36
36
|
`),i=t.split(`
|
|
37
|
-
`),n=Math.max(r.length,i.length),s=[];for(let o=0;o<n;o++)r[o]!==i[o]&&s.push(o);return{lines:s,numLinesBefore:r.length,numLinesAfter:i.length,numLines:n}}var
|
|
37
|
+
`),n=Math.max(r.length,i.length),s=[];for(let o=0;o<n;o++)r[o]!==i[o]&&s.push(o);return{lines:s,numLinesBefore:r.length,numLinesAfter:i.length,numLines:n}}var Ty=globalThis.process.platform.startsWith("win"),es=Symbol("clack:cancel");function D(e){return e===es}function Vr(e,t){let r=e;r.isTTY&&r.setRawMode(t)}function Ya({input:e=Ka,output:t=ts,overwrite:r=!0,hideCursor:i=!0}={}){let n=rt.createInterface({input:e,output:t,prompt:"",tabSize:1});rt.emitKeypressEvents(e,n),e instanceof Ha&&e.isTTY&&e.setRawMode(!0);let s=(o,{name:a,sequence:c})=>{let d=String(o);if(rs([d,a,c],"cancel")){i&&t.write(ne.cursor.show),process.exit(0);return}if(!r)return;rt.moveCursor(t,a==="return"?0:-1,a==="return"?-1:0,()=>{rt.clearLine(t,1,()=>{e.once("keypress",s)})})};return i&&t.write(ne.cursor.hide),e.once("keypress",s),()=>{e.off("keypress",s),i&&t.write(ne.cursor.show),e instanceof Ha&&e.isTTY&&!Ty&&e.setRawMode(!1),n.terminal=!1,n.close()}}var ir=e=>"columns"in e&&typeof e.columns=="number"?e.columns:80,is=e=>"rows"in e&&typeof e.rows=="number"?e.rows:20;function nr(e,t,r,i=r,n){let s=ir(e??ts);return Te(t,s-r.length,{hard:!0,trim:!1}).split(`
|
|
38
38
|
`).map((o,a)=>{let c=n?n(o,a):o;return`${a===0?i:r}${c}`}).join(`
|
|
39
|
-
`)}var
|
|
40
|
-
`),
|
|
41
|
-
`).length-1;this.output.write(ne.cursor.move(-999,e*-1))}render(){let e=
|
|
39
|
+
`)}var Xr=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(e,t=!0){let{input:r=Ka,output:i=ts,render:n,signal:s,...o}=e;this.opts=o,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=t,this._abortSignal=s,this.input=r,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let r=this._subscribers.get(e)??[];r.push(t),this._subscribers.set(e,r)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let r=this._subscribers.get(e)??[],i=[];for(let n of r)n.cb(...t),n.once&&i.push(()=>r.splice(r.indexOf(n),1));for(let n of i)n()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),e(es);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=Ay.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),Vr(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(ne.cursor.show),this.output.off("resize",this.render),Vr(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(ne.cursor.show),this.output.off("resize",this.render),Vr(this.input,!1),e(es)})})}_isActionKey(e,t){return e===" "}_shouldSubmit(e,t){return!0}_setValue(e){this.value=e,this.emit("value",this.value)}_setUserInput(e,t){this.userInput=e??"",this.emit("userInput",this.userInput),t&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(e,t){if(this._track&&t.name!=="return"&&(t.name&&this._isActionKey(e,t)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),t?.name&&(!this._track&&ee.aliases.has(t.name)&&this.emit("cursor",ee.aliases.get(t.name)),ee.actions.has(t.name)&&this.emit("cursor",t.name)),e&&(e.toLowerCase()==="y"||e.toLowerCase()==="n")&&this.emit("confirm",e.toLowerCase()==="y"),this.emit("key",e?.toLowerCase(),t),t?.name==="return"&&this._shouldSubmit(e,t)){if(this.opts.validate){let r=this.opts.validate(this.value);r&&(this.error=r instanceof Error?r.message:r,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}rs([e,t?.name,t?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
40
|
+
`),Vr(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=Te(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
|
|
41
|
+
`).length-1;this.output.write(ne.cursor.move(-999,e*-1))}render(){let e=Te(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(ne.cursor.hide);else{let t=Py(this._prevFrame,e),r=is(this.output);if(this.restoreCursor(),t){let i=Math.max(0,t.numLinesAfter-r),n=Math.max(0,t.numLinesBefore-r),s=t.lines.find(o=>o>=i);if(s===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(ne.cursor.move(0,s-n)),this.output.write(ne.erase.lines(1));let o=e.split(`
|
|
42
42
|
`);this.output.write(o[s]),this._prevFrame=e,this.output.write(ne.cursor.move(0,o.length-s-1));return}else if(t.lines.length>1){if(i<n)s=i;else{let a=s-n;a>0&&this.output.write(ne.cursor.move(0,a))}this.output.write(ne.erase.down());let o=e.split(`
|
|
43
43
|
`).slice(s);this.output.write(o.join(`
|
|
44
|
-
`)),this._prevFrame=e;return}}this.output.write(ne.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}};var
|
|
45
|
-
`);x.push(B),w+=B.length}if(w>p){let v=0,B=0,j=w,L=e-S,G=(H,$)=>
|
|
44
|
+
`)),this._prevFrame=e;return}}this.output.write(ne.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}};var Hr=class extends Xr{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(ne.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};var Kr=class extends Xr{_mask="\u2022";get cursor(){return this._cursor}get masked(){return this.userInput.replaceAll(/./g,this._mask)}get userInputWithCursor(){if(this.state==="submit"||this.state==="cancel")return this.masked;let t=this.userInput;if(this.cursor>=t.length)return`${this.masked}${Qn(["inverse","hidden"],"_")}`;let r=this.masked,i=r.slice(0,this.cursor),n=r.slice(this.cursor);return`${i}${Qn("inverse",n[0])}${n.slice(1)}`}clear(){this._clearUserInput()}constructor({mask:t,...r}){super(r),this._mask=t??"\u2022",this.on("userInput",i=>{this._setValue(i)})}},Yr=class extends Xr{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(t){super(t,!1),this.options=t.options;let r=this.options.findIndex(({value:n})=>n===t.initialValue),i=r===-1?0:r;this.cursor=this.options[i].disabled?Wr(i,1,this.options):i,this.changeValue(),this.on("cursor",n=>{switch(n){case"left":case"up":this.cursor=Wr(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Wr(this.cursor,1,this.options);break}this.changeValue()})}};var Jr=class extends Xr{get userInputWithCursor(){if(this.state==="submit")return this.userInput;let t=this.userInput;if(this.cursor>=t.length)return`${this.userInput}\u2588`;let r=t.slice(0,this.cursor),[i,...n]=t.slice(this.cursor);return`${r}${Qn("inverse",i)}${n.join("")}`}get cursor(){return this._cursor}constructor(t){super({...t,initialUserInput:t.initialUserInput??t.initialValue}),this.on("userInput",r=>{this._setValue(r)}),this.on("finalize",()=>{this.value||(this.value=t.defaultValue),this.value===void 0&&(this.value="")})}};import{styleText as y,stripVTControlCharacters as Iq}from"util";import be from"process";var sr=U(Zn(),1);import{existsSync as Lq,lstatSync as Mq,readdirSync as Fq}from"fs";import{dirname as Uq,join as Nq}from"path";function Iy(){return be.platform!=="win32"?be.env.TERM!=="linux":!!be.env.CI||!!be.env.WT_SESSION||!!be.env.TERMINUS_SUBLIME||be.env.ConEmuTask==="{cmd::Cmder}"||be.env.TERM_PROGRAM==="Terminus-Sublime"||be.env.TERM_PROGRAM==="vscode"||be.env.TERM==="xterm-256color"||be.env.TERM==="alacritty"||be.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var ns=Iy(),Ry=()=>process.env.CI==="true";var M=(e,t)=>ns?e:t,Oy=M("\u25C6","*"),Xa=M("\u25A0","x"),Za=M("\u25B2","x"),ei=M("\u25C7","o"),jy=M("\u250C","T"),C=M("\u2502","|"),it=M("\u2514","\u2014"),Gq=M("\u2510","T"),zq=M("\u2518","\u2014"),ss=M("\u25CF",">"),Qr=M("\u25CB"," "),Vq=M("\u25FB","[\u2022]"),Wq=M("\u25FC","[+]"),Hq=M("\u25FB","[ ]"),Dy=M("\u25AA","\u2022"),Ja=M("\u2500","-"),Ly=M("\u256E","+"),My=M("\u251C","+"),Fy=M("\u256F","+"),By=M("\u2570","+"),Kq=M("\u256D","+"),Uy=M("\u25CF","\u2022"),Ny=M("\u25C6","*"),Gy=M("\u25B2","!"),zy=M("\u25A0","x"),ti=e=>{switch(e){case"initial":case"active":return y("cyan",Oy);case"cancel":return y("red",Xa);case"error":return y("yellow",Za);case"submit":return y("green",ei)}},Vy=e=>{switch(e){case"initial":case"active":return y("cyan",C);case"cancel":return y("red",C);case"error":return y("yellow",C);case"submit":return y("green",C)}},Wy=(e,t,r,i,n)=>{let s=t,o=0;for(let a=r;a<i;a++){let c=e[a];if(s=s-c.length,o++,s<=n)break}return{lineCount:s,removals:o}},Hy=({cursor:e,options:t,style:r,output:i=process.stdout,maxItems:n=Number.POSITIVE_INFINITY,columnPadding:s=0,rowPadding:o=4})=>{let a=ir(i)-s,c=is(i),d=y("dim","..."),p=Math.max(c-o,0),u=Math.max(Math.min(n,p),5),l=0;e>=u-3&&(l=Math.max(Math.min(e-u+3,t.length-u),0));let m=u<t.length&&l>0,h=u<t.length&&l+u<t.length,f=Math.min(l+u,t.length),x=[],w=0;m&&w++,h&&w++;let S=l+(m?1:0),g=f-(h?1:0);for(let v=S;v<g;v++){let B=Te(r(t[v],v===e),a,{hard:!0,trim:!1}).split(`
|
|
45
|
+
`);x.push(B),w+=B.length}if(w>p){let v=0,B=0,j=w,L=e-S,G=(H,$)=>Wy(x,j,H,$,p);m?({lineCount:j,removals:v}=G(0,L),j>p&&({lineCount:j,removals:B}=G(L+1,x.length))):({lineCount:j,removals:B}=G(L+1,x.length),j>p&&({lineCount:j,removals:v}=G(0,L))),v>0&&(m=!0,x.splice(0,v)),B>0&&(h=!0,x.splice(x.length-B,B))}let I=[];m&&I.push(d);for(let v of x)for(let B of v)I.push(B);return h&&I.push(d),I};var Ke=e=>{let t=e.active??"Yes",r=e.inactive??"No";return new Hr({active:t,inactive:r,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let i=e.withGuide??ee.withGuide,n=`${ti(this.state)} `,s=i?`${y("gray",C)} `:"",o=nr(e.output,e.message,s,n),a=`${i?`${y("gray",C)}
|
|
46
46
|
`:""}${o}
|
|
47
47
|
`,c=this.value?t:r;switch(this.state){case"submit":{let d=i?`${y("gray",C)} `:"";return`${a}${d}${y("dim",c)}`}case"cancel":{let d=i?`${y("gray",C)} `:"";return`${a}${d}${y(["strikethrough","dim"],c)}${i?`
|
|
48
|
-
${y("gray",C)}`:""}`}default:{let d=i?`${y("cyan",C)} `:"",p=i?y("cyan",
|
|
48
|
+
${y("gray",C)}`:""}`}default:{let d=i?`${y("cyan",C)} `:"",p=i?y("cyan",it):"";return`${a}${d}${this.value?`${y("green",ss)} ${t}`:`${y("dim",Qr)} ${y("dim",t)}`}${e.vertical?i?`
|
|
49
49
|
${y("cyan",C)} `:`
|
|
50
|
-
`:` ${y("dim","/")} `}${this.value?`${y("dim",
|
|
50
|
+
`:` ${y("dim","/")} `}${this.value?`${y("dim",Qr)} ${y("dim",r)}`:`${y("green",ss)} ${r}`}
|
|
51
51
|
${p}
|
|
52
|
-
`}}}}).prompt()};var b={message:(e=[],{symbol:t=y("gray",C),secondarySymbol:r=y("gray",C),output:i=process.stdout,spacing:n=1,withGuide:s}={})=>{let o=[],a=s??
|
|
52
|
+
`}}}}).prompt()};var b={message:(e=[],{symbol:t=y("gray",C),secondarySymbol:r=y("gray",C),output:i=process.stdout,spacing:n=1,withGuide:s}={})=>{let o=[],a=s??ee.withGuide,c=a?r:"",d=a?`${t} `:"",p=a?`${r} `:"";for(let l=0;l<n;l++)o.push(c);let u=Array.isArray(e)?e:e.split(`
|
|
53
53
|
`);if(u.length>0){let[l,...m]=u;l.length>0?o.push(`${d}${l}`):o.push(a?t:"");for(let h of m)h.length>0?o.push(`${p}${h}`):o.push(a?r:"")}i.write(`${o.join(`
|
|
54
54
|
`)}
|
|
55
|
-
`)},info:(e,t)=>{b.message(e,{...t,symbol:y("blue",
|
|
55
|
+
`)},info:(e,t)=>{b.message(e,{...t,symbol:y("blue",Uy)})},success:(e,t)=>{b.message(e,{...t,symbol:y("green",Ny)})},step:(e,t)=>{b.message(e,{...t,symbol:y("green",ei)})},warn:(e,t)=>{b.message(e,{...t,symbol:y("yellow",Gy)})},warning:(e,t)=>{b.warn(e,t)},error:(e,t)=>{b.message(e,{...t,symbol:y("red",zy)})}},O=(e="",t)=>{let r=t?.output??process.stdout,i=t?.withGuide??ee.withGuide?`${y("gray",it)} `:"";r.write(`${i}${y("red",e)}
|
|
56
56
|
|
|
57
|
-
`)},
|
|
58
|
-
`)},
|
|
59
|
-
${y("gray",
|
|
57
|
+
`)},ri=(e="",t)=>{let r=t?.output??process.stdout,i=t?.withGuide??ee.withGuide?`${y("gray",jy)} `:"";r.write(`${i}${e}
|
|
58
|
+
`)},Et=(e="",t)=>{let r=t?.output??process.stdout,i=t?.withGuide??ee.withGuide?`${y("gray",C)}
|
|
59
|
+
${y("gray",it)} `:"";r.write(`${i}${e}
|
|
60
60
|
|
|
61
|
-
`)};var
|
|
62
|
-
`),s=n.reduce((c,d)=>Math.max(ae(d),c),0),o=n.map(r).reduce((c,d)=>Math.max(ae(d),c),0),a=t-(o-s);return
|
|
61
|
+
`)};var Ky=e=>y("dim",e),Yy=(e,t,r)=>{let i={hard:!0,trim:!1},n=Te(e,t,i).split(`
|
|
62
|
+
`),s=n.reduce((c,d)=>Math.max(ae(d),c),0),o=n.map(r).reduce((c,d)=>Math.max(ae(d),c),0),a=t-(o-s);return Te(e,a,i)},W=(e="",t="",r)=>{let i=r?.output??be.stdout,n=r?.withGuide??ee.withGuide,s=r?.format??Ky,o=["",...Yy(e,ir(i)-6,s).split(`
|
|
63
63
|
`).map(s),""],a=ae(t),c=Math.max(o.reduce((l,m)=>{let h=ae(m);return h>l?h:l},0),a)+2,d=o.map(l=>`${y("gray",C)} ${l}${" ".repeat(c-ae(l))}${y("gray",C)}`).join(`
|
|
64
64
|
`),p=n?`${y("gray",C)}
|
|
65
|
-
`:"",u=n?
|
|
65
|
+
`:"",u=n?My:By;i.write(`${p}${y("green",ei)} ${y("reset",t)} ${y("gray",Ja.repeat(Math.max(c-a-1,1))+Ly)}
|
|
66
66
|
${d}
|
|
67
|
-
${y("gray",u+
|
|
68
|
-
`)},
|
|
69
|
-
`:""}${
|
|
70
|
-
`,i=this.userInputWithCursor,n=this.masked;switch(this.state){case"error":{let s=t?`${y("yellow",C)} `:"",o=t?`${y("yellow",
|
|
67
|
+
${y("gray",u+Ja.repeat(c+2)+Fy)}
|
|
68
|
+
`)},ii=e=>new Kr({validate:e.validate,mask:e.mask??Dy,signal:e.signal,input:e.input,output:e.output,render(){let t=e.withGuide??ee.withGuide,r=`${t?`${y("gray",C)}
|
|
69
|
+
`:""}${ti(this.state)} ${e.message}
|
|
70
|
+
`,i=this.userInputWithCursor,n=this.masked;switch(this.state){case"error":{let s=t?`${y("yellow",C)} `:"",o=t?`${y("yellow",it)} `:"",a=n??"";return e.clearOnError&&this.clear(),`${r.trim()}
|
|
71
71
|
${s}${a}
|
|
72
72
|
${o}${y("yellow",this.error)}
|
|
73
73
|
`}case"submit":{let s=t?`${y("gray",C)} `:"",o=n?y("dim",n):"";return`${r}${s}${o}`}case"cancel":{let s=t?`${y("gray",C)} `:"",o=n?y(["strikethrough","dim"],n):"";return`${r}${s}${o}${n&&t?`
|
|
74
|
-
${y("gray",C)}`:""}`}default:{let s=t?`${y("cyan",C)} `:"",o=t?y("cyan",
|
|
74
|
+
${y("gray",C)}`:""}`}default:{let s=t?`${y("cyan",C)} `:"",o=t?y("cyan",it):"";return`${r}${s}${i}
|
|
75
75
|
${o}
|
|
76
|
-
`}}}}).prompt();var
|
|
77
|
-
`);let V=
|
|
78
|
-
`);V.length>1&&r.write(
|
|
79
|
-
`);let de=0,
|
|
80
|
-
`):r.write(`${
|
|
81
|
-
`)),j(),p()};return{start:
|
|
76
|
+
`}}}}).prompt();var Jy=e=>y("magenta",e),E=({indicator:e="dots",onCancel:t,output:r=process.stdout,cancelMessage:i,errorMessage:n,frames:s=ns?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],delay:o=ns?80:120,signal:a,...c}={})=>{let d=Ry(),p,u,l=!1,m=!1,h="",f,x=performance.now(),w=ir(r),S=c?.styleFrame??Jy,g=V=>{let de=V>1?n??ee.messages.error:i??ee.messages.cancel;m=V===1,l&&(ze(de,V),m&&typeof t=="function"&&t())},I=()=>g(2),v=()=>g(1),B=()=>{process.on("uncaughtExceptionMonitor",I),process.on("unhandledRejection",I),process.on("SIGINT",v),process.on("SIGTERM",v),process.on("exit",g),a&&a.addEventListener("abort",v)},j=()=>{process.removeListener("uncaughtExceptionMonitor",I),process.removeListener("unhandledRejection",I),process.removeListener("SIGINT",v),process.removeListener("SIGTERM",v),process.removeListener("exit",g),a&&a.removeEventListener("abort",v)},L=()=>{if(f===void 0)return;d&&r.write(`
|
|
77
|
+
`);let V=Te(f,w,{hard:!0,trim:!1}).split(`
|
|
78
|
+
`);V.length>1&&r.write(sr.cursor.up(V.length-1)),r.write(sr.cursor.to(0)),r.write(sr.erase.down())},G=V=>V.replace(/\.+$/,""),H=V=>{let de=(performance.now()-V)/1e3,Ve=Math.floor(de/60),We=Math.floor(de%60);return Ve>0?`[${Ve}m ${We}s]`:`[${We}s]`},$=c.withGuide??ee.withGuide,Ge=(V="")=>{l=!0,p=Ya({output:r}),h=G(V),x=performance.now(),$&&r.write(`${y("gray",C)}
|
|
79
|
+
`);let de=0,Ve=0;B(),u=setInterval(()=>{if(d&&h===f)return;L(),f=h;let We=S(s[de]),Mr;if(d)Mr=`${We} ${h}...`;else if(e==="timer")Mr=`${We} ${h} ${H(x)}`;else{let Uh=".".repeat(Math.floor(Ve)).slice(0,3);Mr=`${We} ${h}${Uh}`}let Bh=Te(Mr,w,{hard:!0,trim:!1});r.write(Bh),de=de+1<s.length?de+1:0,Ve=Ve<4?Ve+.125:0},o)},ze=(V="",de=0,Ve=!1)=>{if(!l)return;l=!1,clearInterval(u),L();let We=de===0?y("green",ei):de===1?y("red",Xa):y("red",Za);h=V??h,Ve||(e==="timer"?r.write(`${We} ${h} ${H(x)}
|
|
80
|
+
`):r.write(`${We} ${h}
|
|
81
|
+
`)),j(),p()};return{start:Ge,stop:(V="")=>ze(V,0),message:(V="")=>{h=G(V??h)},cancel:(V="")=>ze(V,1),error:(V="")=>ze(V,2),clear:()=>ze("",0,!0),get isCancelled(){return m}}},Yq={light:M("\u2500","-"),heavy:M("\u2501","="),block:M("\u2588","#")};var Zr=(e,t)=>e.includes(`
|
|
82
82
|
`)?e.split(`
|
|
83
83
|
`).map(r=>t(r)).join(`
|
|
84
|
-
`):t(e),
|
|
84
|
+
`):t(e),ni=e=>{let t=(r,i)=>{let n=r.label??String(r.value);switch(i){case"disabled":return`${y("gray",Qr)} ${Zr(n,s=>y("gray",s))}${r.hint?` ${y("dim",`(${r.hint??"disabled"})`)}`:""}`;case"selected":return`${Zr(n,s=>y("dim",s))}`;case"active":return`${y("green",ss)} ${n}${r.hint?` ${y("dim",`(${r.hint})`)}`:""}`;case"cancelled":return`${Zr(n,s=>y(["strikethrough","dim"],s))}`;default:return`${y("dim",Qr)} ${Zr(n,s=>y("dim",s))}`}};return new Yr({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let r=e.withGuide??ee.withGuide,i=`${ti(this.state)} `,n=`${Vy(this.state)} `,s=nr(e.output,e.message,n,i),o=`${r?`${y("gray",C)}
|
|
85
85
|
`:""}${s}
|
|
86
|
-
`;switch(this.state){case"submit":{let a=r?`${y("gray",C)} `:"",c=
|
|
87
|
-
${y("gray",C)}`:""}`}default:{let a=r?`${y("cyan",C)} `:"",c=r?y("cyan",
|
|
88
|
-
`).length,p=r?2:1;return`${o}${a}${
|
|
86
|
+
`;switch(this.state){case"submit":{let a=r?`${y("gray",C)} `:"",c=nr(e.output,t(this.options[this.cursor],"selected"),a);return`${o}${c}`}case"cancel":{let a=r?`${y("gray",C)} `:"",c=nr(e.output,t(this.options[this.cursor],"cancelled"),a);return`${o}${c}${r?`
|
|
87
|
+
${y("gray",C)}`:""}`}default:{let a=r?`${y("cyan",C)} `:"",c=r?y("cyan",it):"",d=o.split(`
|
|
88
|
+
`).length,p=r?2:1;return`${o}${a}${Hy({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:a.length,rowPadding:d+p,style:(u,l)=>t(u,u.disabled?"disabled":l?"active":"inactive")}).join(`
|
|
89
89
|
${a}`)}
|
|
90
90
|
${c}
|
|
91
|
-
`}}}}).prompt()};var
|
|
92
|
-
`:""}${
|
|
93
|
-
`,i=e.placeholder?y("inverse",e.placeholder[0])+y("dim",e.placeholder.slice(1)):y(["inverse","hidden"],"_"),n=this.userInput?this.userInputWithCursor:i,s=this.value??"";switch(this.state){case"error":{let o=this.error?` ${y("yellow",this.error)}`:"",a=t?`${y("yellow",C)} `:"",c=t?y("yellow",
|
|
91
|
+
`}}}}).prompt()};var Jq=`${y("gray",C)} `;var ue=e=>new Jr({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??ee.withGuide,r=`${`${t?`${y("gray",C)}
|
|
92
|
+
`:""}${ti(this.state)} `}${e.message}
|
|
93
|
+
`,i=e.placeholder?y("inverse",e.placeholder[0])+y("dim",e.placeholder.slice(1)):y(["inverse","hidden"],"_"),n=this.userInput?this.userInputWithCursor:i,s=this.value??"";switch(this.state){case"error":{let o=this.error?` ${y("yellow",this.error)}`:"",a=t?`${y("yellow",C)} `:"",c=t?y("yellow",it):"";return`${r.trim()}
|
|
94
94
|
${a}${n}
|
|
95
95
|
${c}${o}
|
|
96
96
|
`}case"submit":{let o=s?` ${y("dim",s)}`:"",a=t?y("gray",C):"";return`${r}${a}${o}`}case"cancel":{let o=s?` ${y(["strikethrough","dim"],s)}`:"",a=t?y("gray",C):"";return`${r}${a}${o}${s.trim()?`
|
|
97
|
-
${a}`:""}`}default:{let o=t?`${y("cyan",C)} `:"",a=t?y("cyan",
|
|
97
|
+
${a}`:""}`}default:{let o=t?`${y("cyan",C)} `:"",a=t?y("cyan",it):"";return`${r}${o}${n}
|
|
98
98
|
${a}
|
|
99
|
-
`}}}}).prompt();function K(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}import{fileURLToPath as
|
|
100
|
-
`?(o-=1,a+=1):d==="u"&&t[a+2]==="{"?a=t.indexOf("}",a+3):a+=
|
|
101
|
-
`]),
|
|
99
|
+
`}}}}).prompt();function K(e){if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}import{fileURLToPath as Xy}from"url";var Pt=(e,t)=>{let r=as(Zy(e));if(typeof r!="string")throw new TypeError(`${t} must be a string or a file URL: ${r}.`);return r},Zy=e=>os(e)?e.toString():e,os=e=>typeof e!="string"&&e&&Object.getPrototypeOf(e)===String.prototype,as=e=>e instanceof URL?Xy(e):e;var si=(e,t=[],r={})=>{let i=Pt(e,"First argument"),[n,s]=K(t)?[[],t]:[t,r];if(!Array.isArray(n))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${n}`);if(n.some(c=>typeof c=="object"&&c!==null))throw new TypeError(`Second argument must be an array of strings: ${n}`);let o=n.map(String),a=o.find(c=>c.includes("\0"));if(a!==void 0)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${a}`);if(!K(s))throw new TypeError(`Last argument must be an options object: ${s}`);return[i,o,s]};import{ChildProcess as of}from"child_process";import{StringDecoder as Qy}from"string_decoder";var{toString:Qa}=Object.prototype,ec=e=>Qa.call(e)==="[object ArrayBuffer]",Q=e=>Qa.call(e)==="[object Uint8Array]",Ye=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),ef=new TextEncoder,tc=e=>ef.encode(e),tf=new TextDecoder,oi=e=>tf.decode(e),rc=(e,t)=>rf(e,t).join(""),rf=(e,t)=>{if(t==="utf8"&&e.every(s=>typeof s=="string"))return e;let r=new Qy(t),i=e.map(s=>typeof s=="string"?tc(s):s).map(s=>r.write(s)),n=r.end();return n===""?i:[...i,n]},or=e=>e.length===1&&Q(e[0])?e[0]:cs(nf(e)),nf=e=>e.map(t=>typeof t=="string"?tc(t):t),cs=e=>{let t=new Uint8Array(sf(e)),r=0;for(let i of e)t.set(i,r),r+=i.length;return t},sf=e=>{let t=0;for(let r of e)t+=r.length;return t};var oc=e=>Array.isArray(e)&&Array.isArray(e.raw),ac=(e,t)=>{let r=[];for(let[s,o]of e.entries())r=af({templates:e,expressions:t,tokens:r,index:s,template:o});if(r.length===0)throw new TypeError("Template script must not be empty");let[i,...n]=r;return[i,n,{}]},af=({templates:e,expressions:t,tokens:r,index:i,template:n})=>{if(n===void 0)throw new TypeError(`Invalid backslash sequence: ${e.raw[i]}`);let{nextTokens:s,leadingWhitespaces:o,trailingWhitespaces:a}=cf(n,e.raw[i]),c=nc(r,s,o);if(i===t.length)return c;let d=t[i],p=Array.isArray(d)?d.map(u=>sc(u)):[sc(d)];return nc(c,p,a)},cf=(e,t)=>{if(t.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let r=[],i=0,n=ic.has(t[0]);for(let o=0,a=0;o<e.length;o+=1,a+=1){let c=t[a];if(ic.has(c))i!==o&&r.push(e.slice(i,o)),i=o+1;else if(c==="\\"){let d=t[a+1];d===`
|
|
100
|
+
`?(o-=1,a+=1):d==="u"&&t[a+2]==="{"?a=t.indexOf("}",a+3):a+=pf[d]??1}}let s=i===e.length;return s||r.push(e.slice(i)),{nextTokens:r,leadingWhitespaces:n,trailingWhitespaces:s}},ic=new Set([" "," ","\r",`
|
|
101
|
+
`]),pf={x:3,u:5},nc=(e,t,r)=>r||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],sc=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(K(e)&&("stdout"in e||"isMaxBuffer"in e))return df(e);throw e instanceof of||Object.prototype.toString.call(e)==="[object Promise]"?new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."):new TypeError(`Unexpected "${t}" in template expression`)},df=({stdout:e})=>{if(typeof e=="string")return e;if(Q(e))return oi(e);throw e===void 0?new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`):new TypeError(`Unexpected "${typeof e}" stdout in template expression`)};import{spawnSync as hx}from"child_process";import{debuglog as uf}from"util";import ps from"process";var ve=e=>ai.includes(e),ai=[ps.stdin,ps.stdout,ps.stderr],we=["stdin","stdout","stderr"],ci=e=>we[e]??`stdio[${e}]`;var pc=e=>{let t={...e};for(let r of ls)t[r]=ds(e,r);return t},ds=(e,t)=>{let r=Array.from({length:lf(e)+1}),i=mf(e[t],r,t);return _f(i,t)},lf=({stdio:e})=>Array.isArray(e)?Math.max(e.length,we.length):we.length,mf=(e,t,r)=>K(e)?hf(e,t,r):t.fill(e),hf=(e,t,r)=>{for(let i of Object.keys(e).sort(yf))for(let n of ff(i,r,t))t[n]=e[i];return t},yf=(e,t)=>cc(e)<cc(t)?1:-1,cc=e=>e==="stdout"||e==="stderr"?0:e==="all"?2:1,ff=(e,t,r)=>{if(e==="ipc")return[r.length-1];let i=us(e);if(i===void 0||i===0)throw new TypeError(`"${t}.${e}" is invalid.
|
|
102
102
|
It must be "${t}.stdout", "${t}.stderr", "${t}.all", "${t}.ipc", or "${t}.fd3", "${t}.fd4" (and so on).`);if(i>=r.length)throw new TypeError(`"${t}.${e}" is invalid: that file descriptor does not exist.
|
|
103
|
-
Please set the "stdio" option to ensure that file descriptor exists.`);return i==="all"?[1,2]:[i]},
|
|
104
|
-
`).map(t=>
|
|
105
|
-
`),
|
|
103
|
+
Please set the "stdio" option to ensure that file descriptor exists.`);return i==="all"?[1,2]:[i]},us=e=>{if(e==="all")return e;if(we.includes(e))return we.indexOf(e);let t=gf.exec(e);if(t!==null)return Number(t[1])},gf=/^fd(\d+)$/,_f=(e,t)=>e.map(r=>r===void 0?wf[t]:r),bf=uf("execa").enabled?"full":"none",wf={lines:!1,buffer:!0,maxBuffer:1e3*1e3*100,verbose:bf,stripFinalNewline:!0},ls=["lines","buffer","maxBuffer","verbose","stripFinalNewline"],Je=(e,t)=>t==="ipc"?e.at(-1):e[t];var Tt=({verbose:e},t)=>ms(e,t)!=="none",It=({verbose:e},t)=>!["none","short"].includes(ms(e,t)),dc=({verbose:e},t)=>{let r=ms(e,t);return pi(r)?r:void 0},ms=(e,t)=>t===void 0?xf(e):Je(e,t),xf=e=>e.find(t=>pi(t))??di.findLast(t=>e.includes(t)),pi=e=>typeof e=="function",di=["none","short","full"];import{inspect as Gf}from"util";import{platform as kf}from"process";import{stripVTControlCharacters as vf}from"util";var uc=(e,t)=>{let r=[e,...t],i=r.join(" "),n=r.map(s=>Ef(lc(s))).join(" ");return{command:i,escapedCommand:n}},ar=e=>vf(e).split(`
|
|
104
|
+
`).map(t=>lc(t)).join(`
|
|
105
|
+
`),lc=e=>e.replaceAll($f,t=>Sf(t)),Sf=e=>{let t=Af[e];if(t!==void 0)return t;let r=e.codePointAt(0),i=r.toString(16);return r<=Cf?`\\u${i.padStart(4,"0")}`:`\\U${i}`},qf=()=>{try{return new RegExp("\\p{Separator}|\\p{Other}","gu")}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}},$f=qf(),Af={" ":" ","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},Cf=65535,Ef=e=>Pf.test(e)?e:kf==="win32"?`"${e.replaceAll('"','""')}"`:`'${e.replaceAll("'","'\\''")}'`,Pf=/^[\w./-]+$/;import mc from"process";function hs(){let{env:e}=mc,{TERM:t,TERM_PROGRAM:r}=e;return mc.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var hc={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},yc={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},Tf={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},If={...hc,...yc},Rf={...hc,...Tf},Of=hs(),jf=Of?If:Rf,ui=jf,S$=Object.entries(yc);import Df from"tty";var Lf=Df?.WriteStream?.prototype?.hasColors?.()??!1,q=(e,t)=>{if(!Lf)return n=>n;let r=`\x1B[${e}m`,i=`\x1B[${t}m`;return n=>{let s=n+"",o=s.indexOf(i);if(o===-1)return r+s+i;let a=r,c=0,p=(t===22?i:"")+r;for(;o!==-1;)a+=s.slice(c,o)+p,c=o+i.length,o=s.indexOf(i,c);return a+=s.slice(c)+i,a}},A$=q(0,0),fc=q(1,22),C$=q(2,22),E$=q(3,23),P$=q(4,24),T$=q(53,55),I$=q(7,27),R$=q(8,28),O$=q(9,29),j$=q(30,39),D$=q(31,39),L$=q(32,39),M$=q(33,39),F$=q(34,39),B$=q(35,39),U$=q(36,39),N$=q(37,39),li=q(90,39),G$=q(40,49),z$=q(41,49),V$=q(42,49),W$=q(43,49),H$=q(44,49),K$=q(45,49),Y$=q(46,49),J$=q(47,49),X$=q(100,49),gc=q(91,39),Z$=q(92,39),_c=q(93,39),Q$=q(94,39),eA=q(95,39),tA=q(96,39),rA=q(97,39),iA=q(101,49),nA=q(102,49),sA=q(103,49),oA=q(104,49),aA=q(105,49),cA=q(106,49),pA=q(107,49);var xc=({type:e,message:t,timestamp:r,piped:i,commandId:n,result:{failed:s=!1}={},options:{reject:o=!0}})=>{let a=Mf(r),c=Ff[e]({failed:s,reject:o,piped:i}),d=Bf[e]({reject:o});return`${li(`[${a}]`)} ${li(`[${n}]`)} ${d(c)} ${d(t)}`},Mf=e=>`${mi(e.getHours(),2)}:${mi(e.getMinutes(),2)}:${mi(e.getSeconds(),2)}.${mi(e.getMilliseconds(),3)}`,mi=(e,t)=>String(e).padStart(t,"0"),bc=({failed:e,reject:t})=>e?t?ui.cross:ui.warning:ui.tick,Ff={command:({piped:e})=>e?"|":"$",output:()=>" ",ipc:()=>"*",error:bc,duration:bc},wc=e=>e,Bf={command:()=>fc,output:()=>wc,ipc:()=>wc,error:({reject:e})=>e?gc:_c,duration:()=>li};var kc=(e,t,r)=>{let i=dc(t,r);return e.map(({verboseLine:n,verboseObject:s})=>Uf(n,s,i)).filter(n=>n!==void 0).map(n=>Nf(n)).join("")},Uf=(e,t,r)=>{if(r===void 0)return e;let i=r(e,t);if(typeof i=="string")return i},Nf=e=>e.endsWith(`
|
|
106
106
|
`)?e:`${e}
|
|
107
|
-
`;var
|
|
108
|
-
`).map(r=>
|
|
109
|
-
${
|
|
110
|
-
${
|
|
111
|
-
${
|
|
112
|
-
Available signal numbers: ${
|
|
107
|
+
`;var Ie=({type:e,verboseMessage:t,fdNumber:r,verboseInfo:i,result:n})=>{let s=zf({type:e,result:n,verboseInfo:i}),o=Vf(t,s),a=kc(o,i,r);a!==""&&console.warn(a.slice(0,-1))},zf=({type:e,result:t,verboseInfo:{escapedCommand:r,commandId:i,rawOptions:{piped:n=!1,...s}}})=>({type:e,escapedCommand:r,commandId:`${i}`,timestamp:new Date,piped:n,result:t,options:s}),Vf=(e,t)=>e.split(`
|
|
108
|
+
`).map(r=>Wf({...t,message:r})),Wf=e=>({verboseLine:xc(e),verboseObject:e}),hi=e=>{let t=typeof e=="string"?e:Gf(e);return ar(t).replaceAll(" "," ".repeat(Hf))},Hf=2;var vc=(e,t)=>{Tt(t)&&Ie({type:"command",verboseMessage:e,verboseInfo:t})};var Sc=(e,t,r)=>{Jf(e);let i=Kf(e);return{verbose:e,escapedCommand:t,commandId:i,rawOptions:r}},Kf=e=>Tt({verbose:e})?Yf++:void 0,Yf=0n,Jf=e=>{for(let t of e){if(t===!1)throw new TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(t===!0)throw new TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!di.includes(t)&&!pi(t)){let r=di.map(i=>`'${i}'`).join(", ");throw new TypeError(`The "verbose" option must not be ${t}. Allowed values are: ${r} or a function.`)}}};import{hrtime as qc}from"process";var yi=()=>qc.bigint(),ys=e=>Number(qc.bigint()-e)/1e6;var fi=(e,t,r)=>{let i=yi(),{command:n,escapedCommand:s}=uc(e,t),o=ds(r,"verbose"),a=Sc(o,s,{...r});return vc(s,a),{command:n,escapedCommand:s,startTime:i,verboseInfo:a}};var Sd=U(mp(),1);import R_ from"path";import vd from"process";import wi from"process";import ft from"path";function _i(e={}){let{env:t=process.env,platform:r=process.platform}=e;return r!=="win32"?"PATH":Object.keys(t).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"}import{promisify as vg}from"util";import{execFile as Sg,execFileSync as XA}from"child_process";import hp from"path";import{fileURLToPath as qg}from"url";var eC=vg(Sg);function bi(e){return e instanceof URL?qg(e):e}function yp(e){return{*[Symbol.iterator](){let t=hp.resolve(bi(e)),r;for(;r!==t;)yield t,r=t,t=hp.resolve(t,"..")}}}var tC=10*1024*1024;var $g=({cwd:e=wi.cwd(),path:t=wi.env[_i()],preferLocal:r=!0,execPath:i=wi.execPath,addExecPath:n=!0}={})=>{let s=ft.resolve(bi(e)),o=[],a=t.split(ft.delimiter);return r&&Ag(o,a,s),n&&Cg(o,a,i,s),t===""||t===ft.delimiter?`${o.join(ft.delimiter)}${t}`:[...o,t].join(ft.delimiter)},Ag=(e,t,r)=>{for(let i of yp(r)){let n=ft.join(i,"node_modules/.bin");t.includes(n)||e.push(n)}},Cg=(e,t,r,i)=>{let n=ft.resolve(i,bi(r),"..");t.includes(n)||e.push(n)},fp=({env:e=wi.env,...t}={})=>{e={...e};let r=_i({env:e});return t.path=e[r],e[r]=$g(t),e};import{setTimeout as Gg}from"timers/promises";var gp=(e,t,r)=>{let i=r?pr:cr,n=e instanceof Se?{}:{cause:e};return new i(t,n)},Se=class extends Error{},_p=(e,t)=>{Object.defineProperty(e.prototype,"name",{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,wp,{value:!0,writable:!1,enumerable:!1,configurable:!1})},bp=e=>xi(e)&&wp in e,wp=Symbol("isExecaError"),xi=e=>Object.prototype.toString.call(e)==="[object Error]",cr=class extends Error{};_p(cr,cr.name);var pr=class extends Error{};_p(pr,pr.name);import{constants as dr}from"os";import{constants as Ig}from"os";var xp=()=>{let e=vp-kp+1;return Array.from({length:e},Eg)},Eg=(e,t)=>({name:`SIGRT${t+1}`,number:kp+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),kp=34,vp=64;import{constants as Pg}from"os";var Sp=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var qs=()=>{let e=xp();return[...Sp,...e].map(Tg)},Tg=({name:e,number:t,description:r,action:i,forced:n=!1,standard:s})=>{let{signals:{[e]:o}}=Pg,a=o!==void 0;return{name:e,number:a?o:t,description:r,supported:a,action:i,forced:n,standard:s}};var Rg=()=>{let e=qs();return Object.fromEntries(e.map(Og))},Og=({name:e,number:t,description:r,supported:i,action:n,forced:s,standard:o})=>[e,{name:e,number:t,description:r,supported:i,action:n,forced:s,standard:o}],qp=Rg(),jg=()=>{let e=qs(),t=65,r=Array.from({length:t},(i,n)=>Dg(n,e));return Object.assign({},...r)},Dg=(e,t)=>{let r=Lg(e,t);if(r===void 0)return{};let{name:i,description:n,supported:s,action:o,forced:a,standard:c}=r;return{[e]:{name:i,number:e,description:n,supported:s,action:o,forced:a,standard:c}}},Lg=(e,t)=>{let r=t.find(({name:i})=>Ig.signals[i]===e);return r!==void 0?r:t.find(i=>i.number===e)},_C=jg();var Ap=e=>{let t="option `killSignal`";if(e===0)throw new TypeError(`Invalid ${t}: 0 cannot be used.`);return Ep(e,t)},Cp=e=>e===0?e:Ep(e,"`subprocess.kill()`'s argument"),Ep=(e,t)=>{if(Number.isInteger(e))return Mg(e,t);if(typeof e=="string")return Bg(e,t);throw new TypeError(`Invalid ${t} ${String(e)}: it must be a string or an integer.
|
|
109
|
+
${$s()}`)},Mg=(e,t)=>{if($p.has(e))return $p.get(e);throw new TypeError(`Invalid ${t} ${e}: this signal integer does not exist.
|
|
110
|
+
${$s()}`)},Fg=()=>new Map(Object.entries(dr.signals).reverse().map(([e,t])=>[t,e])),$p=Fg(),Bg=(e,t)=>{if(e in dr.signals)return e;throw e.toUpperCase()in dr.signals?new TypeError(`Invalid ${t} '${e}': please rename it to '${e.toUpperCase()}'.`):new TypeError(`Invalid ${t} '${e}': this signal name does not exist.
|
|
111
|
+
${$s()}`)},$s=()=>`Available signal names: ${Ug()}.
|
|
112
|
+
Available signal numbers: ${Ng()}.`,Ug=()=>Object.keys(dr.signals).sort().map(e=>`'${e}'`).join(", "),Ng=()=>[...new Set(Object.values(dr.signals).sort((e,t)=>e-t))].join(", "),ki=e=>qp[e].description;var Pp=e=>{if(e===!1)return e;if(e===!0)return zg;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},zg=1e3*5,Tp=({kill:e,options:{forceKillAfterDelay:t,killSignal:r},onInternalError:i,context:n,controller:s},o,a)=>{let{signal:c,error:d}=Vg(o,a,r);Wg(d,i);let p=e(c);return Hg({kill:e,signal:c,forceKillAfterDelay:t,killSignal:r,killResult:p,context:n,controller:s}),p},Vg=(e,t,r)=>{let[i=r,n]=xi(e)?[void 0,e]:[e,t];if(typeof i!="string"&&!Number.isInteger(i))throw new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(i)}`);if(n!==void 0&&!xi(n))throw new TypeError(`The second argument is optional. If specified, it must be an error instance: ${n}`);return{signal:Cp(i),error:n}},Wg=(e,t)=>{e!==void 0&&t.reject(e)},Hg=async({kill:e,signal:t,forceKillAfterDelay:r,killSignal:i,killResult:n,context:s,controller:o})=>{t===i&&n&&As({kill:e,forceKillAfterDelay:r,context:s,controllerSignal:o.signal})},As=async({kill:e,forceKillAfterDelay:t,context:r,controllerSignal:i})=>{if(t!==!1)try{await Gg(t,void 0,{signal:i}),e("SIGKILL")&&(r.isForcefullyTerminated??=!0)}catch{}};import{once as Kg}from"events";var vi=async(e,t)=>{e.aborted||await Kg(e,"abort",{signal:t})};var Ip=({cancelSignal:e})=>{if(e!==void 0&&Object.prototype.toString.call(e)!=="[object AbortSignal]")throw new Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(e)}`)},Rp=({subprocess:e,cancelSignal:t,gracefulCancel:r,context:i,controller:n})=>t===void 0||r?[]:[Yg(e,t,i,n)],Yg=async(e,t,r,{signal:i})=>{throw await vi(t,i),r.terminationReason??="cancel",e.kill(),t.reason};import{scheduler as f_}from"timers/promises";import{promisify as m_}from"util";var jt=({methodName:e,isSubprocess:t,ipc:r,isConnected:i})=>{Jg(e,t,r),Cs(e,t,i)},Jg=(e,t,r)=>{if(!r)throw new Error(`${qe(e,t)} can only be used if the \`ipc\` option is \`true\`.`)},Cs=(e,t,r)=>{if(!r)throw new Error(`${qe(e,t)} cannot be used: the ${nt(t)} has already exited or disconnected.`)},Op=e=>{throw new Error(`${qe("getOneMessage",e)} could not complete: the ${nt(e)} exited or disconnected.`)},jp=e=>{throw new Error(`${qe("sendMessage",e)} failed: the ${nt(e)} is sending a message too, instead of listening to incoming messages.
|
|
113
113
|
This can be fixed by both sending a message and listening to incoming messages at the same time:
|
|
114
114
|
|
|
115
115
|
const [receivedMessage] = await Promise.all([
|
|
116
|
-
${
|
|
117
|
-
${
|
|
118
|
-
]);`)},
|
|
116
|
+
${qe("getOneMessage",e)},
|
|
117
|
+
${qe("sendMessage",e,"message, {strict: true}")},
|
|
118
|
+
]);`)},Si=(e,t)=>new Error(`${qe("sendMessage",t)} failed when sending an acknowledgment response to the ${nt(t)}.`,{cause:e}),Dp=e=>{throw new Error(`${qe("sendMessage",e)} failed: the ${nt(e)} is not listening to incoming messages.`)},Lp=e=>{throw new Error(`${qe("sendMessage",e)} failed: the ${nt(e)} exited without listening to incoming messages.`)},Mp=()=>new Error(`\`cancelSignal\` aborted: the ${nt(!0)} disconnected.`),Fp=()=>{throw new Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},Bp=({error:e,methodName:t,isSubprocess:r})=>{if(e.code==="EPIPE")throw new Error(`${qe(t,r)} cannot be used: the ${nt(r)} is disconnecting.`,{cause:e})},Up=({error:e,methodName:t,isSubprocess:r,message:i})=>{if(Xg(e))throw new Error(`${qe(t,r)}'s argument type is invalid: the message cannot be serialized: ${String(i)}.`,{cause:e})},Xg=({code:e,message:t})=>Zg.has(e)||Qg.some(r=>t.includes(r)),Zg=new Set(["ERR_MISSING_ARGS","ERR_INVALID_ARG_TYPE"]),Qg=["could not be cloned","circular structure","call stack size exceeded"],qe=(e,t,r="")=>e==="cancelSignal"?"`cancelSignal`'s `controller.abort()`":`${e_(t)}${e}(${r})`,e_=e=>e?"":"subprocess.",nt=e=>e?"parent process":"subprocess",Dt=e=>{e.connected&&e.disconnect()};var Re=()=>{let e={},t=new Promise((r,i)=>{Object.assign(e,{resolve:r,reject:i})});return Object.assign(t,e)};var $i=(e,t="stdin")=>{let{options:i,fileDescriptors:n}=Oe.get(e),s=Np(n,t,!0),o=e.stdio[s];if(o===null)throw new TypeError(Gp(s,t,i,!0));return o},Lt=(e,t="stdout")=>{let{options:i,fileDescriptors:n}=Oe.get(e),s=Np(n,t,!1),o=s==="all"?e.all:e.stdio[s];if(o==null)throw new TypeError(Gp(s,t,i,!1));return o},Oe=new WeakMap,Np=(e,t,r)=>{let i=t_(t,r);return r_(i,t,r,e),i},t_=(e,t)=>{let r=us(e);if(r!==void 0)return r;let{validOptions:i,defaultValue:n}=t?{validOptions:'"stdin"',defaultValue:"stdin"}:{validOptions:'"stdout", "stderr", "all"',defaultValue:"stdout"};throw new TypeError(`"${ur(t)}" must not be "${e}".
|
|
119
119
|
It must be ${i} or "fd3", "fd4" (and so on).
|
|
120
|
-
It is optional and defaults to "${n}".`)},
|
|
121
|
-
Please set the "stdio" option to ensure that file descriptor exists.`);if(n.direction==="input"&&!r)throw new TypeError(`"${
|
|
122
|
-
Please set this option with "pipe" instead.`},
|
|
123
|
-
Please rename it to ${
|
|
124
|
-
Please rename it to one of: ${r}.`)},
|
|
125
|
-
${e.message}`,e}},
|
|
120
|
+
It is optional and defaults to "${n}".`)},r_=(e,t,r,i)=>{let n=i[zp(e)];if(n===void 0)throw new TypeError(`"${ur(r)}" must not be ${t}. That file descriptor does not exist.
|
|
121
|
+
Please set the "stdio" option to ensure that file descriptor exists.`);if(n.direction==="input"&&!r)throw new TypeError(`"${ur(r)}" must not be ${t}. It must be a readable stream, not writable.`);if(n.direction!=="input"&&r)throw new TypeError(`"${ur(r)}" must not be ${t}. It must be a writable stream, not readable.`)},Gp=(e,t,r,i)=>{if(e==="all"&&!r.all)return`The "all" option must be true to use "from: 'all'".`;let{optionName:n,optionValue:s}=i_(e,r);return`The "${n}: ${qi(s)}" option is incompatible with using "${ur(i)}: ${qi(t)}".
|
|
122
|
+
Please set this option with "pipe" instead.`},i_=(e,{stdin:t,stdout:r,stderr:i,stdio:n})=>{let s=zp(e);return s===0&&t!==void 0?{optionName:"stdin",optionValue:t}:s===1&&r!==void 0?{optionName:"stdout",optionValue:r}:s===2&&i!==void 0?{optionName:"stderr",optionValue:i}:{optionName:`stdio[${s}]`,optionValue:n[s]}},zp=e=>e==="all"?1:e,ur=e=>e?"to":"from",qi=e=>typeof e=="string"?`'${e}'`:typeof e=="number"?`${e}`:"Stream";import{once as p_}from"events";import{addAbortListener as n_}from"events";var gt=(e,t,r)=>{let i=e.getMaxListeners();i===0||i===Number.POSITIVE_INFINITY||(e.setMaxListeners(i+t),n_(r,()=>{e.setMaxListeners(e.getMaxListeners()-t)}))};import{EventEmitter as a_}from"events";import{once as s_}from"events";import{scheduler as o_}from"timers/promises";var Ai=(e,t)=>{t&&Es(e)},Es=e=>{e.refCounted()},Ci=(e,t)=>{t&&Ps(e)},Ps=e=>{e.unrefCounted()},Vp=(e,t)=>{t&&(Ps(e),Ps(e))},Wp=(e,t)=>{t&&(Es(e),Es(e))};var Hp=async({anyProcess:e,channel:t,isSubprocess:r,ipcEmitter:i},n)=>{if(Jp(n)||Zp(n))return;Ei.has(e)||Ei.set(e,[]);let s=Ei.get(e);if(s.push(n),!(s.length>1))for(;s.length>0;){await Xp(e,i,n),await o_.yield();let o=await Yp({wrappedMessage:s[0],anyProcess:e,channel:t,isSubprocess:r,ipcEmitter:i});s.shift(),i.emit("message",o),i.emit("message:done")}},Kp=async({anyProcess:e,channel:t,isSubprocess:r,ipcEmitter:i,boundOnMessage:n})=>{Ts();let s=Ei.get(e);for(;s?.length>0;)await s_(i,"message:done");e.removeListener("message",n),Wp(t,r),i.connected=!1,i.emit("disconnect")},Ei=new WeakMap;var st=(e,t,r)=>{if(Pi.has(e))return Pi.get(e);let i=new a_;return i.connected=!0,Pi.set(e,i),c_({ipcEmitter:i,anyProcess:e,channel:t,isSubprocess:r}),i},Pi=new WeakMap,c_=({ipcEmitter:e,anyProcess:t,channel:r,isSubprocess:i})=>{let n=Hp.bind(void 0,{anyProcess:t,channel:r,isSubprocess:i,ipcEmitter:e});t.on("message",n),t.once("disconnect",Kp.bind(void 0,{anyProcess:t,channel:r,isSubprocess:i,ipcEmitter:e,boundOnMessage:n})),Vp(r,i)},Ti=e=>{let t=Pi.get(e);return t===void 0?e.channel!==null:t.connected};var Qp=({anyProcess:e,channel:t,isSubprocess:r,message:i,strict:n})=>{if(!n)return i;let s=st(e,t,r),o=Oi(e,s);return{id:d_++,type:Ri,message:i,hasListeners:o}},d_=0n,ed=(e,t)=>{if(!(t?.type!==Ri||t.hasListeners))for(let{id:r}of e)r!==void 0&&Ii[r].resolve({isDeadlock:!0,hasListeners:!1})},Yp=async({wrappedMessage:e,anyProcess:t,channel:r,isSubprocess:i,ipcEmitter:n})=>{if(e?.type!==Ri||!t.connected)return e;let{id:s,message:o}=e,a={id:s,type:rd,message:Oi(t,n)};try{await ji({anyProcess:t,channel:r,isSubprocess:i,ipc:!0},a)}catch(c){n.emit("strict:error",c)}return o},Jp=e=>{if(e?.type!==rd)return!1;let{id:t,message:r}=e;return Ii[t]?.resolve({isDeadlock:!1,hasListeners:r}),!0},td=async(e,t,r)=>{if(e?.type!==Ri)return;let i=Re();Ii[e.id]=i;let n=new AbortController;try{let{isDeadlock:s,hasListeners:o}=await Promise.race([i,u_(t,r,n)]);s&&jp(r),o||Dp(r)}finally{n.abort(),delete Ii[e.id]}},Ii={},u_=async(e,t,{signal:r})=>{gt(e,1,r),await p_(e,"disconnect",{signal:r}),Lp(t)},Ri="execa:ipc:request",rd="execa:ipc:response";var id=(e,t,r)=>{lr.has(e)||lr.set(e,new Set);let i=lr.get(e),n=Re(),s=r?t.id:void 0,o={onMessageSent:n,id:s};return i.add(o),{outgoingMessages:i,outgoingMessage:o}},nd=({outgoingMessages:e,outgoingMessage:t})=>{e.delete(t),t.onMessageSent.resolve()},Xp=async(e,t,r)=>{for(;!Oi(e,t)&&lr.get(e)?.size>0;){let i=[...lr.get(e)];ed(i,r),await Promise.all(i.map(({onMessageSent:n})=>n))}},lr=new WeakMap,Oi=(e,t)=>t.listenerCount("message")>l_(e),l_=e=>Oe.has(e)&&!Je(Oe.get(e).options.buffer,"ipc")?1:0;var ji=({anyProcess:e,channel:t,isSubprocess:r,ipc:i},n,{strict:s=!1}={})=>{let o="sendMessage";return jt({methodName:o,isSubprocess:r,ipc:i,isConnected:e.connected}),h_({anyProcess:e,channel:t,methodName:o,isSubprocess:r,message:n,strict:s})},h_=async({anyProcess:e,channel:t,methodName:r,isSubprocess:i,message:n,strict:s})=>{let o=Qp({anyProcess:e,channel:t,isSubprocess:i,message:n,strict:s}),a=id(e,o,s);try{await Rs({anyProcess:e,methodName:r,isSubprocess:i,wrappedMessage:o,message:n})}catch(c){throw Dt(e),c}finally{nd(a)}},Rs=async({anyProcess:e,methodName:t,isSubprocess:r,wrappedMessage:i,message:n})=>{let s=y_(e);try{await Promise.all([td(i,e,r),s(i)])}catch(o){throw Bp({error:o,methodName:t,isSubprocess:r}),Up({error:o,methodName:t,isSubprocess:r,message:n}),o}},y_=e=>{if(Is.has(e))return Is.get(e);let t=m_(e.send.bind(e));return Is.set(e,t),t},Is=new WeakMap;var od=(e,t)=>{let r="cancelSignal";return Cs(r,!1,e.connected),Rs({anyProcess:e,methodName:r,isSubprocess:!1,wrappedMessage:{type:cd,message:t},message:t})},ad=async({anyProcess:e,channel:t,isSubprocess:r,ipc:i})=>(await g_({anyProcess:e,channel:t,isSubprocess:r,ipc:i}),Os.signal),g_=async({anyProcess:e,channel:t,isSubprocess:r,ipc:i})=>{if(!sd){if(sd=!0,!i){Fp();return}if(t===null){Ts();return}st(e,t,r),await f_.yield()}},sd=!1,Zp=e=>e?.type!==cd?!1:(Os.abort(e.message),!0),cd="execa:ipc:cancel",Ts=()=>{Os.abort(Mp())},Os=new AbortController;var pd=({gracefulCancel:e,cancelSignal:t,ipc:r,serialization:i})=>{if(e){if(t===void 0)throw new Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!r)throw new Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(i==="json")throw new Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")}},dd=({subprocess:e,cancelSignal:t,gracefulCancel:r,forceKillAfterDelay:i,context:n,controller:s})=>r?[__({subprocess:e,cancelSignal:t,forceKillAfterDelay:i,context:n,controller:s})]:[],__=async({subprocess:e,cancelSignal:t,forceKillAfterDelay:r,context:i,controller:{signal:n}})=>{await vi(t,n);let s=b_(t);throw await od(e,s),As({kill:e.kill,forceKillAfterDelay:r,context:i,controllerSignal:n}),i.terminationReason??="gracefulCancel",t.reason},b_=({reason:e})=>{if(!(e instanceof DOMException))return e;let t=new Error(e.message);return Object.defineProperty(t,"stack",{value:e.stack,enumerable:!1,configurable:!0,writable:!0}),t};import{setTimeout as w_}from"timers/promises";var ud=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},ld=(e,t,r,i)=>t===0||t===void 0?[]:[x_(e,t,r,i)],x_=async(e,t,r,{signal:i})=>{throw await w_(t,void 0,{signal:i}),r.terminationReason??="timeout",e.kill(),new Se};import{execPath as k_,execArgv as v_}from"process";import md from"path";var hd=({options:e})=>{if(e.node===!1)throw new TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...e,node:!0}}},yd=(e,t,{node:r=!1,nodePath:i=k_,nodeOptions:n=v_.filter(c=>!c.startsWith("--inspect")),cwd:s,execPath:o,...a})=>{if(o!==void 0)throw new TypeError('The "execPath" option has been removed. Please use the "nodePath" option instead.');let c=Pt(i,'The "nodePath" option'),d=md.resolve(s,c),p={...a,nodePath:d,node:r,cwd:s};if(!r)return[e,t,p];if(md.basename(e,".exe")==="node")throw new TypeError('When the "node" option is true, the first argument does not need to be "node".');return[d,[...n,e,...t],{ipc:!0,...p,shell:!1}]};import{serialize as S_}from"v8";var fd=({ipcInput:e,ipc:t,serialization:r})=>{if(e!==void 0){if(!t)throw new Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");A_[r](e)}},q_=e=>{try{S_(e)}catch(t){throw new Error("The `ipcInput` option is not serializable with a structured clone.",{cause:t})}},$_=e=>{try{JSON.stringify(e)}catch(t){throw new Error("The `ipcInput` option is not serializable with JSON.",{cause:t})}},A_={advanced:q_,json:$_},gd=async(e,t)=>{t!==void 0&&await e.sendMessage(t)};var bd=({encoding:e})=>{if(js.has(e))return;let t=E_(e);if(t!==void 0)throw new TypeError(`Invalid option \`encoding: ${Di(e)}\`.
|
|
123
|
+
Please rename it to ${Di(t)}.`);let r=[...js].map(i=>Di(i)).join(", ");throw new TypeError(`Invalid option \`encoding: ${Di(e)}\`.
|
|
124
|
+
Please rename it to one of: ${r}.`)},C_=new Set(["utf8","utf16le"]),ye=new Set(["buffer","hex","base64","base64url","latin1","ascii"]),js=new Set([...C_,...ye]),E_=e=>{if(e===null)return"buffer";if(typeof e!="string")return;let t=e.toLowerCase();if(t in _d)return _d[t];if(js.has(t))return t},_d={"utf-8":"utf8","utf-16le":"utf16le","ucs-2":"utf16le",ucs2:"utf16le",binary:"latin1"},Di=e=>typeof e=="string"?`"${e}"`:String(e);import{statSync as P_}from"fs";import T_ from"path";import I_ from"process";var wd=(e=xd())=>{let t=Pt(e,'The "cwd" option');return T_.resolve(t)},xd=()=>{try{return I_.cwd()}catch(e){throw e.message=`The current directory does not exist.
|
|
125
|
+
${e.message}`,e}},kd=(e,t)=>{if(t===xd())return e;let r;try{r=P_(t)}catch(i){return`The "cwd" option is invalid: ${t}.
|
|
126
126
|
${i.message}
|
|
127
127
|
${e}`}return r.isDirectory()?e:`The "cwd" option is not a directory: ${t}.
|
|
128
|
-
${e}`};var
|
|
129
|
-
`,
|
|
130
|
-
${I}`,B=`${g}: ${a}${v}`,j=t===void 0?[e[2],e[1]]:[t],L=[B,...j,...e.slice(3),r.map(G=>
|
|
131
|
-
`)].map(G=>
|
|
132
|
-
|
|
133
|
-
`);return{originalMessage:I,shortMessage:B,message:L}},
|
|
134
|
-
`):Ld(e),Ld=e=>typeof e=="string"?e:Z(e)?ti(e):"";var Ni=({command:e,escapedCommand:t,stdio:r,all:i,ipcOutput:n,options:{cwd:s},startTime:o})=>Fd({command:e,escapedCommand:t,cwd:s,durationMs:us(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:r[1],stderr:r[2],all:i,stdio:r,ipcOutput:n,pipedFrom:[]}),Ft=({error:e,command:t,escapedCommand:r,fileDescriptors:i,options:n,startTime:s,isSync:o})=>lr({error:e,command:t,escapedCommand:r,startTime:s,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:i.length}),ipcOutput:[],options:n,isSync:o}),lr=({error:e,command:t,escapedCommand:r,startTime:i,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:d,signal:p,stdio:u,all:l,ipcOutput:m,options:{timeoutDuration:h,timeout:f=h,forceKillAfterDelay:x,killSignal:w,cwd:S,maxBuffer:g},isSync:I})=>{let{exitCode:v,signal:B,signalDescription:j}=mb(d,p),{originalMessage:L,shortMessage:G,message:H}=Md({stdio:u,all:l,ipcOutput:m,originalError:e,signal:B,signalDescription:j,exitCode:v,escapedCommand:r,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,forceKillAfterDelay:x,killSignal:w,maxBuffer:g,timeout:f,cwd:S}),$=up(e,H,I);return Object.assign($,lb({error:$,command:t,escapedCommand:r,startTime:i,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:v,signal:B,signalDescription:j,stdio:u,all:l,ipcOutput:m,cwd:S,originalMessage:L,shortMessage:G})),$},lb=({error:e,command:t,escapedCommand:r,startTime:i,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:d,signal:p,signalDescription:u,stdio:l,all:m,ipcOutput:h,cwd:f,originalMessage:x,shortMessage:w})=>Fd({shortMessage:w,originalMessage:x,command:t,escapedCommand:r,cwd:f,durationMs:us(i),failed:!0,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isTerminated:p!==void 0,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:d,signal:p,signalDescription:u,code:e.cause?.code,stdout:l[1],stderr:l[2],all:m,stdio:l,ipcOutput:h,pipedFrom:[]}),Fd=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0)),mb=(e,t)=>{let r=e===null?void 0:e,i=t===null?void 0:t,n=i===void 0?void 0:gi(t);return{exitCode:r,signal:i,signalDescription:n}};var Bd=e=>Number.isFinite(e)?e:0;function hb(e){return{days:Math.trunc(e/864e5),hours:Math.trunc(e/36e5%24),minutes:Math.trunc(e/6e4%60),seconds:Math.trunc(e/1e3%60),milliseconds:Math.trunc(e%1e3),microseconds:Math.trunc(Bd(e*1e3)%1e3),nanoseconds:Math.trunc(Bd(e*1e6)%1e3)}}function yb(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}function Ls(e){switch(typeof e){case"number":{if(Number.isFinite(e))return hb(e);break}case"bigint":return yb(e)}throw new TypeError("Expected a finite number or bigint")}var fb=e=>e===0||e===0n,gb=(e,t)=>t===1||t===1n?e:`${e}s`,_b=1e-7,bb=24n*60n*60n*1000n;function Ms(e,t){let r=typeof e=="bigint";if(!r&&!Number.isFinite(e))throw new TypeError("Expected a finite number or bigint");t={...t};let i=e<0?"-":"";e=e<0?-e:e,t.colonNotation&&(t.compact=!1,t.formatSubMilliseconds=!1,t.separateMilliseconds=!1,t.verbose=!1),t.compact&&(t.unitCount=1,t.secondsDecimalDigits=0,t.millisecondsDecimalDigits=0);let n=[],s=(p,u)=>{let l=Math.floor(p*10**u+_b);return(Math.round(l)/10**u).toFixed(u)},o=(p,u,l,m)=>{if(!((n.length===0||!t.colonNotation)&&fb(p)&&!(t.colonNotation&&l==="m"))){if(m??=String(p),t.colonNotation){let h=m.includes(".")?m.split(".")[0].length:m.length,f=n.length>0?2:1;m="0".repeat(Math.max(0,f-h))+m}else m+=t.verbose?" "+gb(u,p):l;n.push(m)}},a=Ls(e),c=BigInt(a.days);if(t.hideYearAndDays?o(BigInt(c)*24n+BigInt(a.hours),"hour","h"):(t.hideYear?o(c,"day","d"):(o(c/365n,"year","y"),o(c%365n,"day","d")),o(Number(a.hours),"hour","h")),o(Number(a.minutes),"minute","m"),!t.hideSeconds)if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3&&!t.subSecondsAsDecimals){let p=Number(a.seconds),u=Number(a.milliseconds),l=Number(a.microseconds),m=Number(a.nanoseconds);if(o(p,"second","s"),t.formatSubMilliseconds)o(u,"millisecond","ms"),o(l,"microsecond","\xB5s"),o(m,"nanosecond","ns");else{let h=u+l/1e3+m/1e6,f=typeof t.millisecondsDecimalDigits=="number"?t.millisecondsDecimalDigits:0,x=h>=1?Math.round(h):Math.ceil(h),w=f?h.toFixed(f):x;o(Number.parseFloat(w),"millisecond","ms",w)}}else{let p=(r?Number(e%bb):e)/1e3%60,u=typeof t.secondsDecimalDigits=="number"?t.secondsDecimalDigits:1,l=s(p,u),m=t.keepDecimalsOnWholeSeconds?l:l.replace(/\.0+$/,"");o(Number.parseFloat(m),"second","s",m)}if(n.length===0)return i+"0"+(t.verbose?" milliseconds":"ms");let d=t.colonNotation?":":" ";return typeof t.unitCount=="number"&&(n=n.slice(0,Math.max(t.unitCount,1))),i+n.join(d)}var Ud=(e,t)=>{e.failed&&Pe({type:"error",verboseMessage:e.shortMessage,verboseInfo:t,result:e})};var Nd=(e,t)=>{Pt(t)&&(Ud(e,t),wb(e,t))},wb=(e,t)=>{let r=`(done in ${Ms(e.durationMs)})`;Pe({type:"duration",verboseMessage:r,verboseInfo:t,result:e})};var Bt=(e,t,{reject:r})=>{if(Nd(e,t),e.failed&&r)throw e;return e};import{readFileSync as yu}from"fs";var Vd=(e,t)=>gt(e)?"asyncGenerator":Kd(e)?"generator":Gi(e)?"fileUrl":qb(e)?"filePath":Cb(e)?"webStream":qe(e,{checkOpen:!1})?"native":Z(e)?"uint8Array":Eb(e)?"asyncIterable":Pb(e)?"iterable":Us(e)?Wd({transform:e},t):Sb(e)?xb(e,t):"native",xb=(e,t)=>Rs(e.transform,{checkOpen:!1})?kb(e,t):Us(e.transform)?Wd(e,t):vb(e,t),kb=(e,t)=>(Hd(e,t,"Duplex stream"),"duplex"),Wd=(e,t)=>(Hd(e,t,"web TransformStream"),"webTransform"),Hd=({final:e,binary:t,objectMode:r},i,n)=>{Gd(e,`${i}.final`,n),Gd(t,`${i}.binary`,n),Fs(r,`${i}.objectMode`)},Gd=(e,t,r)=>{if(e!==void 0)throw new TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${r}.`)},vb=({transform:e,final:t,binary:r,objectMode:i},n)=>{if(e!==void 0&&!zd(e))throw new TypeError(`The \`${n}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(Rs(t,{checkOpen:!1}))throw new TypeError(`The \`${n}.final\` option must not be a Duplex stream.`);if(Us(t))throw new TypeError(`The \`${n}.final\` option must not be a web TransformStream.`);if(t!==void 0&&!zd(t))throw new TypeError(`The \`${n}.final\` option must be a generator.`);return Fs(r,`${n}.binary`),Fs(i,`${n}.objectMode`),gt(e)||gt(t)?"asyncGenerator":"generator"},Fs=(e,t)=>{if(e!==void 0&&typeof e!="boolean")throw new TypeError(`The \`${t}\` option must use a boolean.`)},zd=e=>gt(e)||Kd(e),gt=e=>Object.prototype.toString.call(e)==="[object AsyncGeneratorFunction]",Kd=e=>Object.prototype.toString.call(e)==="[object GeneratorFunction]",Sb=e=>K(e)&&(e.transform!==void 0||e.final!==void 0),Gi=e=>Object.prototype.toString.call(e)==="[object URL]",Yd=e=>Gi(e)&&e.protocol!=="file:",qb=e=>K(e)&&Object.keys(e).length>0&&Object.keys(e).every(t=>$b.has(t))&&Bs(e.file),$b=new Set(["file","append"]),Bs=e=>typeof e=="string",Jd=(e,t)=>e==="native"&&typeof t=="string"&&!Ab.has(t),Ab=new Set(["ipc","ignore","inherit","overlapped","pipe"]),Xd=e=>Object.prototype.toString.call(e)==="[object ReadableStream]",zi=e=>Object.prototype.toString.call(e)==="[object WritableStream]",Cb=e=>Xd(e)||zi(e),Us=e=>Xd(e?.readable)&&zi(e?.writable),Eb=e=>Zd(e)&&typeof e[Symbol.asyncIterator]=="function",Pb=e=>Zd(e)&&typeof e[Symbol.iterator]=="function",Zd=e=>typeof e=="object"&&e!==null,we=new Set(["generator","asyncGenerator","duplex","webTransform"]),Vi=new Set(["fileUrl","filePath","fileNumber"]),Ns=new Set(["fileUrl","filePath"]),Qd=new Set([...Ns,"webStream","nodeStream"]),eu=new Set(["webTransform","duplex"]),st={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"};var Gs=(e,t,r,i)=>i==="output"?Tb(e,t,r):Ib(e,t,r),Tb=(e,t,r)=>{let i=t!==0&&r[t-1].value.readableObjectMode;return{writableObjectMode:i,readableObjectMode:e??i}},Ib=(e,t,r)=>{let i=t===0?e===!0:r[t-1].value.readableObjectMode,n=t!==r.length-1&&(e??i);return{writableObjectMode:i,readableObjectMode:n}},tu=(e,t)=>{let r=e.findLast(({type:i})=>we.has(i));return r===void 0?!1:t==="input"?r.value.writableObjectMode:r.value.readableObjectMode};var ru=(e,t,r,i)=>[...e.filter(({type:n})=>!we.has(n)),...Rb(e,t,r,i)],Rb=(e,t,r,{encoding:i})=>{let n=e.filter(({type:o})=>we.has(o)),s=Array.from({length:n.length});for(let[o,a]of Object.entries(n))s[o]=Ob({stdioItem:a,index:Number(o),newTransforms:s,optionName:t,direction:r,encoding:i});return Mb(s,r)},Ob=({stdioItem:e,stdioItem:{type:t},index:r,newTransforms:i,optionName:n,direction:s,encoding:o})=>t==="duplex"?jb({stdioItem:e,optionName:n}):t==="webTransform"?Db({stdioItem:e,index:r,newTransforms:i,direction:s}):Lb({stdioItem:e,index:r,newTransforms:i,direction:s,encoding:o}),jb=({stdioItem:e,stdioItem:{value:{transform:t,transform:{writableObjectMode:r,readableObjectMode:i},objectMode:n=i}},optionName:s})=>{if(n&&!i)throw new TypeError(`The \`${s}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!n&&i)throw new TypeError(`The \`${s}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:t,writableObjectMode:r,readableObjectMode:i}}},Db=({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:i,direction:n})=>{let{transform:s,objectMode:o}=K(t)?t:{transform:t},{writableObjectMode:a,readableObjectMode:c}=Gs(o,r,i,n);return{...e,value:{transform:s,writableObjectMode:a,readableObjectMode:c}}},Lb=({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:i,direction:n,encoding:s})=>{let{transform:o,final:a,binary:c=!1,preserveNewlines:d=!1,objectMode:p}=K(t)?t:{transform:t},u=c||ye.has(s),{writableObjectMode:l,readableObjectMode:m}=Gs(p,r,i,n);return{...e,value:{transform:o,final:a,binary:u,preserveNewlines:d,writableObjectMode:l,readableObjectMode:m}}},Mb=(e,t)=>t==="input"?e.reverse():e;import zs from"process";var iu=(e,t,r)=>{let i=e.map(n=>Fb(n,t));if(i.includes("input")&&i.includes("output"))throw new TypeError(`The \`${r}\` option must not be an array of both readable and writable values.`);return i.find(Boolean)??Nb},Fb=({type:e,value:t},r)=>Bb[r]??nu[e](t),Bb=["input","output","output"],Ut=()=>{},Vs=()=>"input",nu={generator:Ut,asyncGenerator:Ut,fileUrl:Ut,filePath:Ut,iterable:Vs,asyncIterable:Vs,uint8Array:Vs,webStream:e=>zi(e)?"output":"input",nodeStream(e){return ft(e,{checkOpen:!1})?Is(e,{checkOpen:!1})?void 0:"input":"output"},webTransform:Ut,duplex:Ut,native(e){let t=Ub(e);if(t!==void 0)return t;if(qe(e,{checkOpen:!1}))return nu.nodeStream(e)}},Ub=e=>{if([0,zs.stdin].includes(e))return"input";if([1,2,zs.stdout,zs.stderr].includes(e))return"output"},Nb="output";var su=(e,t)=>t&&!e.includes("ipc")?[...e,"ipc"]:e;var ou=({stdio:e,ipc:t,buffer:r,...i},n,s)=>{let o=Gb(e,i).map((a,c)=>au(a,c));return s?Vb(o,r,n):su(o,t)},Gb=(e,t)=>{if(e===void 0)return be.map(i=>t[i]);if(zb(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${be.map(i=>`\`${i}\``).join(", ")}`);if(typeof e=="string")return[e,e,e];if(!Array.isArray(e))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let r=Math.max(e.length,be.length);return Array.from({length:r},(i,n)=>e[n])},zb=e=>be.some(t=>e[t]!==void 0),au=(e,t)=>Array.isArray(e)?e.map(r=>au(r,t)):e??(t>=be.length?"ignore":"pipe"),Vb=(e,t,r)=>e.map((i,n)=>!t[n]&&n!==0&&!Tt(r,n)&&Wb(i)?"ignore":i),Wb=e=>e==="pipe"||Array.isArray(e)&&e.every(t=>t==="pipe");import{readFileSync as Hb}from"fs";import Kb from"tty";var pu=({stdioItem:e,stdioItem:{type:t},isStdioArray:r,fdNumber:i,direction:n,isSync:s})=>!r||t!=="native"?e:s?Yb({stdioItem:e,fdNumber:i,direction:n}):Zb({stdioItem:e,fdNumber:i}),Yb=({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:i,direction:n})=>{let s=Jb({value:t,optionName:r,fdNumber:i,direction:n});if(s!==void 0)return s;if(qe(t,{checkOpen:!1}))throw new TypeError(`The \`${r}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e},Jb=({value:e,optionName:t,fdNumber:r,direction:i})=>{let n=Xb(e,r);if(n!==void 0){if(i==="output")return{type:"fileNumber",value:n,optionName:t};if(Kb.isatty(n))throw new TypeError(`The \`${t}: ${wi(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:We(Hb(n)),optionName:t}}},Xb=(e,t)=>{if(e==="inherit")return t;if(typeof e=="number")return e;let r=ri.indexOf(e);if(r!==-1)return r},Zb=({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:i})=>t==="inherit"?{type:"nodeStream",value:cu(i,t,r),optionName:r}:typeof t=="number"?{type:"nodeStream",value:cu(t,t,r),optionName:r}:qe(t,{checkOpen:!1})?{type:"nodeStream",value:t,optionName:r}:e,cu=(e,t,r)=>{let i=ri[e];if(i===void 0)throw new TypeError(`The \`${r}: ${t}\` option is invalid: no such standard stream.`);return i};var du=({input:e,inputFile:t},r)=>r===0?[...Qb(e),...tw(t)]:[],Qb=e=>e===void 0?[]:[{type:ew(e),value:e,optionName:"input"}],ew=e=>{if(ft(e,{checkOpen:!1}))return"nodeStream";if(typeof e=="string")return"string";if(Z(e))return"uint8Array";throw new Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},tw=e=>e===void 0?[]:[{...rw(e),optionName:"inputFile"}],rw=e=>{if(Gi(e))return{type:"fileUrl",value:e};if(Bs(e))return{type:"filePath",value:{file:e}};throw new Error("The `inputFile` option must be a file path string or a file URL.")};var uu=e=>e.filter((t,r)=>e.every((i,n)=>t.value!==i.value||r>=n||t.type==="generator"||t.type==="asyncGenerator")),lu=({stdioItem:{type:e,value:t,optionName:r},direction:i,fileDescriptors:n,isSync:s})=>{let o=iw(n,e);if(o.length!==0){if(s){nw({otherStdioItems:o,type:e,value:t,optionName:r,direction:i});return}if(Qd.has(e))return mu({otherStdioItems:o,type:e,value:t,optionName:r,direction:i});eu.has(e)&&ow({otherStdioItems:o,type:e,value:t,optionName:r})}},iw=(e,t)=>e.flatMap(({direction:r,stdioItems:i})=>i.filter(n=>n.type===t).map((n=>({...n,direction:r})))),nw=({otherStdioItems:e,type:t,value:r,optionName:i,direction:n})=>{Ns.has(t)&&mu({otherStdioItems:e,type:t,value:r,optionName:i,direction:n})},mu=({otherStdioItems:e,type:t,value:r,optionName:i,direction:n})=>{let s=e.filter(a=>sw(a,r));if(s.length===0)return;let o=s.find(a=>a.direction!==n);return hu(o,i,t),n==="output"?s[0].stream:void 0},sw=({type:e,value:t},r)=>e==="filePath"?t.file===r.file:e==="fileUrl"?t.href===r.href:t===r,ow=({otherStdioItems:e,type:t,value:r,optionName:i})=>{let n=e.find(({value:{transform:s}})=>s===r.transform);hu(n,i,t)},hu=(e,t,r)=>{if(e!==void 0)throw new TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${st[r]} that is the same.`)};var Wi=(e,t,r,i)=>{let s=ou(t,r,i).map((a,c)=>aw({stdioOption:a,fdNumber:c,options:t,isSync:i})),o=yw({initialFileDescriptors:s,addProperties:e,options:t,isSync:i});return t.stdio=o.map(({stdioItems:a})=>_w(a)),o},aw=({stdioOption:e,fdNumber:t,options:r,isSync:i})=>{let n=ii(t),{stdioItems:s,isStdioArray:o}=cw({stdioOption:e,fdNumber:t,options:r,optionName:n}),a=iu(s,t,n),c=s.map(u=>pu({stdioItem:u,isStdioArray:o,fdNumber:t,direction:a,isSync:i})),d=ru(c,n,a,r),p=tu(d,a);return hw(d,p),{direction:a,objectMode:p,stdioItems:d}},cw=({stdioOption:e,fdNumber:t,options:r,optionName:i})=>{let s=[...(Array.isArray(e)?e:[e]).map(c=>pw(c,i)),...du(r,t)],o=uu(s),a=o.length>1;return dw(o,a,i),lw(o),{stdioItems:o,isStdioArray:a}},pw=(e,t)=>({type:Vd(e,t),value:e,optionName:t}),dw=(e,t,r)=>{if(e.length===0)throw new TypeError(`The \`${r}\` option must not be an empty array.`);if(t){for(let{value:i,optionName:n}of e)if(uw.has(i))throw new Error(`The \`${n}\` option must not include \`${i}\`.`)}},uw=new Set(["ignore","ipc"]),lw=e=>{for(let t of e)mw(t)},mw=({type:e,value:t,optionName:r})=>{if(Yd(t))throw new TypeError(`The \`${r}: URL\` option must use the \`file:\` scheme.
|
|
135
|
-
For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(
|
|
136
|
-
`){let o=
|
|
128
|
+
${e}`};var Li=(e,t,r)=>{r.cwd=wd(r.cwd);let[i,n,s]=yd(e,t,r),{command:o,args:a,options:c}=Sd.default._parse(i,n,s),d=pc(c),p=O_(d);return ud(p),bd(p),fd(p),Ip(p),pd(p),p.shell=as(p.shell),p.env=j_(p),p.killSignal=Ap(p.killSignal),p.forceKillAfterDelay=Pp(p.forceKillAfterDelay),p.lines=p.lines.map((u,l)=>u&&!ye.has(p.encoding)&&p.buffer[l]),vd.platform==="win32"&&R_.basename(o,".exe")==="cmd"&&a.unshift("/q"),{file:o,commandArguments:a,options:p}},O_=({extendEnv:e=!0,preferLocal:t=!1,cwd:r,localDir:i=r,encoding:n="utf8",reject:s=!0,cleanup:o=!0,all:a=!1,windowsHide:c=!0,killSignal:d="SIGTERM",forceKillAfterDelay:p=!0,gracefulCancel:u=!1,ipcInput:l,ipc:m=l!==void 0||u,serialization:h="advanced",...f})=>({...f,extendEnv:e,preferLocal:t,cwd:r,localDirectory:i,encoding:n,reject:s,cleanup:o,all:a,windowsHide:c,killSignal:d,forceKillAfterDelay:p,gracefulCancel:u,ipcInput:l,ipc:m,serialization:h}),j_=({env:e,extendEnv:t,preferLocal:r,node:i,localDirectory:n,nodePath:s})=>{let o=t?{...vd.env,...e}:e;return r||i?fp({env:o,cwd:n,execPath:s,preferLocal:r,addExecPath:i}):o};var Mi=(e,t,r)=>r.shell&&t.length>0?[[e,...t].join(" "),[],r]:[e,t,r];import{inspect as yb}from"util";function Mt(e){if(typeof e=="string")return D_(e);if(!(ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1))throw new Error("Input must be a string or a Uint8Array");return L_(e)}var D_=e=>e.at(-1)===qd?e.slice(0,e.at(-2)===$d?-2:-1):e,L_=e=>e.at(-1)===M_?e.subarray(0,e.at(-2)===F_?-2:-1):e,qd=`
|
|
129
|
+
`,M_=qd.codePointAt(0),$d="\r",F_=$d.codePointAt(0);import{on as ub}from"events";import{finished as lb}from"stream/promises";function $e(e,{checkOpen:t=!0}={}){return e!==null&&typeof e=="object"&&(e.writable||e.readable||!t||e.writable===void 0&&e.readable===void 0)&&typeof e.pipe=="function"}function Ds(e,{checkOpen:t=!0}={}){return $e(e,{checkOpen:t})&&(e.writable||!t)&&typeof e.write=="function"&&typeof e.end=="function"&&typeof e.writable=="boolean"&&typeof e.writableObjectMode=="boolean"&&typeof e.destroy=="function"&&typeof e.destroyed=="boolean"}function _t(e,{checkOpen:t=!0}={}){return $e(e,{checkOpen:t})&&(e.readable||!t)&&typeof e.read=="function"&&typeof e.readable=="boolean"&&typeof e.readableObjectMode=="boolean"&&typeof e.destroy=="function"&&typeof e.destroyed=="boolean"}function Ls(e,t){return Ds(e,t)&&_t(e,t)}var B_=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype),Ms=class{#t;#r;#e=!1;#i=void 0;constructor(t,r){this.#t=t,this.#r=r}next(){let t=()=>this.#s();return this.#i=this.#i?this.#i.then(t,t):t(),this.#i}return(t){let r=()=>this.#n(t);return this.#i?this.#i.then(r,r):r()}async#s(){if(this.#e)return{done:!0,value:void 0};let t;try{t=await this.#t.read()}catch(r){throw this.#i=void 0,this.#e=!0,this.#t.releaseLock(),r}return t.done&&(this.#i=void 0,this.#e=!0,this.#t.releaseLock()),t}async#n(t){if(this.#e)return{done:!0,value:t};if(this.#e=!0,!this.#r){let r=this.#t.cancel(t);return this.#t.releaseLock(),await r,{done:!0,value:t}}return this.#t.releaseLock(),{done:!0,value:t}}},Fs=Symbol();function Ad(){return this[Fs].next()}Object.defineProperty(Ad,"name",{value:"next"});function Cd(e){return this[Fs].return(e)}Object.defineProperty(Cd,"name",{value:"return"});var U_=Object.create(B_,{next:{enumerable:!0,configurable:!0,writable:!0,value:Ad},return:{enumerable:!0,configurable:!0,writable:!0,value:Cd}});function Bs({preventCancel:e=!1}={}){let t=this.getReader(),r=new Ms(t,e),i=Object.create(U_);return i[Fs]=r,i}var Ed=e=>{if(_t(e,{checkOpen:!1})&&mr.on!==void 0)return G_(e);if(typeof e?.[Symbol.asyncIterator]=="function")return e;if(N_.call(e)==="[object ReadableStream]")return Bs.call(e);throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.")},{toString:N_}=Object.prototype,G_=async function*(e){let t=new AbortController,r={};z_(e,t,r);try{for await(let[i]of mr.on(e,"data",{signal:t.signal}))yield i}catch(i){if(r.error!==void 0)throw r.error;if(!t.signal.aborted)throw i}finally{e.destroy()}},z_=async(e,t,r)=>{try{await mr.finished(e,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(i){r.error=i}finally{t.abort()}},mr={};var Ft=async(e,{init:t,convertChunk:r,getSize:i,truncateChunk:n,addChunk:s,getFinalChunk:o,finalize:a},{maxBuffer:c=Number.POSITIVE_INFINITY}={})=>{let d=Ed(e),p=t();p.length=0;try{for await(let u of d){let l=W_(u),m=r[l](u,p);Id({convertedChunk:m,state:p,getSize:i,truncateChunk:n,addChunk:s,maxBuffer:c})}return V_({state:p,convertChunk:r,getSize:i,truncateChunk:n,addChunk:s,getFinalChunk:o,maxBuffer:c}),a(p)}catch(u){let l=typeof u=="object"&&u!==null?u:new Error(u);throw l.bufferedData=a(p),l}},V_=({state:e,getSize:t,truncateChunk:r,addChunk:i,getFinalChunk:n,maxBuffer:s})=>{let o=n(e);o!==void 0&&Id({convertedChunk:o,state:e,getSize:t,truncateChunk:r,addChunk:i,maxBuffer:s})},Id=({convertedChunk:e,state:t,getSize:r,truncateChunk:i,addChunk:n,maxBuffer:s})=>{let o=r(e),a=t.length+o;if(a<=s){Pd(e,t,n,a);return}let c=i(e,s-t.length);throw c!==void 0&&Pd(c,t,n,s),new je},Pd=(e,t,r,i)=>{t.contents=r(e,t,i),t.length=i},W_=e=>{let t=typeof e;if(t==="string")return"string";if(t!=="object"||e===null)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";let r=Td.call(e);return r==="[object ArrayBuffer]"?"arrayBuffer":r==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&Td.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:Td}=Object.prototype,je=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};var Xe=e=>e,hr=()=>{},Fi=({contents:e})=>e,Bi=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},Ui=e=>e.length;async function Ni(e,t){return Ft(e,J_,t)}var H_=()=>({contents:[]}),K_=()=>1,Y_=(e,{contents:t})=>(t.push(e),t),J_={init:H_,convertChunk:{string:Xe,buffer:Xe,arrayBuffer:Xe,dataView:Xe,typedArray:Xe,others:Xe},getSize:K_,truncateChunk:hr,addChunk:Y_,getFinalChunk:hr,finalize:Fi};async function Gi(e,t){return Ft(e,sb,t)}var X_=()=>({contents:new ArrayBuffer(0)}),Z_=e=>Q_.encode(e),Q_=new TextEncoder,Rd=e=>new Uint8Array(e),Od=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),eb=(e,t)=>e.slice(0,t),tb=(e,{contents:t,length:r},i)=>{let n=Ld()?ib(t,i):rb(t,i);return new Uint8Array(n).set(e,r),n},rb=(e,t)=>{if(t<=e.byteLength)return e;let r=new ArrayBuffer(Dd(t));return new Uint8Array(r).set(new Uint8Array(e),0),r},ib=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let r=new ArrayBuffer(t,{maxByteLength:Dd(t)});return new Uint8Array(r).set(new Uint8Array(e),0),r},Dd=e=>jd**Math.ceil(Math.log(e)/Math.log(jd)),jd=2,nb=({contents:e,length:t})=>Ld()?e:e.slice(0,t),Ld=()=>"resize"in ArrayBuffer.prototype,sb={init:X_,convertChunk:{string:Z_,buffer:Rd,arrayBuffer:Rd,dataView:Od,typedArray:Od,others:Bi},getSize:Ui,truncateChunk:eb,addChunk:tb,getFinalChunk:hr,finalize:nb};async function Vi(e,t){return Ft(e,db,t)}var ob=()=>({contents:"",textDecoder:new TextDecoder}),zi=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),ab=(e,{contents:t})=>t+e,cb=(e,t)=>e.slice(0,t),pb=({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},db={init:ob,convertChunk:{string:Xe,buffer:zi,arrayBuffer:zi,dataView:zi,typedArray:zi,others:Bi},getSize:Ui,truncateChunk:cb,addChunk:ab,getFinalChunk:pb,finalize:Fi};Object.assign(mr,{on:ub,finished:lb});var Md=({error:e,stream:t,readableObjectMode:r,lines:i,encoding:n,fdNumber:s})=>{if(!(e instanceof je))throw e;if(s==="all")return e;let o=mb(r,i,n);throw e.maxBufferInfo={fdNumber:s,unit:o},t.destroy(),e},mb=(e,t,r)=>e?"objects":t?"lines":r==="buffer"?"bytes":"characters",Fd=(e,t,r)=>{if(t.length!==r)return;let i=new je;throw i.maxBufferInfo={fdNumber:"ipc"},i},Bd=(e,t)=>{let{streamName:r,threshold:i,unit:n}=hb(e,t);return`Command's ${r} was larger than ${i} ${n}`},hb=(e,t)=>{if(e?.maxBufferInfo===void 0)return{streamName:"output",threshold:t[1],unit:"bytes"};let{maxBufferInfo:{fdNumber:r,unit:i}}=e;delete e.maxBufferInfo;let n=Je(t,r);return r==="ipc"?{streamName:"IPC output",threshold:n,unit:"messages"}:{streamName:ci(r),threshold:n,unit:i}},Ud=(e,t,r)=>e?.code==="ENOBUFS"&&t!==null&&t.some(i=>i!==null&&i.length>Wi(r)),Nd=(e,t,r)=>{if(!t)return e;let i=Wi(r);return e.length>i?e.slice(0,i):e},Wi=([,e])=>e;var zd=({stdio:e,all:t,ipcOutput:r,originalError:i,signal:n,signalDescription:s,exitCode:o,escapedCommand:a,timedOut:c,isCanceled:d,isGracefullyCanceled:p,isMaxBuffer:u,isForcefullyTerminated:l,forceKillAfterDelay:m,killSignal:h,maxBuffer:f,timeout:x,cwd:w})=>{let S=i?.code,g=fb({originalError:i,timedOut:c,timeout:x,isMaxBuffer:u,maxBuffer:f,errorCode:S,signal:n,signalDescription:s,exitCode:o,isCanceled:d,isGracefullyCanceled:p,isForcefullyTerminated:l,forceKillAfterDelay:m,killSignal:h}),I=_b(i,w),v=I===void 0?"":`
|
|
130
|
+
${I}`,B=`${g}: ${a}${v}`,j=t===void 0?[e[2],e[1]]:[t],L=[B,...j,...e.slice(3),r.map(G=>bb(G)).join(`
|
|
131
|
+
`)].map(G=>ar(Mt(wb(G)))).filter(Boolean).join(`
|
|
132
|
+
|
|
133
|
+
`);return{originalMessage:I,shortMessage:B,message:L}},fb=({originalError:e,timedOut:t,timeout:r,isMaxBuffer:i,maxBuffer:n,errorCode:s,signal:o,signalDescription:a,exitCode:c,isCanceled:d,isGracefullyCanceled:p,isForcefullyTerminated:u,forceKillAfterDelay:l,killSignal:m})=>{let h=gb(u,l);return t?`Command timed out after ${r} milliseconds${h}`:p?o===void 0?`Command was gracefully canceled with exit code ${c}`:u?`Command was gracefully canceled${h}`:`Command was gracefully canceled with ${o} (${a})`:d?`Command was canceled${h}`:i?`${Bd(e,n)}${h}`:s!==void 0?`Command failed with ${s}${h}`:u?`Command was killed with ${m} (${ki(m)})${h}`:o!==void 0?`Command was killed with ${o} (${a})`:c!==void 0?`Command failed with exit code ${c}`:"Command failed"},gb=(e,t)=>e?` and was forcefully terminated after ${t} milliseconds`:"",_b=(e,t)=>{if(e instanceof Se)return;let r=bp(e)?e.originalMessage:String(e?.message??e),i=ar(kd(r,t));return i===""?void 0:i},bb=e=>typeof e=="string"?e:yb(e),wb=e=>Array.isArray(e)?e.map(t=>Mt(Gd(t))).filter(Boolean).join(`
|
|
134
|
+
`):Gd(e),Gd=e=>typeof e=="string"?e:Q(e)?oi(e):"";var Hi=({command:e,escapedCommand:t,stdio:r,all:i,ipcOutput:n,options:{cwd:s},startTime:o})=>Vd({command:e,escapedCommand:t,cwd:s,durationMs:ys(o),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:r[1],stderr:r[2],all:i,stdio:r,ipcOutput:n,pipedFrom:[]}),Bt=({error:e,command:t,escapedCommand:r,fileDescriptors:i,options:n,startTime:s,isSync:o})=>yr({error:e,command:t,escapedCommand:r,startTime:s,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:i.length}),ipcOutput:[],options:n,isSync:o}),yr=({error:e,command:t,escapedCommand:r,startTime:i,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:d,signal:p,stdio:u,all:l,ipcOutput:m,options:{timeoutDuration:h,timeout:f=h,forceKillAfterDelay:x,killSignal:w,cwd:S,maxBuffer:g},isSync:I})=>{let{exitCode:v,signal:B,signalDescription:j}=kb(d,p),{originalMessage:L,shortMessage:G,message:H}=zd({stdio:u,all:l,ipcOutput:m,originalError:e,signal:B,signalDescription:j,exitCode:v,escapedCommand:r,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,forceKillAfterDelay:x,killSignal:w,maxBuffer:g,timeout:f,cwd:S}),$=gp(e,H,I);return Object.assign($,xb({error:$,command:t,escapedCommand:r,startTime:i,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:v,signal:B,signalDescription:j,stdio:u,all:l,ipcOutput:m,cwd:S,originalMessage:L,shortMessage:G})),$},xb=({error:e,command:t,escapedCommand:r,startTime:i,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:d,signal:p,signalDescription:u,stdio:l,all:m,ipcOutput:h,cwd:f,originalMessage:x,shortMessage:w})=>Vd({shortMessage:w,originalMessage:x,command:t,escapedCommand:r,cwd:f,durationMs:ys(i),failed:!0,timedOut:n,isCanceled:s,isGracefullyCanceled:o,isTerminated:p!==void 0,isMaxBuffer:a,isForcefullyTerminated:c,exitCode:d,signal:p,signalDescription:u,code:e.cause?.code,stdout:l[1],stderr:l[2],all:m,stdio:l,ipcOutput:h,pipedFrom:[]}),Vd=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0)),kb=(e,t)=>{let r=e===null?void 0:e,i=t===null?void 0:t,n=i===void 0?void 0:ki(t);return{exitCode:r,signal:i,signalDescription:n}};var Wd=e=>Number.isFinite(e)?e:0;function vb(e){return{days:Math.trunc(e/864e5),hours:Math.trunc(e/36e5%24),minutes:Math.trunc(e/6e4%60),seconds:Math.trunc(e/1e3%60),milliseconds:Math.trunc(e%1e3),microseconds:Math.trunc(Wd(e*1e3)%1e3),nanoseconds:Math.trunc(Wd(e*1e6)%1e3)}}function Sb(e){return{days:e/86400000n,hours:e/3600000n%24n,minutes:e/60000n%60n,seconds:e/1000n%60n,milliseconds:e%1000n,microseconds:0n,nanoseconds:0n}}function Us(e){switch(typeof e){case"number":{if(Number.isFinite(e))return vb(e);break}case"bigint":return Sb(e)}throw new TypeError("Expected a finite number or bigint")}var qb=e=>e===0||e===0n,$b=(e,t)=>t===1||t===1n?e:`${e}s`,Ab=1e-7,Cb=24n*60n*60n*1000n;function Ns(e,t){let r=typeof e=="bigint";if(!r&&!Number.isFinite(e))throw new TypeError("Expected a finite number or bigint");t={...t};let i=e<0?"-":"";e=e<0?-e:e,t.colonNotation&&(t.compact=!1,t.formatSubMilliseconds=!1,t.separateMilliseconds=!1,t.verbose=!1),t.compact&&(t.unitCount=1,t.secondsDecimalDigits=0,t.millisecondsDecimalDigits=0);let n=[],s=(p,u)=>{let l=Math.floor(p*10**u+Ab);return(Math.round(l)/10**u).toFixed(u)},o=(p,u,l,m)=>{if(!((n.length===0||!t.colonNotation)&&qb(p)&&!(t.colonNotation&&l==="m"))){if(m??=String(p),t.colonNotation){let h=m.includes(".")?m.split(".")[0].length:m.length,f=n.length>0?2:1;m="0".repeat(Math.max(0,f-h))+m}else m+=t.verbose?" "+$b(u,p):l;n.push(m)}},a=Us(e),c=BigInt(a.days);if(t.hideYearAndDays?o(BigInt(c)*24n+BigInt(a.hours),"hour","h"):(t.hideYear?o(c,"day","d"):(o(c/365n,"year","y"),o(c%365n,"day","d")),o(Number(a.hours),"hour","h")),o(Number(a.minutes),"minute","m"),!t.hideSeconds)if(t.separateMilliseconds||t.formatSubMilliseconds||!t.colonNotation&&e<1e3&&!t.subSecondsAsDecimals){let p=Number(a.seconds),u=Number(a.milliseconds),l=Number(a.microseconds),m=Number(a.nanoseconds);if(o(p,"second","s"),t.formatSubMilliseconds)o(u,"millisecond","ms"),o(l,"microsecond","\xB5s"),o(m,"nanosecond","ns");else{let h=u+l/1e3+m/1e6,f=typeof t.millisecondsDecimalDigits=="number"?t.millisecondsDecimalDigits:0,x=h>=1?Math.round(h):Math.ceil(h),w=f?h.toFixed(f):x;o(Number.parseFloat(w),"millisecond","ms",w)}}else{let p=(r?Number(e%Cb):e)/1e3%60,u=typeof t.secondsDecimalDigits=="number"?t.secondsDecimalDigits:1,l=s(p,u),m=t.keepDecimalsOnWholeSeconds?l:l.replace(/\.0+$/,"");o(Number.parseFloat(m),"second","s",m)}if(n.length===0)return i+"0"+(t.verbose?" milliseconds":"ms");let d=t.colonNotation?":":" ";return typeof t.unitCount=="number"&&(n=n.slice(0,Math.max(t.unitCount,1))),i+n.join(d)}var Hd=(e,t)=>{e.failed&&Ie({type:"error",verboseMessage:e.shortMessage,verboseInfo:t,result:e})};var Kd=(e,t)=>{Tt(t)&&(Hd(e,t),Eb(e,t))},Eb=(e,t)=>{let r=`(done in ${Ns(e.durationMs)})`;Ie({type:"duration",verboseMessage:r,verboseInfo:t,result:e})};var Ut=(e,t,{reject:r})=>{if(Kd(e,t),e.failed&&r)throw e;return e};import{readFileSync as xu}from"fs";var Xd=(e,t)=>bt(e)?"asyncGenerator":eu(e)?"generator":Ki(e)?"fileUrl":Ob(e)?"filePath":Lb(e)?"webStream":$e(e,{checkOpen:!1})?"native":Q(e)?"uint8Array":Mb(e)?"asyncIterable":Fb(e)?"iterable":Vs(e)?Zd({transform:e},t):Rb(e)?Pb(e,t):"native",Pb=(e,t)=>Ls(e.transform,{checkOpen:!1})?Tb(e,t):Vs(e.transform)?Zd(e,t):Ib(e,t),Tb=(e,t)=>(Qd(e,t,"Duplex stream"),"duplex"),Zd=(e,t)=>(Qd(e,t,"web TransformStream"),"webTransform"),Qd=({final:e,binary:t,objectMode:r},i,n)=>{Yd(e,`${i}.final`,n),Yd(t,`${i}.binary`,n),Gs(r,`${i}.objectMode`)},Yd=(e,t,r)=>{if(e!==void 0)throw new TypeError(`The \`${t}\` option can only be defined when using a generator, not a ${r}.`)},Ib=({transform:e,final:t,binary:r,objectMode:i},n)=>{if(e!==void 0&&!Jd(e))throw new TypeError(`The \`${n}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(Ls(t,{checkOpen:!1}))throw new TypeError(`The \`${n}.final\` option must not be a Duplex stream.`);if(Vs(t))throw new TypeError(`The \`${n}.final\` option must not be a web TransformStream.`);if(t!==void 0&&!Jd(t))throw new TypeError(`The \`${n}.final\` option must be a generator.`);return Gs(r,`${n}.binary`),Gs(i,`${n}.objectMode`),bt(e)||bt(t)?"asyncGenerator":"generator"},Gs=(e,t)=>{if(e!==void 0&&typeof e!="boolean")throw new TypeError(`The \`${t}\` option must use a boolean.`)},Jd=e=>bt(e)||eu(e),bt=e=>Object.prototype.toString.call(e)==="[object AsyncGeneratorFunction]",eu=e=>Object.prototype.toString.call(e)==="[object GeneratorFunction]",Rb=e=>K(e)&&(e.transform!==void 0||e.final!==void 0),Ki=e=>Object.prototype.toString.call(e)==="[object URL]",tu=e=>Ki(e)&&e.protocol!=="file:",Ob=e=>K(e)&&Object.keys(e).length>0&&Object.keys(e).every(t=>jb.has(t))&&zs(e.file),jb=new Set(["file","append"]),zs=e=>typeof e=="string",ru=(e,t)=>e==="native"&&typeof t=="string"&&!Db.has(t),Db=new Set(["ipc","ignore","inherit","overlapped","pipe"]),iu=e=>Object.prototype.toString.call(e)==="[object ReadableStream]",Yi=e=>Object.prototype.toString.call(e)==="[object WritableStream]",Lb=e=>iu(e)||Yi(e),Vs=e=>iu(e?.readable)&&Yi(e?.writable),Mb=e=>nu(e)&&typeof e[Symbol.asyncIterator]=="function",Fb=e=>nu(e)&&typeof e[Symbol.iterator]=="function",nu=e=>typeof e=="object"&&e!==null,xe=new Set(["generator","asyncGenerator","duplex","webTransform"]),Ji=new Set(["fileUrl","filePath","fileNumber"]),Ws=new Set(["fileUrl","filePath"]),su=new Set([...Ws,"webStream","nodeStream"]),ou=new Set(["webTransform","duplex"]),ot={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"};var Hs=(e,t,r,i)=>i==="output"?Bb(e,t,r):Ub(e,t,r),Bb=(e,t,r)=>{let i=t!==0&&r[t-1].value.readableObjectMode;return{writableObjectMode:i,readableObjectMode:e??i}},Ub=(e,t,r)=>{let i=t===0?e===!0:r[t-1].value.readableObjectMode,n=t!==r.length-1&&(e??i);return{writableObjectMode:i,readableObjectMode:n}},au=(e,t)=>{let r=e.findLast(({type:i})=>xe.has(i));return r===void 0?!1:t==="input"?r.value.writableObjectMode:r.value.readableObjectMode};var cu=(e,t,r,i)=>[...e.filter(({type:n})=>!xe.has(n)),...Nb(e,t,r,i)],Nb=(e,t,r,{encoding:i})=>{let n=e.filter(({type:o})=>xe.has(o)),s=Array.from({length:n.length});for(let[o,a]of Object.entries(n))s[o]=Gb({stdioItem:a,index:Number(o),newTransforms:s,optionName:t,direction:r,encoding:i});return Hb(s,r)},Gb=({stdioItem:e,stdioItem:{type:t},index:r,newTransforms:i,optionName:n,direction:s,encoding:o})=>t==="duplex"?zb({stdioItem:e,optionName:n}):t==="webTransform"?Vb({stdioItem:e,index:r,newTransforms:i,direction:s}):Wb({stdioItem:e,index:r,newTransforms:i,direction:s,encoding:o}),zb=({stdioItem:e,stdioItem:{value:{transform:t,transform:{writableObjectMode:r,readableObjectMode:i},objectMode:n=i}},optionName:s})=>{if(n&&!i)throw new TypeError(`The \`${s}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!n&&i)throw new TypeError(`The \`${s}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...e,value:{transform:t,writableObjectMode:r,readableObjectMode:i}}},Vb=({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:i,direction:n})=>{let{transform:s,objectMode:o}=K(t)?t:{transform:t},{writableObjectMode:a,readableObjectMode:c}=Hs(o,r,i,n);return{...e,value:{transform:s,writableObjectMode:a,readableObjectMode:c}}},Wb=({stdioItem:e,stdioItem:{value:t},index:r,newTransforms:i,direction:n,encoding:s})=>{let{transform:o,final:a,binary:c=!1,preserveNewlines:d=!1,objectMode:p}=K(t)?t:{transform:t},u=c||ye.has(s),{writableObjectMode:l,readableObjectMode:m}=Hs(p,r,i,n);return{...e,value:{transform:o,final:a,binary:u,preserveNewlines:d,writableObjectMode:l,readableObjectMode:m}}},Hb=(e,t)=>t==="input"?e.reverse():e;import Ks from"process";var pu=(e,t,r)=>{let i=e.map(n=>Kb(n,t));if(i.includes("input")&&i.includes("output"))throw new TypeError(`The \`${r}\` option must not be an array of both readable and writable values.`);return i.find(Boolean)??Xb},Kb=({type:e,value:t},r)=>Yb[r]??du[e](t),Yb=["input","output","output"],Nt=()=>{},Ys=()=>"input",du={generator:Nt,asyncGenerator:Nt,fileUrl:Nt,filePath:Nt,iterable:Ys,asyncIterable:Ys,uint8Array:Ys,webStream:e=>Yi(e)?"output":"input",nodeStream(e){return _t(e,{checkOpen:!1})?Ds(e,{checkOpen:!1})?void 0:"input":"output"},webTransform:Nt,duplex:Nt,native(e){let t=Jb(e);if(t!==void 0)return t;if($e(e,{checkOpen:!1}))return du.nodeStream(e)}},Jb=e=>{if([0,Ks.stdin].includes(e))return"input";if([1,2,Ks.stdout,Ks.stderr].includes(e))return"output"},Xb="output";var uu=(e,t)=>t&&!e.includes("ipc")?[...e,"ipc"]:e;var lu=({stdio:e,ipc:t,buffer:r,...i},n,s)=>{let o=Zb(e,i).map((a,c)=>mu(a,c));return s?ew(o,r,n):uu(o,t)},Zb=(e,t)=>{if(e===void 0)return we.map(i=>t[i]);if(Qb(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${we.map(i=>`\`${i}\``).join(", ")}`);if(typeof e=="string")return[e,e,e];if(!Array.isArray(e))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let r=Math.max(e.length,we.length);return Array.from({length:r},(i,n)=>e[n])},Qb=e=>we.some(t=>e[t]!==void 0),mu=(e,t)=>Array.isArray(e)?e.map(r=>mu(r,t)):e??(t>=we.length?"ignore":"pipe"),ew=(e,t,r)=>e.map((i,n)=>!t[n]&&n!==0&&!It(r,n)&&tw(i)?"ignore":i),tw=e=>e==="pipe"||Array.isArray(e)&&e.every(t=>t==="pipe");import{readFileSync as rw}from"fs";import iw from"tty";var yu=({stdioItem:e,stdioItem:{type:t},isStdioArray:r,fdNumber:i,direction:n,isSync:s})=>!r||t!=="native"?e:s?nw({stdioItem:e,fdNumber:i,direction:n}):aw({stdioItem:e,fdNumber:i}),nw=({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:i,direction:n})=>{let s=sw({value:t,optionName:r,fdNumber:i,direction:n});if(s!==void 0)return s;if($e(t,{checkOpen:!1}))throw new TypeError(`The \`${r}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return e},sw=({value:e,optionName:t,fdNumber:r,direction:i})=>{let n=ow(e,r);if(n!==void 0){if(i==="output")return{type:"fileNumber",value:n,optionName:t};if(iw.isatty(n))throw new TypeError(`The \`${t}: ${qi(e)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:Ye(rw(n)),optionName:t}}},ow=(e,t)=>{if(e==="inherit")return t;if(typeof e=="number")return e;let r=ai.indexOf(e);if(r!==-1)return r},aw=({stdioItem:e,stdioItem:{value:t,optionName:r},fdNumber:i})=>t==="inherit"?{type:"nodeStream",value:hu(i,t,r),optionName:r}:typeof t=="number"?{type:"nodeStream",value:hu(t,t,r),optionName:r}:$e(t,{checkOpen:!1})?{type:"nodeStream",value:t,optionName:r}:e,hu=(e,t,r)=>{let i=ai[e];if(i===void 0)throw new TypeError(`The \`${r}: ${t}\` option is invalid: no such standard stream.`);return i};var fu=({input:e,inputFile:t},r)=>r===0?[...cw(e),...dw(t)]:[],cw=e=>e===void 0?[]:[{type:pw(e),value:e,optionName:"input"}],pw=e=>{if(_t(e,{checkOpen:!1}))return"nodeStream";if(typeof e=="string")return"string";if(Q(e))return"uint8Array";throw new Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},dw=e=>e===void 0?[]:[{...uw(e),optionName:"inputFile"}],uw=e=>{if(Ki(e))return{type:"fileUrl",value:e};if(zs(e))return{type:"filePath",value:{file:e}};throw new Error("The `inputFile` option must be a file path string or a file URL.")};var gu=e=>e.filter((t,r)=>e.every((i,n)=>t.value!==i.value||r>=n||t.type==="generator"||t.type==="asyncGenerator")),_u=({stdioItem:{type:e,value:t,optionName:r},direction:i,fileDescriptors:n,isSync:s})=>{let o=lw(n,e);if(o.length!==0){if(s){mw({otherStdioItems:o,type:e,value:t,optionName:r,direction:i});return}if(su.has(e))return bu({otherStdioItems:o,type:e,value:t,optionName:r,direction:i});ou.has(e)&&yw({otherStdioItems:o,type:e,value:t,optionName:r})}},lw=(e,t)=>e.flatMap(({direction:r,stdioItems:i})=>i.filter(n=>n.type===t).map((n=>({...n,direction:r})))),mw=({otherStdioItems:e,type:t,value:r,optionName:i,direction:n})=>{Ws.has(t)&&bu({otherStdioItems:e,type:t,value:r,optionName:i,direction:n})},bu=({otherStdioItems:e,type:t,value:r,optionName:i,direction:n})=>{let s=e.filter(a=>hw(a,r));if(s.length===0)return;let o=s.find(a=>a.direction!==n);return wu(o,i,t),n==="output"?s[0].stream:void 0},hw=({type:e,value:t},r)=>e==="filePath"?t.file===r.file:e==="fileUrl"?t.href===r.href:t===r,yw=({otherStdioItems:e,type:t,value:r,optionName:i})=>{let n=e.find(({value:{transform:s}})=>s===r.transform);wu(n,i,t)},wu=(e,t,r)=>{if(e!==void 0)throw new TypeError(`The \`${e.optionName}\` and \`${t}\` options must not target ${ot[r]} that is the same.`)};var Xi=(e,t,r,i)=>{let s=lu(t,r,i).map((a,c)=>fw({stdioOption:a,fdNumber:c,options:t,isSync:i})),o=Sw({initialFileDescriptors:s,addProperties:e,options:t,isSync:i});return t.stdio=o.map(({stdioItems:a})=>Aw(a)),o},fw=({stdioOption:e,fdNumber:t,options:r,isSync:i})=>{let n=ci(t),{stdioItems:s,isStdioArray:o}=gw({stdioOption:e,fdNumber:t,options:r,optionName:n}),a=pu(s,t,n),c=s.map(u=>yu({stdioItem:u,isStdioArray:o,fdNumber:t,direction:a,isSync:i})),d=cu(c,n,a,r),p=au(d,a);return vw(d,p),{direction:a,objectMode:p,stdioItems:d}},gw=({stdioOption:e,fdNumber:t,options:r,optionName:i})=>{let s=[...(Array.isArray(e)?e:[e]).map(c=>_w(c,i)),...fu(r,t)],o=gu(s),a=o.length>1;return bw(o,a,i),xw(o),{stdioItems:o,isStdioArray:a}},_w=(e,t)=>({type:Xd(e,t),value:e,optionName:t}),bw=(e,t,r)=>{if(e.length===0)throw new TypeError(`The \`${r}\` option must not be an empty array.`);if(t){for(let{value:i,optionName:n}of e)if(ww.has(i))throw new Error(`The \`${n}\` option must not include \`${i}\`.`)}},ww=new Set(["ignore","ipc"]),xw=e=>{for(let t of e)kw(t)},kw=({type:e,value:t,optionName:r})=>{if(tu(t))throw new TypeError(`The \`${r}: URL\` option must use the \`file:\` scheme.
|
|
135
|
+
For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(ru(e,t))throw new TypeError(`The \`${r}: { file: '...' }\` option must be used instead of \`${r}: '...'\`.`)},vw=(e,t)=>{if(!t)return;let r=e.find(({type:i})=>Ji.has(i));if(r!==void 0)throw new TypeError(`The \`${r.optionName}\` option cannot use both files and transforms in objectMode.`)},Sw=({initialFileDescriptors:e,addProperties:t,options:r,isSync:i})=>{let n=[];try{for(let s of e)n.push(qw({fileDescriptor:s,fileDescriptors:n,addProperties:t,options:r,isSync:i}));return n}catch(s){throw Js(n),s}},qw=({fileDescriptor:{direction:e,objectMode:t,stdioItems:r},fileDescriptors:i,addProperties:n,options:s,isSync:o})=>{let a=r.map(c=>$w({stdioItem:c,addProperties:n,direction:e,options:s,fileDescriptors:i,isSync:o}));return{direction:e,objectMode:t,stdioItems:a}},$w=({stdioItem:e,addProperties:t,direction:r,options:i,fileDescriptors:n,isSync:s})=>{let o=_u({stdioItem:e,direction:r,fileDescriptors:n,isSync:s});return o!==void 0?{...e,stream:o}:{...e,...t[r][e.type](e,i)}},Js=e=>{for(let{stdioItems:t}of e)for(let{stream:r}of t)r!==void 0&&!ve(r)&&r.destroy()},Aw=e=>{if(e.length>1)return e.some(({value:i})=>i==="overlapped")?"overlapped":"pipe";let[{type:t,value:r}]=e;return t==="native"?r:"pipe"};var vu=(e,t)=>Xi(Ew,e,t,!0),De=({type:e,optionName:t})=>{Su(t,ot[e])},Cw=({optionName:e,value:t})=>((t==="ipc"||t==="overlapped")&&Su(e,`"${t}"`),{}),Su=(e,t)=>{throw new TypeError(`The \`${e}\` option cannot be ${t} with synchronous methods.`)},ku={generator(){},asyncGenerator:De,webStream:De,nodeStream:De,webTransform:De,duplex:De,asyncIterable:De,native:Cw},Ew={input:{...ku,fileUrl:({value:e})=>({contents:[Ye(xu(e))]}),filePath:({value:{file:e}})=>({contents:[Ye(xu(e))]}),fileNumber:De,iterable:({value:e})=>({contents:[...e]}),string:({value:e})=>({contents:[e]}),uint8Array:({value:e})=>({contents:[e]})},output:{...ku,fileUrl:({value:e})=>({path:e}),filePath:({value:{file:e,append:t}})=>({path:e,append:t}),fileNumber:({value:e})=>({path:e}),iterable:De,string:De,uint8Array:De}};var Ze=(e,{stripFinalNewline:t},r)=>Xs(t,r)&&e!==void 0&&!Array.isArray(e)?Mt(e):e,Xs=(e,t)=>t==="all"?e[1]||e[2]:e[t];import{Transform as Jw,getDefaultHighWaterMark as ju}from"stream";var Zi=(e,t,r,i)=>e||r?void 0:$u(t,i),Qs=(e,t,r)=>r?e.flatMap(i=>qu(i,t)):qu(e,t),qu=(e,t)=>{let{transform:r,final:i}=$u(t,{});return[...r(e),...i()]},$u=(e,t)=>(t.previousChunks="",{transform:Pw.bind(void 0,t,e),final:Iw.bind(void 0,t)}),Pw=function*(e,t,r){if(typeof r!="string"){yield r;return}let{previousChunks:i}=e,n=-1;for(let s=0;s<r.length;s+=1)if(r[s]===`
|
|
136
|
+
`){let o=Tw(r,s,t,e),a=r.slice(n+1,s+1-o);i.length>0&&(a=Zs(i,a),i=""),yield a,n=s}n!==r.length-1&&(i=Zs(i,r.slice(n+1))),e.previousChunks=i},Tw=(e,t,r,i)=>r?0:(i.isWindowsNewline=t!==0&&e[t-1]==="\r",i.isWindowsNewline?2:1),Iw=function*({previousChunks:e}){e.length>0&&(yield e)},Au=({binary:e,preserveNewlines:t,readableObjectMode:r,state:i})=>e||t||r?void 0:{transform:Rw.bind(void 0,i)},Rw=function*({isWindowsNewline:e=!1},t){let{unixNewline:r,windowsNewline:i,LF:n,concatBytes:s}=typeof t=="string"?Ow:Dw;if(t.at(-1)===n){yield t;return}yield s(t,e?i:r)},Zs=(e,t)=>`${e}${t}`,Ow={windowsNewline:`\r
|
|
137
137
|
`,unixNewline:`
|
|
138
138
|
`,LF:`
|
|
139
|
-
`,concatBytes:
|
|
139
|
+
`,concatBytes:Zs},jw=(e,t)=>{let r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r},Dw={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:jw};import{Buffer as Lw}from"buffer";var Cu=(e,t)=>e?void 0:Mw.bind(void 0,t),Mw=function*(e,t){if(typeof t!="string"&&!Q(t)&&!Lw.isBuffer(t))throw new TypeError(`The \`${e}\` option's transform must use "objectMode: true" to receive as input: ${typeof t}.`);yield t},Eu=(e,t)=>e?Fw.bind(void 0,t):Bw.bind(void 0,t),Fw=function*(e,t){Pu(e,t),yield t},Bw=function*(e,t){if(Pu(e,t),typeof t!="string"&&!Q(t))throw new TypeError(`The \`${e}\` option's function must yield a string or an Uint8Array, not ${typeof t}.`);yield t},Pu=(e,t)=>{if(t==null)throw new TypeError(`The \`${e}\` option's function must not call \`yield ${t}\`.
|
|
140
140
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
141
|
-
if (condition) { yield value; }`)};import{Buffer as Iw}from"buffer";import{StringDecoder as Rw}from"string_decoder";var Ki=(e,t,r)=>{if(r)return;if(e)return{transform:Ow.bind(void 0,new TextEncoder)};let i=new Rw(t);return{transform:jw.bind(void 0,i),final:Dw.bind(void 0,i)}},Ow=function*(e,t){Iw.isBuffer(t)?yield We(t):typeof t=="string"?yield e.encode(t):yield t},jw=function*(e,t){yield Z(t)?e.write(t):t},Dw=function*(e){let t=e.end();t!==""&&(yield t)};import{callbackify as qu}from"util";var Js=qu(async(e,t,r,i)=>{t.currentIterable=e(...r);try{for await(let n of t.currentIterable)i.push(n)}finally{delete t.currentIterable}}),Yi=async function*(e,t,r){if(r===t.length){yield e;return}let{transform:i=Mw}=t[r];for await(let n of i(e))yield*Yi(n,t,r+1)},$u=async function*(e){for(let[t,{final:r}]of Object.entries(e))yield*Lw(r,Number(t),e)},Lw=async function*(e,t,r){if(e!==void 0)for await(let i of e())yield*Yi(i,r,t+1)},Au=qu(async({currentIterable:e},t)=>{if(e!==void 0){await(t?e.throw(t):e.return());return}if(t)throw t}),Mw=function*(e){yield e};var Xs=(e,t,r,i)=>{try{for(let n of e(...t))r.push(n);i()}catch(n){i(n)}},Cu=(e,t)=>[...t.flatMap(r=>[..._t(r,e,0)]),...mr(e)],_t=function*(e,t,r){if(r===t.length){yield e;return}let{transform:i=Bw}=t[r];for(let n of i(e))yield*_t(n,t,r+1)},mr=function*(e){for(let[t,{final:r}]of Object.entries(e))yield*Fw(r,Number(t),e)},Fw=function*(e,t,r){if(e!==void 0)for(let i of e())yield*_t(i,r,t+1)},Bw=function*(e){yield e};var Zs=({value:e,value:{transform:t,final:r,writableObjectMode:i,readableObjectMode:n},optionName:s},{encoding:o})=>{let a={},c=Pu(e,o,s),d=gt(t),p=gt(r),u=d?Js.bind(void 0,Yi,a):Xs.bind(void 0,_t),l=d||p?Js.bind(void 0,$u,a):Xs.bind(void 0,mr),m=d||p?Au.bind(void 0,a):void 0;return{stream:new Uw({writableObjectMode:i,writableHighWaterMark:Eu(i),readableObjectMode:n,readableHighWaterMark:Eu(n),transform(f,x,w){u([f,c,0],this,w)},flush(f){l([c],this,f)},destroy:m})}},Ji=(e,t,r,i)=>{let n=t.filter(({type:o})=>o==="generator"),s=i?n.reverse():n;for(let{value:o,optionName:a}of s){let c=Pu(o,r,a);e=Cu(c,e)}return e},Pu=({transform:e,final:t,binary:r,writableObjectMode:i,readableObjectMode:n,preserveNewlines:s},o,a)=>{let c={};return[{transform:ku(i,a)},Ki(r,o,i),Hi(r,s,i,c),{transform:e,final:t},{transform:vu(n,a)},xu({binary:r,preserveNewlines:s,readableObjectMode:n,state:c})].filter(Boolean)};var Tu=(e,t)=>{for(let r of Nw(e))Gw(e,r,t)},Nw=e=>new Set(Object.entries(e).filter(([,{direction:t}])=>t==="input").map(([t])=>Number(t))),Gw=(e,t,r)=>{let{stdioItems:i}=e[t],n=i.filter(({contents:a})=>a!==void 0);if(n.length===0)return;if(t!==0){let[{type:a,optionName:c}]=n;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${st[a]} with synchronous methods.`)}let o=n.map(({contents:a})=>a).map(a=>zw(a,i));r.input=ir(o)},zw=(e,t)=>{let r=Ji(e,t,"utf8",!0);return Vw(r),ir(r)},Vw=e=>{let t=e.find(r=>typeof r!="string"&&!Z(r));if(t!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)};import{writeFileSync as Yw,appendFileSync as Jw}from"fs";var Xi=({stdioItems:e,encoding:t,verboseInfo:r,fdNumber:i})=>i!=="all"&&Tt(r,i)&&!ye.has(t)&&Ww(i)&&(e.some(({type:n,value:s})=>n==="native"&&Hw.has(s))||e.every(({type:n})=>we.has(n))),Ww=e=>e===1||e===2,Hw=new Set(["pipe","overlapped"]),Iu=async(e,t,r,i)=>{for await(let n of e)Kw(t)||Ou(n,r,i)},Ru=(e,t,r)=>{for(let i of e)Ou(i,t,r)},Kw=e=>e._readableState.pipes.length>0,Ou=(e,t,r)=>{let i=pi(e);Pe({type:"output",verboseMessage:i,fdNumber:t,verboseInfo:r})};var ju=({fileDescriptors:e,syncResult:{output:t},options:r,isMaxBuffer:i,verboseInfo:n})=>{if(t===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:t.map((c,d)=>Xw({result:c,fileDescriptors:e,fdNumber:d,state:s,outputFiles:o,isMaxBuffer:i,verboseInfo:n},r)),...s}},Xw=({result:e,fileDescriptors:t,fdNumber:r,state:i,outputFiles:n,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:d,stripFinalNewline:p,maxBuffer:u})=>{if(e===null)return;let l=Dd(e,s,u),m=We(l),{stdioItems:h,objectMode:f}=t[r],x=Zw([m],h,c,i),{serializedResult:w,finalResult:S=w}=Qw({chunks:x,objectMode:f,encoding:c,lines:d,stripFinalNewline:p,fdNumber:r});ex({serializedResult:w,fdNumber:r,state:i,verboseInfo:o,encoding:c,stdioItems:h,objectMode:f});let g=a[r]?S:void 0;try{return i.error===void 0&&tx(w,h,n),g}catch(I){return i.error=I,g}},Zw=(e,t,r,i)=>{try{return Ji(e,t,r,!1)}catch(n){return i.error=n,e}},Qw=({chunks:e,objectMode:t,encoding:r,lines:i,stripFinalNewline:n,fdNumber:s})=>{if(t)return{serializedResult:e};if(r==="buffer")return{serializedResult:ir(e)};let o=Ja(e,r);return i[s]?{serializedResult:o,finalResult:Ys(o,!n[s],t)}:{serializedResult:o}},ex=({serializedResult:e,fdNumber:t,state:r,verboseInfo:i,encoding:n,stdioItems:s,objectMode:o})=>{if(!Xi({stdioItems:s,encoding:n,verboseInfo:i,fdNumber:t}))return;let a=Ys(e,!1,o);try{Ru(a,t,i)}catch(c){r.error??=c}},tx=(e,t,r)=>{for(let{path:i,append:n}of t.filter(({type:s})=>Vi.has(s))){let s=typeof i=="string"?i:i.toString();n||r.has(s)?Jw(i,e):(r.add(s),Yw(i,e))}};var Du=([,e,t],r)=>{if(r.all)return e===void 0?t:t===void 0?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,Ye(t,r,"all")]:Array.isArray(t)?[Ye(e,r,"all"),...t]:Z(e)&&Z(t)?ns([e,t]):`${e}${t}`};import{once as Qs}from"events";var Lu=async(e,t)=>{let[r,i]=await rx(e);return t.isForcefullyTerminated??=!1,[r,i]},rx=async e=>{let[t,r]=await Promise.allSettled([Qs(e,"spawn"),Qs(e,"exit")]);return t.status==="rejected"?[]:r.status==="rejected"?Mu(e):r.value},Mu=async e=>{try{return await Qs(e,"exit")}catch{return Mu(e)}},Fu=async e=>{let[t,r]=await e;if(!ix(t,r)&&eo(t,r))throw new ve;return[t,r]},ix=(e,t)=>e===void 0&&t===void 0,eo=(e,t)=>e!==0||t!==null;var Bu=({error:e,status:t,signal:r,output:i},{maxBuffer:n})=>{let s=nx(e,t,r),o=s?.code==="ETIMEDOUT",a=jd(s,i,n);return{resultError:s,exitCode:t,signal:r,timedOut:o,isMaxBuffer:a}},nx=(e,t,r)=>e!==void 0?e:eo(t,r)?new ve:void 0;var Uu=(e,t,r)=>{let{file:i,commandArguments:n,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:d,fileDescriptors:p}=ox(e,t,r),u=px({file:i,commandArguments:n,options:d,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:p,startTime:a});return Bt(u,c,d)},ox=(e,t,r)=>{let{command:i,escapedCommand:n,startTime:s,verboseInfo:o}=ui(e,t,r),a=ax(r),{file:c,commandArguments:d,options:p}=Ii(e,t,a);cx(p);let u=gu(p,o);return{file:c,commandArguments:d,command:i,escapedCommand:n,startTime:s,verboseInfo:o,options:p,fileDescriptors:u}},ax=e=>e.node&&!e.ipc?{...e,ipc:!1}:e,cx=({ipc:e,ipcInput:t,detached:r,cancelSignal:i})=>{t&&Zi("ipcInput"),e&&Zi("ipc: true"),r&&Zi("detached: true"),i&&Zi("cancelSignal")},Zi=e=>{throw new TypeError(`The "${e}" option cannot be used with synchronous methods.`)},px=({file:e,commandArguments:t,options:r,command:i,escapedCommand:n,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=dx({file:e,commandArguments:t,options:r,command:i,escapedCommand:n,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:d,exitCode:p,signal:u,timedOut:l,isMaxBuffer:m}=Bu(c,r),{output:h,error:f=d}=ju({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:m,verboseInfo:s}),x=h.map((S,g)=>Ye(S,r,g)),w=Ye(Du(h,r),r,"all");return lx({error:f,exitCode:p,signal:u,timedOut:l,isMaxBuffer:m,stdio:x,all:w,options:r,command:i,escapedCommand:n,startTime:a})},dx=({file:e,commandArguments:t,options:r,command:i,escapedCommand:n,fileDescriptors:s,startTime:o})=>{try{Tu(s,r);let a=ux(r);return sx(...Ri(e,t,a))}catch(a){return Ft({error:a,command:i,escapedCommand:n,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},ux=({encoding:e,maxBuffer:t,...r})=>({...r,encoding:"buffer",maxBuffer:Ui(t)}),lx=({error:e,exitCode:t,signal:r,timedOut:i,isMaxBuffer:n,stdio:s,all:o,options:a,command:c,escapedCommand:d,startTime:p})=>e===void 0?Ni({command:c,escapedCommand:d,stdio:s,all:o,ipcOutput:[],options:a,startTime:p}):lr({error:e,command:c,escapedCommand:d,timedOut:i,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:n,isForcefullyTerminated:!1,exitCode:t,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:p,isSync:!0});import{setMaxListeners as Q0}from"events";import{spawn as ek}from"child_process";import Wu from"process";import{once as to,on as mx}from"events";var Nu=({anyProcess:e,channel:t,isSubprocess:r,ipc:i},{reference:n=!0,filter:s}={})=>(Ot({methodName:"getOneMessage",isSubprocess:r,ipc:i,isConnected:$i(e)}),hx({anyProcess:e,channel:t,isSubprocess:r,filter:s,reference:n})),hx=async({anyProcess:e,channel:t,isSubprocess:r,filter:i,reference:n})=>{ki(t,n);let s=nt(e,t,r),o=new AbortController;try{return await Promise.race([yx(s,i,o),fx(s,r,o),gx(s,r,o)])}catch(a){throw jt(e),a}finally{o.abort(),vi(t,n)}},yx=async(e,t,{signal:r})=>{if(t===void 0){let[i]=await to(e,"message",{signal:r});return i}for await(let[i]of mx(e,"message",{signal:r}))if(t(i))return i},fx=async(e,t,{signal:r})=>{await to(e,"disconnect",{signal:r}),Cp(t)},gx=async(e,t,{signal:r})=>{let[i]=await to(e,"strict:error",{signal:r});throw bi(i,t)};import{once as zu,on as _x}from"events";var Vu=({anyProcess:e,channel:t,isSubprocess:r,ipc:i},{reference:n=!0}={})=>ro({anyProcess:e,channel:t,isSubprocess:r,ipc:i,shouldAwait:!r,reference:n}),ro=({anyProcess:e,channel:t,isSubprocess:r,ipc:i,shouldAwait:n,reference:s})=>{Ot({methodName:"getEachMessage",isSubprocess:r,ipc:i,isConnected:$i(e)}),ki(t,s);let o=nt(e,t,r),a=new AbortController,c={};return bx(e,o,a),wx({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),xx({anyProcess:e,channel:t,ipcEmitter:o,isSubprocess:r,shouldAwait:n,controller:a,state:c,reference:s})},bx=async(e,t,r)=>{try{await zu(t,"disconnect",{signal:r.signal}),r.abort()}catch{}},wx=async({ipcEmitter:e,isSubprocess:t,controller:r,state:i})=>{try{let[n]=await zu(e,"strict:error",{signal:r.signal});i.error=bi(n,t),r.abort()}catch{}},xx=async function*({anyProcess:e,channel:t,ipcEmitter:r,isSubprocess:i,shouldAwait:n,controller:s,state:o,reference:a}){try{for await(let[c]of _x(r,"message",{signal:s.signal}))Gu(o),yield c}catch{Gu(o)}finally{s.abort(),vi(t,a),i||jt(e),n&&await e}},Gu=({error:e})=>{if(e)throw e};var Hu=(e,{ipc:t})=>{Object.assign(e,Yu(e,!1,t))},Ku=()=>{let e=Wu,t=!0,r=Wu.channel!==void 0;return{...Yu(e,t,r),getCancelSignal:td.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r})}},Yu=(e,t,r)=>({sendMessage:Pi.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r}),getOneMessage:Nu.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r}),getEachMessage:Vu.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r})});import{ChildProcess as kx}from"child_process";import{PassThrough as vx,Readable as Sx,Writable as qx,Duplex as $x}from"stream";var Ju=({error:e,command:t,escapedCommand:r,fileDescriptors:i,options:n,startTime:s,verboseInfo:o})=>{Ws(i);let a=new kx;Ax(a,i),Object.assign(a,{readable:Cx,writable:Ex,duplex:Px});let c=Ft({error:e,command:t,escapedCommand:r,fileDescriptors:i,options:n,startTime:s,isSync:!1}),d=Tx(c,o,n);return{subprocess:a,promise:d}},Ax=(e,t)=>{let r=hr(),i=hr(),n=hr(),s=Array.from({length:t.length-3},hr),o=hr(),a=[r,i,n,...s];Object.assign(e,{stdin:r,stdout:i,stderr:n,all:o,stdio:a})},hr=()=>{let e=new vx;return e.end(),e},Cx=()=>new Sx({read(){}}),Ex=()=>new qx({write(){}}),Px=()=>new $x({read(){},write(){}}),Tx=async(e,t,r)=>Bt(e,t,r);import{createReadStream as Xu,createWriteStream as Zu}from"fs";import{Buffer as Ix}from"buffer";import{Readable as yr,Writable as Rx,Duplex as Ox}from"stream";var el=(e,t)=>Wi(jx,e,t,!1),fr=({type:e,optionName:t})=>{throw new TypeError(`The \`${t}\` option cannot be ${st[e]}.`)},Qu={fileNumber:fr,generator:Zs,asyncGenerator:Zs,nodeStream:({value:e})=>({stream:e}),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:r}}){let i=t||r;return{stream:Ox.fromWeb(e,{objectMode:i})}},duplex:({value:{transform:e}})=>({stream:e}),native(){}},jx={input:{...Qu,fileUrl:({value:e})=>({stream:Xu(e)}),filePath:({value:{file:e}})=>({stream:Xu(e)}),webStream:({value:e})=>({stream:yr.fromWeb(e)}),iterable:({value:e})=>({stream:yr.from(e)}),asyncIterable:({value:e})=>({stream:yr.from(e)}),string:({value:e})=>({stream:yr.from(e)}),uint8Array:({value:e})=>({stream:yr.from(Ix.from(e))})},output:{...Qu,fileUrl:({value:e})=>({stream:Zu(e)}),filePath:({value:{file:e,append:t}})=>({stream:Zu(e,t?{flags:"a"}:{})}),webStream:({value:e})=>({stream:Rx.fromWeb(e)}),iterable:fr,asyncIterable:fr,string:fr,uint8Array:fr}};import{on as Dx,once as tl}from"events";import{PassThrough as Lx,getDefaultHighWaterMark as Mx}from"stream";import{finished as nl}from"stream/promises";function bt(e){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);for(let n of e)no(n);let t=e.some(({readableObjectMode:n})=>n),r=Fx(e,t),i=new io({objectMode:t,writableHighWaterMark:r,readableHighWaterMark:r});for(let n of e)i.add(n);return i}var Fx=(e,t)=>{if(e.length===0)return Mx(t);let r=e.filter(({readableObjectMode:i})=>i===t).map(({readableHighWaterMark:i})=>i);return Math.max(...r)},io=class extends Lx{#t=new Set([]);#r=new Set([]);#e=new Set([]);#i;#s=Symbol("unpipe");#n=new WeakMap;add(t){if(no(t),this.#t.has(t))return;this.#t.add(t),this.#i??=Bx(this,this.#t,this.#s);let r=Gx({passThroughStream:this,stream:t,streams:this.#t,ended:this.#r,aborted:this.#e,onFinished:this.#i,unpipeEvent:this.#s});this.#n.set(t,r),t.pipe(this,{end:!1})}async remove(t){if(no(t),!this.#t.has(t))return!1;let r=this.#n.get(t);return r===void 0?!1:(this.#n.delete(t),t.unpipe(this),await r,!0)}},Bx=async(e,t,r)=>{Qi(e,rl);let i=new AbortController;try{await Promise.race([Ux(e,i),Nx(e,t,r,i)])}finally{i.abort(),Qi(e,-rl)}},Ux=async(e,{signal:t})=>{try{await nl(e,{signal:t,cleanup:!0})}catch(r){throw sl(e,r),r}},Nx=async(e,t,r,{signal:i})=>{for await(let[n]of Dx(e,"unpipe",{signal:i}))t.has(n)&&n.emit(r)},no=e=>{if(typeof e?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},Gx=async({passThroughStream:e,stream:t,streams:r,ended:i,aborted:n,onFinished:s,unpipeEvent:o})=>{Qi(e,il);let a=new AbortController;try{await Promise.race([zx(s,t,a),Vx({passThroughStream:e,stream:t,streams:r,ended:i,aborted:n,controller:a}),Wx({stream:t,streams:r,ended:i,aborted:n,unpipeEvent:o,controller:a})])}finally{a.abort(),Qi(e,-il)}r.size>0&&r.size===i.size+n.size&&(i.size===0&&n.size>0?so(e):Hx(e))},zx=async(e,t,{signal:r})=>{try{await e,r.aborted||so(t)}catch(i){r.aborted||sl(t,i)}},Vx=async({passThroughStream:e,stream:t,streams:r,ended:i,aborted:n,controller:{signal:s}})=>{try{await nl(t,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(t)&&i.add(t)}catch(o){if(s.aborted||!r.has(t))return;ol(o)?n.add(t):al(e,o)}},Wx=async({stream:e,streams:t,ended:r,aborted:i,unpipeEvent:n,controller:{signal:s}})=>{if(await tl(e,n,{signal:s}),!e.readable)return tl(s,"abort",{signal:s});t.delete(e),r.delete(e),i.delete(e)},Hx=e=>{e.writable&&e.end()},sl=(e,t)=>{ol(t)?so(e):al(e,t)},ol=e=>e?.code==="ERR_STREAM_PREMATURE_CLOSE",so=e=>{(e.readable||e.writable)&&e.destroy()},al=(e,t)=>{e.destroyed||(e.once("error",Kx),e.destroy(t))},Kx=()=>{},Qi=(e,t)=>{let r=e.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&e.setMaxListeners(r+t)},rl=2,il=1;import{finished as cl}from"stream/promises";var Nt=(e,t)=>{e.pipe(t),Yx(e,t),Jx(e,t)},Yx=async(e,t)=>{if(!(ke(e)||ke(t))){try{await cl(e,{cleanup:!0,readable:!0,writable:!1})}catch{}oo(t)}},oo=e=>{e.writable&&e.end()},Jx=async(e,t)=>{if(!(ke(e)||ke(t))){try{await cl(t,{cleanup:!0,readable:!1,writable:!0})}catch{}ao(e)}},ao=e=>{e.readable&&e.destroy()};var pl=(e,t,r)=>{let i=new Map;for(let[n,{stdioItems:s,direction:o}]of Object.entries(t)){for(let{stream:a}of s.filter(({type:c})=>we.has(c)))Xx(e,a,o,n);for(let{stream:a}of s.filter(({type:c})=>!we.has(c)))Qx({subprocess:e,stream:a,direction:o,fdNumber:n,pipeGroups:i,controller:r})}for(let[n,s]of i.entries()){let o=s.length===1?s[0]:bt(s);Nt(o,n)}},Xx=(e,t,r,i)=>{r==="output"?Nt(e.stdio[i],t):Nt(t,e.stdio[i]);let n=Zx[i];n!==void 0&&(e[n]=t),e.stdio[i]=t},Zx=["stdin","stdout","stderr"],Qx=({subprocess:e,stream:t,direction:r,fdNumber:i,pipeGroups:n,controller:s})=>{if(t===void 0)return;e0(t,s);let[o,a]=r==="output"?[t,e.stdio[i]]:[e.stdio[i],t],c=n.get(o)??[];n.set(o,[...c,a])},e0=(e,{signal:t})=>{ke(e)&&yt(e,t0,t)},t0=2;import{addAbortListener as n0}from"events";var wt=[];wt.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&wt.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&wt.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var en=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",co=Symbol.for("signal-exit emitter"),po=globalThis,r0=Object.defineProperty.bind(Object),uo=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(po[co])return po[co];r0(po,co,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let i=this.listeners[t],n=i.indexOf(r);n!==-1&&(n===0&&i.length===1?i.length=0:i.splice(n,1))}emit(t,r,i){if(this.emitted[t])return!1;this.emitted[t]=!0;let n=!1;for(let s of this.listeners[t])n=s(r,i)===!0||n;return t==="exit"&&(n=this.emit("afterExit",r,i)||n),n}},tn=class{},i0=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),lo=class extends tn{onExit(){return()=>{}}load(){}unload(){}},mo=class extends tn{#t=ho.platform==="win32"?"SIGINT":"SIGHUP";#r=new uo;#e;#i;#s;#n={};#o=!1;constructor(t){super(),this.#e=t,this.#n={};for(let r of wt)this.#n[r]=()=>{let i=this.#e.listeners(r),{count:n}=this.#r,s=t;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(n+=s.__signal_exit_emitter__.count),i.length===n){this.unload();let o=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#t:r;o||t.kill(t.pid,a)}};this.#s=t.reallyExit,this.#i=t.emit}onExit(t,r){if(!en(this.#e))return()=>{};this.#o===!1&&this.load();let i=r?.alwaysLast?"afterExit":"exit";return this.#r.on(i,t),()=>{this.#r.removeListener(i,t),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#r.count+=1;for(let t of wt)try{let r=this.#n[t];r&&this.#e.on(t,r)}catch{}this.#e.emit=(t,...r)=>this.#c(t,...r),this.#e.reallyExit=t=>this.#a(t)}}unload(){this.#o&&(this.#o=!1,wt.forEach(t=>{let r=this.#n[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,r)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#r.count-=1)}#a(t){return en(this.#e)?(this.#e.exitCode=t||0,this.#r.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#c(t,...r){let i=this.#i;if(t==="exit"&&en(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let n=i.call(this.#e,t,...r);return this.#r.emit("exit",this.#e.exitCode,null),n}else return i.call(this.#e,t,...r)}},ho=globalThis.process,{onExit:dl,load:YR,unload:JR}=i0(en(ho)?new mo(ho):new lo);var ul=(e,{cleanup:t,detached:r},{signal:i})=>{if(!t||r)return;let n=dl(()=>{e.kill()});n0(i,()=>{n()})};var ml=({source:e,sourcePromise:t,boundOptions:r,createNested:i},...n)=>{let s=di(),{destination:o,destinationStream:a,destinationError:c,from:d,unpipeSignal:p}=s0(r,i,n),{sourceStream:u,sourceError:l}=a0(e,d),{options:m,fileDescriptors:h}=Ie.get(e);return{sourcePromise:t,sourceStream:u,sourceOptions:m,sourceError:l,destination:o,destinationStream:a,destinationError:c,unpipeSignal:p,fileDescriptors:h,startTime:s}},s0=(e,t,r)=>{try{let{destination:i,pipeOptions:{from:n,to:s,unpipeSignal:o}={}}=o0(e,t,...r),a=xi(i,s);return{destination:i,destinationStream:a,from:n,unpipeSignal:o}}catch(i){return{destinationError:i}}},o0=(e,t,r,...i)=>{if(Array.isArray(r))return{destination:t(ll,e)(r,...i),pipeOptions:e};if(typeof r=="string"||r instanceof URL||rs(r)){if(Object.keys(e).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[n,s,o]=ei(r,...i);return{destination:t(ll)(n,s,o),pipeOptions:o}}if(Ie.has(r)){if(Object.keys(e).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:i[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},ll=({options:e})=>({options:{...e,stdin:"pipe",piped:!0}}),a0=(e,t)=>{try{return{sourceStream:Dt(e,t)}}catch(r){return{sourceError:r}}};var yl=({sourceStream:e,sourceError:t,destinationStream:r,destinationError:i,fileDescriptors:n,sourceOptions:s,startTime:o})=>{let a=c0({sourceStream:e,sourceError:t,destinationStream:r,destinationError:i});if(a!==void 0)throw yo({error:a,fileDescriptors:n,sourceOptions:s,startTime:o})},c0=({sourceStream:e,sourceError:t,destinationStream:r,destinationError:i})=>{if(t!==void 0&&i!==void 0)return i;if(i!==void 0)return ao(e),i;if(t!==void 0)return oo(r),t},yo=({error:e,fileDescriptors:t,sourceOptions:r,startTime:i})=>Ft({error:e,command:hl,escapedCommand:hl,fileDescriptors:t,options:r,startTime:i,isSync:!1}),hl="source.pipe(destination)";var fl=async e=>{let[{status:t,reason:r,value:i=r},{status:n,reason:s,value:o=s}]=await e;if(o.pipedFrom.includes(i)||o.pipedFrom.push(i),n==="rejected")throw o;if(t==="rejected")throw i;return o};import{finished as p0}from"stream/promises";var gl=(e,t,r)=>{let i=rn.has(t)?u0(e,t):d0(e,t);return yt(e,m0,r.signal),yt(t,h0,r.signal),l0(t),i},d0=(e,t)=>{let r=bt([e]);return Nt(r,t),rn.set(t,r),r},u0=(e,t)=>{let r=rn.get(t);return r.add(e),r},l0=async e=>{try{await p0(e,{cleanup:!0,readable:!1,writable:!0})}catch{}rn.delete(e)},rn=new WeakMap,m0=2,h0=1;import{aborted as y0}from"util";var _l=(e,t)=>e===void 0?[]:[f0(e,t)],f0=async(e,{sourceStream:t,mergedStream:r,fileDescriptors:i,sourceOptions:n,startTime:s})=>{await y0(e,t),await r.remove(t);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw yo({error:o,fileDescriptors:i,sourceOptions:n,startTime:s})};var nn=(e,...t)=>{if(K(t[0]))return nn.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});let{destination:r,...i}=ml(e,...t),n=g0({...i,destination:r});return n.pipe=nn.bind(void 0,{...e,source:r,sourcePromise:n,boundOptions:{}}),n},g0=async({sourcePromise:e,sourceStream:t,sourceOptions:r,sourceError:i,destination:n,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:d})=>{let p=_0(e,n);yl({sourceStream:t,sourceError:i,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:d});let u=new AbortController;try{let l=gl(t,s,u);return await Promise.race([fl(p),..._l(a,{sourceStream:t,mergedStream:l,sourceOptions:r,fileDescriptors:c,startTime:d})])}finally{u.abort()}},_0=(e,t)=>Promise.allSettled([e,t]);import{setImmediate as q0}from"timers/promises";import{on as b0}from"events";import{getDefaultHighWaterMark as w0}from"stream";var sn=({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:i,encoding:n,preserveNewlines:s})=>{let o=new AbortController;return x0(t,o),wl({stream:e,controller:o,binary:r,shouldEncode:!e.readableObjectMode&&i,encoding:n,shouldSplit:!e.readableObjectMode,preserveNewlines:s})},x0=async(e,t)=>{try{await e}catch{}finally{t.abort()}},fo=({stream:e,onStreamEnd:t,lines:r,encoding:i,stripFinalNewline:n,allMixed:s})=>{let o=new AbortController;k0(t,o,e);let a=e.readableObjectMode&&!s;return wl({stream:e,controller:o,binary:i==="buffer",shouldEncode:!a,encoding:i,shouldSplit:!a&&r,preserveNewlines:!n})},k0=async(e,t,r)=>{try{await e}catch{r.destroy()}finally{t.abort()}},wl=({stream:e,controller:t,binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o})=>{let a=b0(e,"data",{signal:t.signal,highWaterMark:bl,highWatermark:bl});return v0({onStdoutChunk:a,controller:t,binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o})},go=w0(!0),bl=go,v0=async function*({onStdoutChunk:e,controller:t,binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o}){let a=S0({binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of e)yield*_t(c,a,0)}catch(c){if(!t.signal.aborted)throw c}finally{yield*mr(a)}},S0=({binary:e,shouldEncode:t,encoding:r,shouldSplit:i,preserveNewlines:n})=>[Ki(e,r,!t),Hi(e,n,!i,{})].filter(Boolean);var xl=async({stream:e,onStreamEnd:t,fdNumber:r,encoding:i,buffer:n,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:d,streamInfo:p})=>{let u=$0({stream:e,onStreamEnd:t,fdNumber:r,encoding:i,allMixed:a,verboseInfo:d,streamInfo:p});if(!n){await Promise.all([A0(e),u]);return}let l=Hs(c,r),m=fo({stream:e,onStreamEnd:t,lines:o,encoding:i,stripFinalNewline:l,allMixed:a}),[h]=await Promise.all([C0({stream:e,iterable:m,fdNumber:r,encoding:i,maxBuffer:s,lines:o}),u]);return h},$0=async({stream:e,onStreamEnd:t,fdNumber:r,encoding:i,allMixed:n,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!Xi({stdioItems:o[r]?.stdioItems,encoding:i,verboseInfo:s,fdNumber:r}))return;let a=fo({stream:e,onStreamEnd:t,lines:!0,encoding:i,stripFinalNewline:!0,allMixed:n});await Iu(a,e,r,s)},A0=async e=>{await q0(),e.readableFlowing===null&&e.resume()},C0=async({stream:e,stream:{readableObjectMode:t},iterable:r,fdNumber:i,encoding:n,maxBuffer:s,lines:o})=>{try{return t||o?await Li(r,{maxBuffer:s}):n==="buffer"?new Uint8Array(await Mi(r,{maxBuffer:s})):await Bi(r,{maxBuffer:s})}catch(a){return kl(Id({error:a,stream:e,readableObjectMode:t,lines:o,encoding:n,fdNumber:i}))}},_o=async e=>{try{return await e}catch(t){return kl(t)}},kl=({bufferedData:e})=>Ka(e)?new Uint8Array(e):e;import{finished as E0}from"stream/promises";var gr=async(e,t,r,{isSameDirection:i,stopOnExit:n=!1}={})=>{let s=P0(e,r),o=new AbortController;try{await Promise.race([...n?[r.exitPromise]:[],E0(e,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||R0(a,t,r,i)}finally{o.abort()}},P0=(e,{originalStreams:[t],subprocess:r})=>{let i={stdinCleanedUp:!1};return e===t&&T0(e,r,i),i},T0=(e,t,r)=>{let{_destroy:i}=e;e._destroy=(...n)=>{I0(t,r),i.call(e,...n)}},I0=({exitCode:e,signalCode:t},r)=>{(e!==null||t!==null)&&(r.stdinCleanedUp=!0)},R0=(e,t,r,i)=>{if(!O0(e,t,r,i))throw e},O0=(e,t,r,i=!0)=>r.propagating?vl(e)||on(e):(r.propagating=!0,bo(r,t)===i?vl(e):on(e)),bo=({fileDescriptors:e},t)=>t!=="all"&&e[t].direction==="input",on=e=>e?.code==="ERR_STREAM_PREMATURE_CLOSE",vl=e=>e?.code==="EPIPE";var Sl=({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>e.stdio.map((c,d)=>wo({stream:c,fdNumber:d,encoding:t,buffer:r[d],maxBuffer:i[d],lines:n[d],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),wo=async({stream:e,fdNumber:t,encoding:r,buffer:i,maxBuffer:n,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:d})=>{if(!e)return;let p=gr(e,t,d);if(bo(d,t)){await p;return}let[u]=await Promise.all([xl({stream:e,onStreamEnd:p,fdNumber:t,encoding:r,buffer:i,maxBuffer:n,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:d}),p]);return u};var ql=({stdout:e,stderr:t},{all:r})=>r&&(e||t)?bt([e,t].filter(Boolean)):void 0,$l=({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>wo({...j0(e,r),fdNumber:"all",encoding:t,maxBuffer:i[1]+i[2],lines:n[1]||n[2],allMixed:D0(e),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),j0=({stdout:e,stderr:t,all:r},[,i,n])=>{let s=i||n;return s?i?n?{stream:r,buffer:s}:{stream:e,buffer:s}:{stream:t,buffer:s}:{stream:r,buffer:s}},D0=({all:e,stdout:t,stderr:r})=>e&&t&&r&&t.readableObjectMode!==r.readableObjectMode;import{once as L0}from"events";var Al=e=>Tt(e,"ipc"),Cl=(e,t)=>{let r=pi(e);Pe({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:t})};var El=async({subprocess:e,buffer:t,maxBuffer:r,ipc:i,ipcOutput:n,verboseInfo:s})=>{if(!i)return n;let o=Al(s),a=He(t,"ipc"),c=He(r,"ipc");for await(let d of ro({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:i,shouldAwait:!1,reference:!0}))a&&(Rd(e,n,c),n.push(d)),o&&Cl(d,s);return n},Pl=async(e,t)=>(await Promise.allSettled([e]),t);var Tl=async({subprocess:e,options:{encoding:t,buffer:r,maxBuffer:i,lines:n,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:d,ipc:p,ipcInput:u},context:l,verboseInfo:m,fileDescriptors:h,originalStreams:f,onInternalError:x,controller:w})=>{let S=Lu(e,l),g={originalStreams:f,fileDescriptors:h,subprocess:e,exitPromise:S,propagating:!1},I=Sl({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:d,verboseInfo:m,streamInfo:g}),v=$l({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:d,verboseInfo:m,streamInfo:g}),B=[],j=El({subprocess:e,buffer:r,maxBuffer:i,ipc:p,ipcOutput:B,verboseInfo:m}),L=M0(f,e,g),G=F0(h,g);try{return await Promise.race([Promise.all([{},Fu(S),Promise.all(I),v,j,ud(e,u),...L,...G]),x,B0(e,w),...od(e,s,l,w),...Ap({subprocess:e,cancelSignal:o,gracefulCancel:a,context:l,controller:w}),...nd({subprocess:e,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:l,controller:w})])}catch(H){return l.terminationReason??="other",Promise.all([{error:H},S,Promise.all(I.map($=>_o($))),_o(v),Pl(j,B),Promise.allSettled(L),Promise.allSettled(G)])}},M0=(e,t,r)=>e.map((i,n)=>i===t.stdio[n]?void 0:gr(i,n,r)),F0=(e,t)=>e.flatMap(({stdioItems:r},i)=>r.filter(({value:n,stream:s=n})=>qe(s,{checkOpen:!1})&&!ke(s)).map(({type:n,value:s,stream:o=s})=>gr(o,i,t,{isSameDirection:we.has(n),stopOnExit:n==="native"}))),B0=async(e,{signal:t})=>{let[r]=await L0(e,"error",{signal:t});throw r};var Il=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),_r=(e,t,r)=>{let i=e[r];i.has(t)||i.set(t,[]);let n=i.get(t),s=Te();return n.push(s),{resolve:s.resolve.bind(s),promises:n}},Gt=async({resolve:e,promises:t},r)=>{e();let[i]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...t])]);return!i};import{Readable as U0}from"stream";import{callbackify as N0}from"util";import{finished as Rl}from"stream/promises";var xo=async e=>{if(e!==void 0)try{await ko(e)}catch{}},Ol=async e=>{if(e!==void 0)try{await vo(e)}catch{}},ko=async e=>{await Rl(e,{cleanup:!0,readable:!1,writable:!0})},vo=async e=>{await Rl(e,{cleanup:!0,readable:!0,writable:!1})},an=async(e,t)=>{if(await e,t)throw t},cn=(e,t,r)=>{r&&!on(r)?e.destroy(r):t&&e.destroy()};var jl=({subprocess:e,concurrentStreams:t,encoding:r},{from:i,binary:n=!0,preserveNewlines:s=!0}={})=>{let o=n||ye.has(r),{subprocessStdout:a,waitReadableDestroy:c}=So(e,i,t),{readableEncoding:d,readableObjectMode:p,readableHighWaterMark:u}=qo(a,o),{read:l,onStdoutDataDone:m}=$o({subprocessStdout:a,subprocess:e,binary:o,encoding:r,preserveNewlines:s}),h=new U0({read:l,destroy:N0(Co.bind(void 0,{subprocessStdout:a,subprocess:e,waitReadableDestroy:c})),highWaterMark:u,objectMode:p,encoding:d});return Ao({subprocessStdout:a,onStdoutDataDone:m,readable:h,subprocess:e}),h},So=(e,t,r)=>{let i=Dt(e,t),n=_r(r,i,"readableDestroy");return{subprocessStdout:i,waitReadableDestroy:n}},qo=({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r},i)=>i?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:go},$o=({subprocessStdout:e,subprocess:t,binary:r,encoding:i,preserveNewlines:n})=>{let s=Te(),o=sn({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:!r,encoding:i,preserveNewlines:n});return{read(){G0(this,o,s)},onStdoutDataDone:s}},G0=async(e,t,r)=>{try{let{value:i,done:n}=await t.next();n?r.resolve():e.push(i)}catch{}},Ao=async({subprocessStdout:e,onStdoutDataDone:t,readable:r,subprocess:i,subprocessStdin:n})=>{try{await vo(e),await i,await xo(n),await t,r.readable&&r.push(null)}catch(s){await xo(n),Dl(r,s)}},Co=async({subprocessStdout:e,subprocess:t,waitReadableDestroy:r},i)=>{await Gt(r,t)&&(Dl(e,i),await an(t,i))},Dl=(e,t)=>{cn(e,e.readable,t)};import{Writable as z0}from"stream";import{callbackify as Ll}from"util";var Ml=({subprocess:e,concurrentStreams:t},{to:r}={})=>{let{subprocessStdin:i,waitWritableFinal:n,waitWritableDestroy:s}=Eo(e,r,t),o=new z0({...Po(i,e,n),destroy:Ll(Io.bind(void 0,{subprocessStdin:i,subprocess:e,waitWritableFinal:n,waitWritableDestroy:s})),highWaterMark:i.writableHighWaterMark,objectMode:i.writableObjectMode});return To(i,o),o},Eo=(e,t,r)=>{let i=xi(e,t),n=_r(r,i,"writableFinal"),s=_r(r,i,"writableDestroy");return{subprocessStdin:i,waitWritableFinal:n,waitWritableDestroy:s}},Po=(e,t,r)=>({write:V0.bind(void 0,e),final:Ll(W0.bind(void 0,e,t,r))}),V0=(e,t,r,i)=>{e.write(t,r)?i():e.once("drain",i)},W0=async(e,t,r)=>{await Gt(r,t)&&(e.writable&&e.end(),await t)},To=async(e,t,r)=>{try{await ko(e),t.writable&&t.end()}catch(i){await Ol(r),Fl(t,i)}},Io=async({subprocessStdin:e,subprocess:t,waitWritableFinal:r,waitWritableDestroy:i},n)=>{await Gt(r,t),await Gt(i,t)&&(Fl(e,n),await an(t,n))},Fl=(e,t)=>{cn(e,e.writable,t)};import{Duplex as H0}from"stream";import{callbackify as K0}from"util";var Bl=({subprocess:e,concurrentStreams:t,encoding:r},{from:i,to:n,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ye.has(r),{subprocessStdout:c,waitReadableDestroy:d}=So(e,i,t),{subprocessStdin:p,waitWritableFinal:u,waitWritableDestroy:l}=Eo(e,n,t),{readableEncoding:m,readableObjectMode:h,readableHighWaterMark:f}=qo(c,a),{read:x,onStdoutDataDone:w}=$o({subprocessStdout:c,subprocess:e,binary:a,encoding:r,preserveNewlines:o}),S=new H0({read:x,...Po(p,e,u),destroy:K0(Y0.bind(void 0,{subprocessStdout:c,subprocessStdin:p,subprocess:e,waitReadableDestroy:d,waitWritableFinal:u,waitWritableDestroy:l})),readableHighWaterMark:f,writableHighWaterMark:p.writableHighWaterMark,readableObjectMode:h,writableObjectMode:p.writableObjectMode,encoding:m});return Ao({subprocessStdout:c,onStdoutDataDone:w,readable:S,subprocess:e,subprocessStdin:p}),To(p,S,c),S},Y0=async({subprocessStdout:e,subprocessStdin:t,subprocess:r,waitReadableDestroy:i,waitWritableFinal:n,waitWritableDestroy:s},o)=>{await Promise.all([Co({subprocessStdout:e,subprocess:r,waitReadableDestroy:i},o),Io({subprocessStdin:t,subprocess:r,waitWritableFinal:n,waitWritableDestroy:s},o)])};var Ro=(e,t,{from:r,binary:i=!1,preserveNewlines:n=!1}={})=>{let s=i||ye.has(t),o=Dt(e,r),a=sn({subprocessStdout:o,subprocess:e,binary:s,shouldEncode:!0,encoding:t,preserveNewlines:n});return J0(a,o,e)},J0=async function*(e,t,r){try{yield*e}finally{t.readable&&t.destroy(),await r}};var Ul=(e,{encoding:t})=>{let r=Il();e.readable=jl.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.writable=Ml.bind(void 0,{subprocess:e,concurrentStreams:r}),e.duplex=Bl.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.iterable=Ro.bind(void 0,e,t),e[Symbol.asyncIterator]=Ro.bind(void 0,e,t,{})};var Nl=(e,t)=>{for(let[r,i]of Z0){let n=i.value.bind(t);Reflect.defineProperty(e,r,{...i,value:n})}},X0=(async()=>{})().constructor.prototype,Z0=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(X0,e)]);var Gl=(e,t,r,i)=>{let{file:n,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:d,options:p,fileDescriptors:u}=tk(e,t,r),{subprocess:l,promise:m}=ik({file:n,commandArguments:s,options:p,startTime:c,verboseInfo:d,command:o,escapedCommand:a,fileDescriptors:u});return l.pipe=nn.bind(void 0,{source:l,sourcePromise:m,boundOptions:{},createNested:i}),Nl(l,m),Ie.set(l,{options:p,fileDescriptors:u}),l},tk=(e,t,r)=>{let{command:i,escapedCommand:n,startTime:s,verboseInfo:o}=ui(e,t,r),{file:a,commandArguments:c,options:d}=Ii(e,t,r),p=rk(d),u=el(p,o);return{file:a,commandArguments:c,command:i,escapedCommand:n,startTime:s,verboseInfo:o,options:p,fileDescriptors:u}},rk=({timeout:e,signal:t,...r})=>{if(t!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:e}},ik=({file:e,commandArguments:t,options:r,startTime:i,verboseInfo:n,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=ek(...Ri(e,t,r))}catch(h){return Ju({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:i,verboseInfo:n})}let d=new AbortController;Q0(Number.POSITIVE_INFINITY,d.signal);let p=[...c.stdio];pl(c,a,d),ul(c,r,d);let u={},l=Te();c.kill=qp.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:l,context:u,controller:d}),c.all=ql(c,r),Ul(c,r),Hu(c,r);let m=nk({subprocess:c,options:r,startTime:i,verboseInfo:n,fileDescriptors:a,originalStreams:p,command:s,escapedCommand:o,context:u,onInternalError:l,controller:d});return{subprocess:c,promise:m}},nk=async({subprocess:e,options:t,startTime:r,verboseInfo:i,fileDescriptors:n,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:d,controller:p})=>{let[u,[l,m],h,f,x]=await Tl({subprocess:e,options:t,context:c,verboseInfo:i,fileDescriptors:n,originalStreams:s,onInternalError:d,controller:p});p.abort(),d.resolve();let w=h.map((I,v)=>Ye(I,t,v)),S=Ye(f,t,"all"),g=sk({errorInfo:u,exitCode:l,signal:m,stdio:w,all:S,ipcOutput:x,context:c,options:t,command:o,escapedCommand:a,startTime:r});return Bt(g,i,t)},sk=({errorInfo:e,exitCode:t,signal:r,stdio:i,all:n,ipcOutput:s,context:o,options:a,command:c,escapedCommand:d,startTime:p})=>"error"in e?lr({error:e.error,command:c,escapedCommand:d,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:e.error instanceof Re,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:t,signal:r,stdio:i,all:n,ipcOutput:s,options:a,startTime:p,isSync:!1}):Ni({command:c,escapedCommand:d,stdio:i,all:n,ipcOutput:s,options:a,startTime:p});var pn=(e,t)=>{let r=Object.fromEntries(Object.entries(t).map(([i,n])=>[i,ok(i,e[i],n)]));return{...e,...r}},ok=(e,t,r)=>ak.has(e)&&K(t)&&K(r)?{...t,...r}:r,ak=new Set(["env",...cs]);var ot=(e,t,r,i)=>{let n=(o,a,c)=>ot(o,a,r,c),s=(...o)=>ck({mapArguments:e,deepOptions:r,boundOptions:t,setBoundExeca:i,createNested:n},...o);return i!==void 0&&i(s,n,t),s},ck=({mapArguments:e,deepOptions:t={},boundOptions:r={},setBoundExeca:i,createNested:n},s,...o)=>{if(K(s))return n(e,pn(r,s),i);let{file:a,commandArguments:c,options:d,isSync:p}=pk({mapArguments:e,firstArgument:s,nextArguments:o,deepOptions:t,boundOptions:r});return p?Uu(a,c,d):Gl(a,c,d,n)},pk=({mapArguments:e,firstArgument:t,nextArguments:r,deepOptions:i,boundOptions:n})=>{let s=ec(t)?tc(t,r):[t,...r],[o,a,c]=ei(...s),d=pn(pn(i,n),c),{file:p=o,commandArguments:u=a,options:l=d,isSync:m=!1}=e({file:o,commandArguments:a,options:d});return{file:p,commandArguments:u,options:l,isSync:m}};var zl=({file:e,commandArguments:t})=>Wl(e,t),Vl=({file:e,commandArguments:t})=>({...Wl(e,t),isSync:!0}),Wl=(e,t)=>{if(t.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${e} ${t}.`);let[r,...i]=dk(e);return{file:r,commandArguments:i}},dk=e=>{if(typeof e!="string")throw new TypeError(`The command must be a string: ${String(e)}.`);let t=e.trim();if(t==="")return[];let r=[];for(let i of t.split(uk)){let n=r.at(-1);n&&n.endsWith("\\")?r[r.length-1]=`${n.slice(0,-1)} ${i}`:r.push(i)}return r},uk=/ +/g;var Hl=(e,t,r)=>{e.sync=t(lk,r),e.s=e.sync},Kl=({options:e})=>Yl(e),lk=({options:e})=>({...Yl(e),isSync:!0}),Yl=e=>({options:{...mk(e),...e}}),mk=({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},Jl={preferLocal:!0};var re=ot(()=>({})),FD=ot(()=>({isSync:!0})),at=ot(zl),BD=ot(Vl),UD=ot(cd),ND=ot(Kl,{},Jl,Hl),{sendMessage:GD,getOneMessage:zD,getEachMessage:VD,getCancelSignal:WD}=Ku();var ce=U(Y(),1);var dn="spree@example.com",un="spree123";import Je from"fs";import xt from"path";function _(e=process.cwd()){let t=hk(e),r=xt.join(t,"docker-compose.yml");if(!Je.existsSync(r))throw new Error(`Not a Spree project directory. No docker-compose.yml found.
|
|
142
|
-
Run this command from a directory created with create-spree-app.`);let i=
|
|
141
|
+
if (condition) { yield value; }`)};import{Buffer as Uw}from"buffer";import{StringDecoder as Nw}from"string_decoder";var Qi=(e,t,r)=>{if(r)return;if(e)return{transform:Gw.bind(void 0,new TextEncoder)};let i=new Nw(t);return{transform:zw.bind(void 0,i),final:Vw.bind(void 0,i)}},Gw=function*(e,t){Uw.isBuffer(t)?yield Ye(t):typeof t=="string"?yield e.encode(t):yield t},zw=function*(e,t){yield Q(t)?e.write(t):t},Vw=function*(e){let t=e.end();t!==""&&(yield t)};import{callbackify as Tu}from"util";var eo=Tu(async(e,t,r,i)=>{t.currentIterable=e(...r);try{for await(let n of t.currentIterable)i.push(n)}finally{delete t.currentIterable}}),en=async function*(e,t,r){if(r===t.length){yield e;return}let{transform:i=Hw}=t[r];for await(let n of i(e))yield*en(n,t,r+1)},Iu=async function*(e){for(let[t,{final:r}]of Object.entries(e))yield*Ww(r,Number(t),e)},Ww=async function*(e,t,r){if(e!==void 0)for await(let i of e())yield*en(i,r,t+1)},Ru=Tu(async({currentIterable:e},t)=>{if(e!==void 0){await(t?e.throw(t):e.return());return}if(t)throw t}),Hw=function*(e){yield e};var to=(e,t,r,i)=>{try{for(let n of e(...t))r.push(n);i()}catch(n){i(n)}},Ou=(e,t)=>[...t.flatMap(r=>[...wt(r,e,0)]),...fr(e)],wt=function*(e,t,r){if(r===t.length){yield e;return}let{transform:i=Yw}=t[r];for(let n of i(e))yield*wt(n,t,r+1)},fr=function*(e){for(let[t,{final:r}]of Object.entries(e))yield*Kw(r,Number(t),e)},Kw=function*(e,t,r){if(e!==void 0)for(let i of e())yield*wt(i,r,t+1)},Yw=function*(e){yield e};var ro=({value:e,value:{transform:t,final:r,writableObjectMode:i,readableObjectMode:n},optionName:s},{encoding:o})=>{let a={},c=Du(e,o,s),d=bt(t),p=bt(r),u=d?eo.bind(void 0,en,a):to.bind(void 0,wt),l=d||p?eo.bind(void 0,Iu,a):to.bind(void 0,fr),m=d||p?Ru.bind(void 0,a):void 0;return{stream:new Jw({writableObjectMode:i,writableHighWaterMark:ju(i),readableObjectMode:n,readableHighWaterMark:ju(n),transform(f,x,w){u([f,c,0],this,w)},flush(f){l([c],this,f)},destroy:m})}},tn=(e,t,r,i)=>{let n=t.filter(({type:o})=>o==="generator"),s=i?n.reverse():n;for(let{value:o,optionName:a}of s){let c=Du(o,r,a);e=Ou(c,e)}return e},Du=({transform:e,final:t,binary:r,writableObjectMode:i,readableObjectMode:n,preserveNewlines:s},o,a)=>{let c={};return[{transform:Cu(i,a)},Qi(r,o,i),Zi(r,s,i,c),{transform:e,final:t},{transform:Eu(n,a)},Au({binary:r,preserveNewlines:s,readableObjectMode:n,state:c})].filter(Boolean)};var Lu=(e,t)=>{for(let r of Xw(e))Zw(e,r,t)},Xw=e=>new Set(Object.entries(e).filter(([,{direction:t}])=>t==="input").map(([t])=>Number(t))),Zw=(e,t,r)=>{let{stdioItems:i}=e[t],n=i.filter(({contents:a})=>a!==void 0);if(n.length===0)return;if(t!==0){let[{type:a,optionName:c}]=n;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${ot[a]} with synchronous methods.`)}let o=n.map(({contents:a})=>a).map(a=>Qw(a,i));r.input=or(o)},Qw=(e,t)=>{let r=tn(e,t,"utf8",!0);return ex(r),or(r)},ex=e=>{let t=e.find(r=>typeof r!="string"&&!Q(r));if(t!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${t}.`)};import{writeFileSync as nx,appendFileSync as sx}from"fs";var rn=({stdioItems:e,encoding:t,verboseInfo:r,fdNumber:i})=>i!=="all"&&It(r,i)&&!ye.has(t)&&tx(i)&&(e.some(({type:n,value:s})=>n==="native"&&rx.has(s))||e.every(({type:n})=>xe.has(n))),tx=e=>e===1||e===2,rx=new Set(["pipe","overlapped"]),Mu=async(e,t,r,i)=>{for await(let n of e)ix(t)||Bu(n,r,i)},Fu=(e,t,r)=>{for(let i of e)Bu(i,t,r)},ix=e=>e._readableState.pipes.length>0,Bu=(e,t,r)=>{let i=hi(e);Ie({type:"output",verboseMessage:i,fdNumber:t,verboseInfo:r})};var Uu=({fileDescriptors:e,syncResult:{output:t},options:r,isMaxBuffer:i,verboseInfo:n})=>{if(t===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:t.map((c,d)=>ox({result:c,fileDescriptors:e,fdNumber:d,state:s,outputFiles:o,isMaxBuffer:i,verboseInfo:n},r)),...s}},ox=({result:e,fileDescriptors:t,fdNumber:r,state:i,outputFiles:n,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:d,stripFinalNewline:p,maxBuffer:u})=>{if(e===null)return;let l=Nd(e,s,u),m=Ye(l),{stdioItems:h,objectMode:f}=t[r],x=ax([m],h,c,i),{serializedResult:w,finalResult:S=w}=cx({chunks:x,objectMode:f,encoding:c,lines:d,stripFinalNewline:p,fdNumber:r});px({serializedResult:w,fdNumber:r,state:i,verboseInfo:o,encoding:c,stdioItems:h,objectMode:f});let g=a[r]?S:void 0;try{return i.error===void 0&&dx(w,h,n),g}catch(I){return i.error=I,g}},ax=(e,t,r,i)=>{try{return tn(e,t,r,!1)}catch(n){return i.error=n,e}},cx=({chunks:e,objectMode:t,encoding:r,lines:i,stripFinalNewline:n,fdNumber:s})=>{if(t)return{serializedResult:e};if(r==="buffer")return{serializedResult:or(e)};let o=rc(e,r);return i[s]?{serializedResult:o,finalResult:Qs(o,!n[s],t)}:{serializedResult:o}},px=({serializedResult:e,fdNumber:t,state:r,verboseInfo:i,encoding:n,stdioItems:s,objectMode:o})=>{if(!rn({stdioItems:s,encoding:n,verboseInfo:i,fdNumber:t}))return;let a=Qs(e,!1,o);try{Fu(a,t,i)}catch(c){r.error??=c}},dx=(e,t,r)=>{for(let{path:i,append:n}of t.filter(({type:s})=>Ji.has(s))){let s=typeof i=="string"?i:i.toString();n||r.has(s)?sx(i,e):(r.add(s),nx(i,e))}};var Nu=([,e,t],r)=>{if(r.all)return e===void 0?t:t===void 0?e:Array.isArray(e)?Array.isArray(t)?[...e,...t]:[...e,Ze(t,r,"all")]:Array.isArray(t)?[Ze(e,r,"all"),...t]:Q(e)&&Q(t)?cs([e,t]):`${e}${t}`};import{once as io}from"events";var Gu=async(e,t)=>{let[r,i]=await ux(e);return t.isForcefullyTerminated??=!1,[r,i]},ux=async e=>{let[t,r]=await Promise.allSettled([io(e,"spawn"),io(e,"exit")]);return t.status==="rejected"?[]:r.status==="rejected"?zu(e):r.value},zu=async e=>{try{return await io(e,"exit")}catch{return zu(e)}},Vu=async e=>{let[t,r]=await e;if(!lx(t,r)&&no(t,r))throw new Se;return[t,r]},lx=(e,t)=>e===void 0&&t===void 0,no=(e,t)=>e!==0||t!==null;var Wu=({error:e,status:t,signal:r,output:i},{maxBuffer:n})=>{let s=mx(e,t,r),o=s?.code==="ETIMEDOUT",a=Ud(s,i,n);return{resultError:s,exitCode:t,signal:r,timedOut:o,isMaxBuffer:a}},mx=(e,t,r)=>e!==void 0?e:no(t,r)?new Se:void 0;var Hu=(e,t,r)=>{let{file:i,commandArguments:n,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:d,fileDescriptors:p}=yx(e,t,r),u=_x({file:i,commandArguments:n,options:d,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:p,startTime:a});return Ut(u,c,d)},yx=(e,t,r)=>{let{command:i,escapedCommand:n,startTime:s,verboseInfo:o}=fi(e,t,r),a=fx(r),{file:c,commandArguments:d,options:p}=Li(e,t,a);gx(p);let u=vu(p,o);return{file:c,commandArguments:d,command:i,escapedCommand:n,startTime:s,verboseInfo:o,options:p,fileDescriptors:u}},fx=e=>e.node&&!e.ipc?{...e,ipc:!1}:e,gx=({ipc:e,ipcInput:t,detached:r,cancelSignal:i})=>{t&&nn("ipcInput"),e&&nn("ipc: true"),r&&nn("detached: true"),i&&nn("cancelSignal")},nn=e=>{throw new TypeError(`The "${e}" option cannot be used with synchronous methods.`)},_x=({file:e,commandArguments:t,options:r,command:i,escapedCommand:n,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=bx({file:e,commandArguments:t,options:r,command:i,escapedCommand:n,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:d,exitCode:p,signal:u,timedOut:l,isMaxBuffer:m}=Wu(c,r),{output:h,error:f=d}=Uu({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:m,verboseInfo:s}),x=h.map((S,g)=>Ze(S,r,g)),w=Ze(Nu(h,r),r,"all");return xx({error:f,exitCode:p,signal:u,timedOut:l,isMaxBuffer:m,stdio:x,all:w,options:r,command:i,escapedCommand:n,startTime:a})},bx=({file:e,commandArguments:t,options:r,command:i,escapedCommand:n,fileDescriptors:s,startTime:o})=>{try{Lu(s,r);let a=wx(r);return hx(...Mi(e,t,a))}catch(a){return Bt({error:a,command:i,escapedCommand:n,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},wx=({encoding:e,maxBuffer:t,...r})=>({...r,encoding:"buffer",maxBuffer:Wi(t)}),xx=({error:e,exitCode:t,signal:r,timedOut:i,isMaxBuffer:n,stdio:s,all:o,options:a,command:c,escapedCommand:d,startTime:p})=>e===void 0?Hi({command:c,escapedCommand:d,stdio:s,all:o,ipcOutput:[],options:a,startTime:p}):yr({error:e,command:c,escapedCommand:d,timedOut:i,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:n,isForcefullyTerminated:!1,exitCode:t,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:p,isSync:!0});import{setMaxListeners as ck}from"events";import{spawn as pk}from"child_process";import Zu from"process";import{once as so,on as kx}from"events";var Ku=({anyProcess:e,channel:t,isSubprocess:r,ipc:i},{reference:n=!0,filter:s}={})=>(jt({methodName:"getOneMessage",isSubprocess:r,ipc:i,isConnected:Ti(e)}),vx({anyProcess:e,channel:t,isSubprocess:r,filter:s,reference:n})),vx=async({anyProcess:e,channel:t,isSubprocess:r,filter:i,reference:n})=>{Ai(t,n);let s=st(e,t,r),o=new AbortController;try{return await Promise.race([Sx(s,i,o),qx(s,r,o),$x(s,r,o)])}catch(a){throw Dt(e),a}finally{o.abort(),Ci(t,n)}},Sx=async(e,t,{signal:r})=>{if(t===void 0){let[i]=await so(e,"message",{signal:r});return i}for await(let[i]of kx(e,"message",{signal:r}))if(t(i))return i},qx=async(e,t,{signal:r})=>{await so(e,"disconnect",{signal:r}),Op(t)},$x=async(e,t,{signal:r})=>{let[i]=await so(e,"strict:error",{signal:r});throw Si(i,t)};import{once as Ju,on as Ax}from"events";var Xu=({anyProcess:e,channel:t,isSubprocess:r,ipc:i},{reference:n=!0}={})=>oo({anyProcess:e,channel:t,isSubprocess:r,ipc:i,shouldAwait:!r,reference:n}),oo=({anyProcess:e,channel:t,isSubprocess:r,ipc:i,shouldAwait:n,reference:s})=>{jt({methodName:"getEachMessage",isSubprocess:r,ipc:i,isConnected:Ti(e)}),Ai(t,s);let o=st(e,t,r),a=new AbortController,c={};return Cx(e,o,a),Ex({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Px({anyProcess:e,channel:t,ipcEmitter:o,isSubprocess:r,shouldAwait:n,controller:a,state:c,reference:s})},Cx=async(e,t,r)=>{try{await Ju(t,"disconnect",{signal:r.signal}),r.abort()}catch{}},Ex=async({ipcEmitter:e,isSubprocess:t,controller:r,state:i})=>{try{let[n]=await Ju(e,"strict:error",{signal:r.signal});i.error=Si(n,t),r.abort()}catch{}},Px=async function*({anyProcess:e,channel:t,ipcEmitter:r,isSubprocess:i,shouldAwait:n,controller:s,state:o,reference:a}){try{for await(let[c]of Ax(r,"message",{signal:s.signal}))Yu(o),yield c}catch{Yu(o)}finally{s.abort(),Ci(t,a),i||Dt(e),n&&await e}},Yu=({error:e})=>{if(e)throw e};var Qu=(e,{ipc:t})=>{Object.assign(e,tl(e,!1,t))},el=()=>{let e=Zu,t=!0,r=Zu.channel!==void 0;return{...tl(e,t,r),getCancelSignal:ad.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r})}},tl=(e,t,r)=>({sendMessage:ji.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r}),getOneMessage:Ku.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r}),getEachMessage:Xu.bind(void 0,{anyProcess:e,channel:e.channel,isSubprocess:t,ipc:r})});import{ChildProcess as Tx}from"child_process";import{PassThrough as Ix,Readable as Rx,Writable as Ox,Duplex as jx}from"stream";var rl=({error:e,command:t,escapedCommand:r,fileDescriptors:i,options:n,startTime:s,verboseInfo:o})=>{Js(i);let a=new Tx;Dx(a,i),Object.assign(a,{readable:Lx,writable:Mx,duplex:Fx});let c=Bt({error:e,command:t,escapedCommand:r,fileDescriptors:i,options:n,startTime:s,isSync:!1}),d=Bx(c,o,n);return{subprocess:a,promise:d}},Dx=(e,t)=>{let r=gr(),i=gr(),n=gr(),s=Array.from({length:t.length-3},gr),o=gr(),a=[r,i,n,...s];Object.assign(e,{stdin:r,stdout:i,stderr:n,all:o,stdio:a})},gr=()=>{let e=new Ix;return e.end(),e},Lx=()=>new Rx({read(){}}),Mx=()=>new Ox({write(){}}),Fx=()=>new jx({read(){},write(){}}),Bx=async(e,t,r)=>Ut(e,t,r);import{createReadStream as il,createWriteStream as nl}from"fs";import{Buffer as Ux}from"buffer";import{Readable as _r,Writable as Nx,Duplex as Gx}from"stream";var ol=(e,t)=>Xi(zx,e,t,!1),br=({type:e,optionName:t})=>{throw new TypeError(`The \`${t}\` option cannot be ${ot[e]}.`)},sl={fileNumber:br,generator:ro,asyncGenerator:ro,nodeStream:({value:e})=>({stream:e}),webTransform({value:{transform:e,writableObjectMode:t,readableObjectMode:r}}){let i=t||r;return{stream:Gx.fromWeb(e,{objectMode:i})}},duplex:({value:{transform:e}})=>({stream:e}),native(){}},zx={input:{...sl,fileUrl:({value:e})=>({stream:il(e)}),filePath:({value:{file:e}})=>({stream:il(e)}),webStream:({value:e})=>({stream:_r.fromWeb(e)}),iterable:({value:e})=>({stream:_r.from(e)}),asyncIterable:({value:e})=>({stream:_r.from(e)}),string:({value:e})=>({stream:_r.from(e)}),uint8Array:({value:e})=>({stream:_r.from(Ux.from(e))})},output:{...sl,fileUrl:({value:e})=>({stream:nl(e)}),filePath:({value:{file:e,append:t}})=>({stream:nl(e,t?{flags:"a"}:{})}),webStream:({value:e})=>({stream:Nx.fromWeb(e)}),iterable:br,asyncIterable:br,string:br,uint8Array:br}};import{on as Vx,once as al}from"events";import{PassThrough as Wx,getDefaultHighWaterMark as Hx}from"stream";import{finished as dl}from"stream/promises";function xt(e){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);for(let n of e)co(n);let t=e.some(({readableObjectMode:n})=>n),r=Kx(e,t),i=new ao({objectMode:t,writableHighWaterMark:r,readableHighWaterMark:r});for(let n of e)i.add(n);return i}var Kx=(e,t)=>{if(e.length===0)return Hx(t);let r=e.filter(({readableObjectMode:i})=>i===t).map(({readableHighWaterMark:i})=>i);return Math.max(...r)},ao=class extends Wx{#t=new Set([]);#r=new Set([]);#e=new Set([]);#i;#s=Symbol("unpipe");#n=new WeakMap;add(t){if(co(t),this.#t.has(t))return;this.#t.add(t),this.#i??=Yx(this,this.#t,this.#s);let r=Zx({passThroughStream:this,stream:t,streams:this.#t,ended:this.#r,aborted:this.#e,onFinished:this.#i,unpipeEvent:this.#s});this.#n.set(t,r),t.pipe(this,{end:!1})}async remove(t){if(co(t),!this.#t.has(t))return!1;let r=this.#n.get(t);return r===void 0?!1:(this.#n.delete(t),t.unpipe(this),await r,!0)}},Yx=async(e,t,r)=>{sn(e,cl);let i=new AbortController;try{await Promise.race([Jx(e,i),Xx(e,t,r,i)])}finally{i.abort(),sn(e,-cl)}},Jx=async(e,{signal:t})=>{try{await dl(e,{signal:t,cleanup:!0})}catch(r){throw ul(e,r),r}},Xx=async(e,t,r,{signal:i})=>{for await(let[n]of Vx(e,"unpipe",{signal:i}))t.has(n)&&n.emit(r)},co=e=>{if(typeof e?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof e}\`.`)},Zx=async({passThroughStream:e,stream:t,streams:r,ended:i,aborted:n,onFinished:s,unpipeEvent:o})=>{sn(e,pl);let a=new AbortController;try{await Promise.race([Qx(s,t,a),e0({passThroughStream:e,stream:t,streams:r,ended:i,aborted:n,controller:a}),t0({stream:t,streams:r,ended:i,aborted:n,unpipeEvent:o,controller:a})])}finally{a.abort(),sn(e,-pl)}r.size>0&&r.size===i.size+n.size&&(i.size===0&&n.size>0?po(e):r0(e))},Qx=async(e,t,{signal:r})=>{try{await e,r.aborted||po(t)}catch(i){r.aborted||ul(t,i)}},e0=async({passThroughStream:e,stream:t,streams:r,ended:i,aborted:n,controller:{signal:s}})=>{try{await dl(t,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(t)&&i.add(t)}catch(o){if(s.aborted||!r.has(t))return;ll(o)?n.add(t):ml(e,o)}},t0=async({stream:e,streams:t,ended:r,aborted:i,unpipeEvent:n,controller:{signal:s}})=>{if(await al(e,n,{signal:s}),!e.readable)return al(s,"abort",{signal:s});t.delete(e),r.delete(e),i.delete(e)},r0=e=>{e.writable&&e.end()},ul=(e,t)=>{ll(t)?po(e):ml(e,t)},ll=e=>e?.code==="ERR_STREAM_PREMATURE_CLOSE",po=e=>{(e.readable||e.writable)&&e.destroy()},ml=(e,t)=>{e.destroyed||(e.once("error",i0),e.destroy(t))},i0=()=>{},sn=(e,t)=>{let r=e.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&e.setMaxListeners(r+t)},cl=2,pl=1;import{finished as hl}from"stream/promises";var Gt=(e,t)=>{e.pipe(t),n0(e,t),s0(e,t)},n0=async(e,t)=>{if(!(ve(e)||ve(t))){try{await hl(e,{cleanup:!0,readable:!0,writable:!1})}catch{}uo(t)}},uo=e=>{e.writable&&e.end()},s0=async(e,t)=>{if(!(ve(e)||ve(t))){try{await hl(t,{cleanup:!0,readable:!1,writable:!0})}catch{}lo(e)}},lo=e=>{e.readable&&e.destroy()};var yl=(e,t,r)=>{let i=new Map;for(let[n,{stdioItems:s,direction:o}]of Object.entries(t)){for(let{stream:a}of s.filter(({type:c})=>xe.has(c)))o0(e,a,o,n);for(let{stream:a}of s.filter(({type:c})=>!xe.has(c)))c0({subprocess:e,stream:a,direction:o,fdNumber:n,pipeGroups:i,controller:r})}for(let[n,s]of i.entries()){let o=s.length===1?s[0]:xt(s);Gt(o,n)}},o0=(e,t,r,i)=>{r==="output"?Gt(e.stdio[i],t):Gt(t,e.stdio[i]);let n=a0[i];n!==void 0&&(e[n]=t),e.stdio[i]=t},a0=["stdin","stdout","stderr"],c0=({subprocess:e,stream:t,direction:r,fdNumber:i,pipeGroups:n,controller:s})=>{if(t===void 0)return;p0(t,s);let[o,a]=r==="output"?[t,e.stdio[i]]:[e.stdio[i],t],c=n.get(o)??[];n.set(o,[...c,a])},p0=(e,{signal:t})=>{ve(e)&>(e,d0,t)},d0=2;import{addAbortListener as m0}from"events";var kt=[];kt.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&kt.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&kt.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var on=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",mo=Symbol.for("signal-exit emitter"),ho=globalThis,u0=Object.defineProperty.bind(Object),yo=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ho[mo])return ho[mo];u0(ho,mo,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let i=this.listeners[t],n=i.indexOf(r);n!==-1&&(n===0&&i.length===1?i.length=0:i.splice(n,1))}emit(t,r,i){if(this.emitted[t])return!1;this.emitted[t]=!0;let n=!1;for(let s of this.listeners[t])n=s(r,i)===!0||n;return t==="exit"&&(n=this.emit("afterExit",r,i)||n),n}},an=class{},l0=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),fo=class extends an{onExit(){return()=>{}}load(){}unload(){}},go=class extends an{#t=_o.platform==="win32"?"SIGINT":"SIGHUP";#r=new yo;#e;#i;#s;#n={};#o=!1;constructor(t){super(),this.#e=t,this.#n={};for(let r of kt)this.#n[r]=()=>{let i=this.#e.listeners(r),{count:n}=this.#r,s=t;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(n+=s.__signal_exit_emitter__.count),i.length===n){this.unload();let o=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#t:r;o||t.kill(t.pid,a)}};this.#s=t.reallyExit,this.#i=t.emit}onExit(t,r){if(!on(this.#e))return()=>{};this.#o===!1&&this.load();let i=r?.alwaysLast?"afterExit":"exit";return this.#r.on(i,t),()=>{this.#r.removeListener(i,t),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#r.count+=1;for(let t of kt)try{let r=this.#n[t];r&&this.#e.on(t,r)}catch{}this.#e.emit=(t,...r)=>this.#c(t,...r),this.#e.reallyExit=t=>this.#a(t)}}unload(){this.#o&&(this.#o=!1,kt.forEach(t=>{let r=this.#n[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,r)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#r.count-=1)}#a(t){return on(this.#e)?(this.#e.exitCode=t||0,this.#r.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#c(t,...r){let i=this.#i;if(t==="exit"&&on(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let n=i.call(this.#e,t,...r);return this.#r.emit("exit",this.#e.exitCode,null),n}else return i.call(this.#e,t,...r)}},_o=globalThis.process,{onExit:fl,load:tO,unload:rO}=l0(on(_o)?new go(_o):new fo);var gl=(e,{cleanup:t,detached:r},{signal:i})=>{if(!t||r)return;let n=fl(()=>{e.kill()});m0(i,()=>{n()})};var bl=({source:e,sourcePromise:t,boundOptions:r,createNested:i},...n)=>{let s=yi(),{destination:o,destinationStream:a,destinationError:c,from:d,unpipeSignal:p}=h0(r,i,n),{sourceStream:u,sourceError:l}=f0(e,d),{options:m,fileDescriptors:h}=Oe.get(e);return{sourcePromise:t,sourceStream:u,sourceOptions:m,sourceError:l,destination:o,destinationStream:a,destinationError:c,unpipeSignal:p,fileDescriptors:h,startTime:s}},h0=(e,t,r)=>{try{let{destination:i,pipeOptions:{from:n,to:s,unpipeSignal:o}={}}=y0(e,t,...r),a=$i(i,s);return{destination:i,destinationStream:a,from:n,unpipeSignal:o}}catch(i){return{destinationError:i}}},y0=(e,t,r,...i)=>{if(Array.isArray(r))return{destination:t(_l,e)(r,...i),pipeOptions:e};if(typeof r=="string"||r instanceof URL||os(r)){if(Object.keys(e).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[n,s,o]=si(r,...i);return{destination:t(_l)(n,s,o),pipeOptions:o}}if(Oe.has(r)){if(Object.keys(e).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:i[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},_l=({options:e})=>({options:{...e,stdin:"pipe",piped:!0}}),f0=(e,t)=>{try{return{sourceStream:Lt(e,t)}}catch(r){return{sourceError:r}}};var xl=({sourceStream:e,sourceError:t,destinationStream:r,destinationError:i,fileDescriptors:n,sourceOptions:s,startTime:o})=>{let a=g0({sourceStream:e,sourceError:t,destinationStream:r,destinationError:i});if(a!==void 0)throw bo({error:a,fileDescriptors:n,sourceOptions:s,startTime:o})},g0=({sourceStream:e,sourceError:t,destinationStream:r,destinationError:i})=>{if(t!==void 0&&i!==void 0)return i;if(i!==void 0)return lo(e),i;if(t!==void 0)return uo(r),t},bo=({error:e,fileDescriptors:t,sourceOptions:r,startTime:i})=>Bt({error:e,command:wl,escapedCommand:wl,fileDescriptors:t,options:r,startTime:i,isSync:!1}),wl="source.pipe(destination)";var kl=async e=>{let[{status:t,reason:r,value:i=r},{status:n,reason:s,value:o=s}]=await e;if(o.pipedFrom.includes(i)||o.pipedFrom.push(i),n==="rejected")throw o;if(t==="rejected")throw i;return o};import{finished as _0}from"stream/promises";var vl=(e,t,r)=>{let i=cn.has(t)?w0(e,t):b0(e,t);return gt(e,k0,r.signal),gt(t,v0,r.signal),x0(t),i},b0=(e,t)=>{let r=xt([e]);return Gt(r,t),cn.set(t,r),r},w0=(e,t)=>{let r=cn.get(t);return r.add(e),r},x0=async e=>{try{await _0(e,{cleanup:!0,readable:!1,writable:!0})}catch{}cn.delete(e)},cn=new WeakMap,k0=2,v0=1;import{aborted as S0}from"util";var Sl=(e,t)=>e===void 0?[]:[q0(e,t)],q0=async(e,{sourceStream:t,mergedStream:r,fileDescriptors:i,sourceOptions:n,startTime:s})=>{await S0(e,t),await r.remove(t);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw bo({error:o,fileDescriptors:i,sourceOptions:n,startTime:s})};var pn=(e,...t)=>{if(K(t[0]))return pn.bind(void 0,{...e,boundOptions:{...e.boundOptions,...t[0]}});let{destination:r,...i}=bl(e,...t),n=$0({...i,destination:r});return n.pipe=pn.bind(void 0,{...e,source:r,sourcePromise:n,boundOptions:{}}),n},$0=async({sourcePromise:e,sourceStream:t,sourceOptions:r,sourceError:i,destination:n,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:d})=>{let p=A0(e,n);xl({sourceStream:t,sourceError:i,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:d});let u=new AbortController;try{let l=vl(t,s,u);return await Promise.race([kl(p),...Sl(a,{sourceStream:t,mergedStream:l,sourceOptions:r,fileDescriptors:c,startTime:d})])}finally{u.abort()}},A0=(e,t)=>Promise.allSettled([e,t]);import{setImmediate as O0}from"timers/promises";import{on as C0}from"events";import{getDefaultHighWaterMark as E0}from"stream";var dn=({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:i,encoding:n,preserveNewlines:s})=>{let o=new AbortController;return P0(t,o),$l({stream:e,controller:o,binary:r,shouldEncode:!e.readableObjectMode&&i,encoding:n,shouldSplit:!e.readableObjectMode,preserveNewlines:s})},P0=async(e,t)=>{try{await e}catch{}finally{t.abort()}},wo=({stream:e,onStreamEnd:t,lines:r,encoding:i,stripFinalNewline:n,allMixed:s})=>{let o=new AbortController;T0(t,o,e);let a=e.readableObjectMode&&!s;return $l({stream:e,controller:o,binary:i==="buffer",shouldEncode:!a,encoding:i,shouldSplit:!a&&r,preserveNewlines:!n})},T0=async(e,t,r)=>{try{await e}catch{r.destroy()}finally{t.abort()}},$l=({stream:e,controller:t,binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o})=>{let a=C0(e,"data",{signal:t.signal,highWaterMark:ql,highWatermark:ql});return I0({onStdoutChunk:a,controller:t,binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o})},xo=E0(!0),ql=xo,I0=async function*({onStdoutChunk:e,controller:t,binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o}){let a=R0({binary:r,shouldEncode:i,encoding:n,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of e)yield*wt(c,a,0)}catch(c){if(!t.signal.aborted)throw c}finally{yield*fr(a)}},R0=({binary:e,shouldEncode:t,encoding:r,shouldSplit:i,preserveNewlines:n})=>[Qi(e,r,!t),Zi(e,n,!i,{})].filter(Boolean);var Al=async({stream:e,onStreamEnd:t,fdNumber:r,encoding:i,buffer:n,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:d,streamInfo:p})=>{let u=j0({stream:e,onStreamEnd:t,fdNumber:r,encoding:i,allMixed:a,verboseInfo:d,streamInfo:p});if(!n){await Promise.all([D0(e),u]);return}let l=Xs(c,r),m=wo({stream:e,onStreamEnd:t,lines:o,encoding:i,stripFinalNewline:l,allMixed:a}),[h]=await Promise.all([L0({stream:e,iterable:m,fdNumber:r,encoding:i,maxBuffer:s,lines:o}),u]);return h},j0=async({stream:e,onStreamEnd:t,fdNumber:r,encoding:i,allMixed:n,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!rn({stdioItems:o[r]?.stdioItems,encoding:i,verboseInfo:s,fdNumber:r}))return;let a=wo({stream:e,onStreamEnd:t,lines:!0,encoding:i,stripFinalNewline:!0,allMixed:n});await Mu(a,e,r,s)},D0=async e=>{await O0(),e.readableFlowing===null&&e.resume()},L0=async({stream:e,stream:{readableObjectMode:t},iterable:r,fdNumber:i,encoding:n,maxBuffer:s,lines:o})=>{try{return t||o?await Ni(r,{maxBuffer:s}):n==="buffer"?new Uint8Array(await Gi(r,{maxBuffer:s})):await Vi(r,{maxBuffer:s})}catch(a){return Cl(Md({error:a,stream:e,readableObjectMode:t,lines:o,encoding:n,fdNumber:i}))}},ko=async e=>{try{return await e}catch(t){return Cl(t)}},Cl=({bufferedData:e})=>ec(e)?new Uint8Array(e):e;import{finished as M0}from"stream/promises";var wr=async(e,t,r,{isSameDirection:i,stopOnExit:n=!1}={})=>{let s=F0(e,r),o=new AbortController;try{await Promise.race([...n?[r.exitPromise]:[],M0(e,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||N0(a,t,r,i)}finally{o.abort()}},F0=(e,{originalStreams:[t],subprocess:r})=>{let i={stdinCleanedUp:!1};return e===t&&B0(e,r,i),i},B0=(e,t,r)=>{let{_destroy:i}=e;e._destroy=(...n)=>{U0(t,r),i.call(e,...n)}},U0=({exitCode:e,signalCode:t},r)=>{(e!==null||t!==null)&&(r.stdinCleanedUp=!0)},N0=(e,t,r,i)=>{if(!G0(e,t,r,i))throw e},G0=(e,t,r,i=!0)=>r.propagating?El(e)||un(e):(r.propagating=!0,vo(r,t)===i?El(e):un(e)),vo=({fileDescriptors:e},t)=>t!=="all"&&e[t].direction==="input",un=e=>e?.code==="ERR_STREAM_PREMATURE_CLOSE",El=e=>e?.code==="EPIPE";var Pl=({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>e.stdio.map((c,d)=>So({stream:c,fdNumber:d,encoding:t,buffer:r[d],maxBuffer:i[d],lines:n[d],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),So=async({stream:e,fdNumber:t,encoding:r,buffer:i,maxBuffer:n,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:d})=>{if(!e)return;let p=wr(e,t,d);if(vo(d,t)){await p;return}let[u]=await Promise.all([Al({stream:e,onStreamEnd:p,fdNumber:t,encoding:r,buffer:i,maxBuffer:n,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:d}),p]);return u};var Tl=({stdout:e,stderr:t},{all:r})=>r&&(e||t)?xt([e,t].filter(Boolean)):void 0,Il=({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>So({...z0(e,r),fdNumber:"all",encoding:t,maxBuffer:i[1]+i[2],lines:n[1]||n[2],allMixed:V0(e),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),z0=({stdout:e,stderr:t,all:r},[,i,n])=>{let s=i||n;return s?i?n?{stream:r,buffer:s}:{stream:e,buffer:s}:{stream:t,buffer:s}:{stream:r,buffer:s}},V0=({all:e,stdout:t,stderr:r})=>e&&t&&r&&t.readableObjectMode!==r.readableObjectMode;import{once as W0}from"events";var Rl=e=>It(e,"ipc"),Ol=(e,t)=>{let r=hi(e);Ie({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:t})};var jl=async({subprocess:e,buffer:t,maxBuffer:r,ipc:i,ipcOutput:n,verboseInfo:s})=>{if(!i)return n;let o=Rl(s),a=Je(t,"ipc"),c=Je(r,"ipc");for await(let d of oo({anyProcess:e,channel:e.channel,isSubprocess:!1,ipc:i,shouldAwait:!1,reference:!0}))a&&(Fd(e,n,c),n.push(d)),o&&Ol(d,s);return n},Dl=async(e,t)=>(await Promise.allSettled([e]),t);var Ll=async({subprocess:e,options:{encoding:t,buffer:r,maxBuffer:i,lines:n,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:d,ipc:p,ipcInput:u},context:l,verboseInfo:m,fileDescriptors:h,originalStreams:f,onInternalError:x,controller:w})=>{let S=Gu(e,l),g={originalStreams:f,fileDescriptors:h,subprocess:e,exitPromise:S,propagating:!1},I=Pl({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:d,verboseInfo:m,streamInfo:g}),v=Il({subprocess:e,encoding:t,buffer:r,maxBuffer:i,lines:n,stripFinalNewline:d,verboseInfo:m,streamInfo:g}),B=[],j=jl({subprocess:e,buffer:r,maxBuffer:i,ipc:p,ipcOutput:B,verboseInfo:m}),L=H0(f,e,g),G=K0(h,g);try{return await Promise.race([Promise.all([{},Vu(S),Promise.all(I),v,j,gd(e,u),...L,...G]),x,Y0(e,w),...ld(e,s,l,w),...Rp({subprocess:e,cancelSignal:o,gracefulCancel:a,context:l,controller:w}),...dd({subprocess:e,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:l,controller:w})])}catch(H){return l.terminationReason??="other",Promise.all([{error:H},S,Promise.all(I.map($=>ko($))),ko(v),Dl(j,B),Promise.allSettled(L),Promise.allSettled(G)])}},H0=(e,t,r)=>e.map((i,n)=>i===t.stdio[n]?void 0:wr(i,n,r)),K0=(e,t)=>e.flatMap(({stdioItems:r},i)=>r.filter(({value:n,stream:s=n})=>$e(s,{checkOpen:!1})&&!ve(s)).map(({type:n,value:s,stream:o=s})=>wr(o,i,t,{isSameDirection:xe.has(n),stopOnExit:n==="native"}))),Y0=async(e,{signal:t})=>{let[r]=await W0(e,"error",{signal:t});throw r};var Ml=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),xr=(e,t,r)=>{let i=e[r];i.has(t)||i.set(t,[]);let n=i.get(t),s=Re();return n.push(s),{resolve:s.resolve.bind(s),promises:n}},zt=async({resolve:e,promises:t},r)=>{e();let[i]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...t])]);return!i};import{Readable as J0}from"stream";import{callbackify as X0}from"util";import{finished as Fl}from"stream/promises";var qo=async e=>{if(e!==void 0)try{await $o(e)}catch{}},Bl=async e=>{if(e!==void 0)try{await Ao(e)}catch{}},$o=async e=>{await Fl(e,{cleanup:!0,readable:!1,writable:!0})},Ao=async e=>{await Fl(e,{cleanup:!0,readable:!0,writable:!1})},ln=async(e,t)=>{if(await e,t)throw t},mn=(e,t,r)=>{r&&!un(r)?e.destroy(r):t&&e.destroy()};var Ul=({subprocess:e,concurrentStreams:t,encoding:r},{from:i,binary:n=!0,preserveNewlines:s=!0}={})=>{let o=n||ye.has(r),{subprocessStdout:a,waitReadableDestroy:c}=Co(e,i,t),{readableEncoding:d,readableObjectMode:p,readableHighWaterMark:u}=Eo(a,o),{read:l,onStdoutDataDone:m}=Po({subprocessStdout:a,subprocess:e,binary:o,encoding:r,preserveNewlines:s}),h=new J0({read:l,destroy:X0(Io.bind(void 0,{subprocessStdout:a,subprocess:e,waitReadableDestroy:c})),highWaterMark:u,objectMode:p,encoding:d});return To({subprocessStdout:a,onStdoutDataDone:m,readable:h,subprocess:e}),h},Co=(e,t,r)=>{let i=Lt(e,t),n=xr(r,i,"readableDestroy");return{subprocessStdout:i,waitReadableDestroy:n}},Eo=({readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r},i)=>i?{readableEncoding:e,readableObjectMode:t,readableHighWaterMark:r}:{readableEncoding:e,readableObjectMode:!0,readableHighWaterMark:xo},Po=({subprocessStdout:e,subprocess:t,binary:r,encoding:i,preserveNewlines:n})=>{let s=Re(),o=dn({subprocessStdout:e,subprocess:t,binary:r,shouldEncode:!r,encoding:i,preserveNewlines:n});return{read(){Z0(this,o,s)},onStdoutDataDone:s}},Z0=async(e,t,r)=>{try{let{value:i,done:n}=await t.next();n?r.resolve():e.push(i)}catch{}},To=async({subprocessStdout:e,onStdoutDataDone:t,readable:r,subprocess:i,subprocessStdin:n})=>{try{await Ao(e),await i,await qo(n),await t,r.readable&&r.push(null)}catch(s){await qo(n),Nl(r,s)}},Io=async({subprocessStdout:e,subprocess:t,waitReadableDestroy:r},i)=>{await zt(r,t)&&(Nl(e,i),await ln(t,i))},Nl=(e,t)=>{mn(e,e.readable,t)};import{Writable as Q0}from"stream";import{callbackify as Gl}from"util";var zl=({subprocess:e,concurrentStreams:t},{to:r}={})=>{let{subprocessStdin:i,waitWritableFinal:n,waitWritableDestroy:s}=Ro(e,r,t),o=new Q0({...Oo(i,e,n),destroy:Gl(Do.bind(void 0,{subprocessStdin:i,subprocess:e,waitWritableFinal:n,waitWritableDestroy:s})),highWaterMark:i.writableHighWaterMark,objectMode:i.writableObjectMode});return jo(i,o),o},Ro=(e,t,r)=>{let i=$i(e,t),n=xr(r,i,"writableFinal"),s=xr(r,i,"writableDestroy");return{subprocessStdin:i,waitWritableFinal:n,waitWritableDestroy:s}},Oo=(e,t,r)=>({write:ek.bind(void 0,e),final:Gl(tk.bind(void 0,e,t,r))}),ek=(e,t,r,i)=>{e.write(t,r)?i():e.once("drain",i)},tk=async(e,t,r)=>{await zt(r,t)&&(e.writable&&e.end(),await t)},jo=async(e,t,r)=>{try{await $o(e),t.writable&&t.end()}catch(i){await Bl(r),Vl(t,i)}},Do=async({subprocessStdin:e,subprocess:t,waitWritableFinal:r,waitWritableDestroy:i},n)=>{await zt(r,t),await zt(i,t)&&(Vl(e,n),await ln(t,n))},Vl=(e,t)=>{mn(e,e.writable,t)};import{Duplex as rk}from"stream";import{callbackify as ik}from"util";var Wl=({subprocess:e,concurrentStreams:t,encoding:r},{from:i,to:n,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ye.has(r),{subprocessStdout:c,waitReadableDestroy:d}=Co(e,i,t),{subprocessStdin:p,waitWritableFinal:u,waitWritableDestroy:l}=Ro(e,n,t),{readableEncoding:m,readableObjectMode:h,readableHighWaterMark:f}=Eo(c,a),{read:x,onStdoutDataDone:w}=Po({subprocessStdout:c,subprocess:e,binary:a,encoding:r,preserveNewlines:o}),S=new rk({read:x,...Oo(p,e,u),destroy:ik(nk.bind(void 0,{subprocessStdout:c,subprocessStdin:p,subprocess:e,waitReadableDestroy:d,waitWritableFinal:u,waitWritableDestroy:l})),readableHighWaterMark:f,writableHighWaterMark:p.writableHighWaterMark,readableObjectMode:h,writableObjectMode:p.writableObjectMode,encoding:m});return To({subprocessStdout:c,onStdoutDataDone:w,readable:S,subprocess:e,subprocessStdin:p}),jo(p,S,c),S},nk=async({subprocessStdout:e,subprocessStdin:t,subprocess:r,waitReadableDestroy:i,waitWritableFinal:n,waitWritableDestroy:s},o)=>{await Promise.all([Io({subprocessStdout:e,subprocess:r,waitReadableDestroy:i},o),Do({subprocessStdin:t,subprocess:r,waitWritableFinal:n,waitWritableDestroy:s},o)])};var Lo=(e,t,{from:r,binary:i=!1,preserveNewlines:n=!1}={})=>{let s=i||ye.has(t),o=Lt(e,r),a=dn({subprocessStdout:o,subprocess:e,binary:s,shouldEncode:!0,encoding:t,preserveNewlines:n});return sk(a,o,e)},sk=async function*(e,t,r){try{yield*e}finally{t.readable&&t.destroy(),await r}};var Hl=(e,{encoding:t})=>{let r=Ml();e.readable=Ul.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.writable=zl.bind(void 0,{subprocess:e,concurrentStreams:r}),e.duplex=Wl.bind(void 0,{subprocess:e,concurrentStreams:r,encoding:t}),e.iterable=Lo.bind(void 0,e,t),e[Symbol.asyncIterator]=Lo.bind(void 0,e,t,{})};var Kl=(e,t)=>{for(let[r,i]of ak){let n=i.value.bind(t);Reflect.defineProperty(e,r,{...i,value:n})}},ok=(async()=>{})().constructor.prototype,ak=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(ok,e)]);var Yl=(e,t,r,i)=>{let{file:n,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:d,options:p,fileDescriptors:u}=dk(e,t,r),{subprocess:l,promise:m}=lk({file:n,commandArguments:s,options:p,startTime:c,verboseInfo:d,command:o,escapedCommand:a,fileDescriptors:u});return l.pipe=pn.bind(void 0,{source:l,sourcePromise:m,boundOptions:{},createNested:i}),Kl(l,m),Oe.set(l,{options:p,fileDescriptors:u}),l},dk=(e,t,r)=>{let{command:i,escapedCommand:n,startTime:s,verboseInfo:o}=fi(e,t,r),{file:a,commandArguments:c,options:d}=Li(e,t,r),p=uk(d),u=ol(p,o);return{file:a,commandArguments:c,command:i,escapedCommand:n,startTime:s,verboseInfo:o,options:p,fileDescriptors:u}},uk=({timeout:e,signal:t,...r})=>{if(t!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:e}},lk=({file:e,commandArguments:t,options:r,startTime:i,verboseInfo:n,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=pk(...Mi(e,t,r))}catch(h){return rl({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:i,verboseInfo:n})}let d=new AbortController;ck(Number.POSITIVE_INFINITY,d.signal);let p=[...c.stdio];yl(c,a,d),gl(c,r,d);let u={},l=Re();c.kill=Tp.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:l,context:u,controller:d}),c.all=Tl(c,r),Hl(c,r),Qu(c,r);let m=mk({subprocess:c,options:r,startTime:i,verboseInfo:n,fileDescriptors:a,originalStreams:p,command:s,escapedCommand:o,context:u,onInternalError:l,controller:d});return{subprocess:c,promise:m}},mk=async({subprocess:e,options:t,startTime:r,verboseInfo:i,fileDescriptors:n,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:d,controller:p})=>{let[u,[l,m],h,f,x]=await Ll({subprocess:e,options:t,context:c,verboseInfo:i,fileDescriptors:n,originalStreams:s,onInternalError:d,controller:p});p.abort(),d.resolve();let w=h.map((I,v)=>Ze(I,t,v)),S=Ze(f,t,"all"),g=hk({errorInfo:u,exitCode:l,signal:m,stdio:w,all:S,ipcOutput:x,context:c,options:t,command:o,escapedCommand:a,startTime:r});return Ut(g,i,t)},hk=({errorInfo:e,exitCode:t,signal:r,stdio:i,all:n,ipcOutput:s,context:o,options:a,command:c,escapedCommand:d,startTime:p})=>"error"in e?yr({error:e.error,command:c,escapedCommand:d,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:e.error instanceof je,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:t,signal:r,stdio:i,all:n,ipcOutput:s,options:a,startTime:p,isSync:!1}):Hi({command:c,escapedCommand:d,stdio:i,all:n,ipcOutput:s,options:a,startTime:p});var hn=(e,t)=>{let r=Object.fromEntries(Object.entries(t).map(([i,n])=>[i,yk(i,e[i],n)]));return{...e,...r}},yk=(e,t,r)=>fk.has(e)&&K(t)&&K(r)?{...t,...r}:r,fk=new Set(["env",...ls]);var at=(e,t,r,i)=>{let n=(o,a,c)=>at(o,a,r,c),s=(...o)=>gk({mapArguments:e,deepOptions:r,boundOptions:t,setBoundExeca:i,createNested:n},...o);return i!==void 0&&i(s,n,t),s},gk=({mapArguments:e,deepOptions:t={},boundOptions:r={},setBoundExeca:i,createNested:n},s,...o)=>{if(K(s))return n(e,hn(r,s),i);let{file:a,commandArguments:c,options:d,isSync:p}=_k({mapArguments:e,firstArgument:s,nextArguments:o,deepOptions:t,boundOptions:r});return p?Hu(a,c,d):Yl(a,c,d,n)},_k=({mapArguments:e,firstArgument:t,nextArguments:r,deepOptions:i,boundOptions:n})=>{let s=oc(t)?ac(t,r):[t,...r],[o,a,c]=si(...s),d=hn(hn(i,n),c),{file:p=o,commandArguments:u=a,options:l=d,isSync:m=!1}=e({file:o,commandArguments:a,options:d});return{file:p,commandArguments:u,options:l,isSync:m}};var Jl=({file:e,commandArguments:t})=>Zl(e,t),Xl=({file:e,commandArguments:t})=>({...Zl(e,t),isSync:!0}),Zl=(e,t)=>{if(t.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${e} ${t}.`);let[r,...i]=bk(e);return{file:r,commandArguments:i}},bk=e=>{if(typeof e!="string")throw new TypeError(`The command must be a string: ${String(e)}.`);let t=e.trim();if(t==="")return[];let r=[];for(let i of t.split(wk)){let n=r.at(-1);n&&n.endsWith("\\")?r[r.length-1]=`${n.slice(0,-1)} ${i}`:r.push(i)}return r},wk=/ +/g;var Ql=(e,t,r)=>{e.sync=t(xk,r),e.s=e.sync},em=({options:e})=>tm(e),xk=({options:e})=>({...tm(e),isSync:!0}),tm=e=>({options:{...kk(e),...e}}),kk=({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},rm={preferLocal:!0};var J=at(()=>({})),VD=at(()=>({isSync:!0})),ct=at(Jl),WD=at(Xl),HD=at(hd),KD=at(em,{},rm,Ql),{sendMessage:YD,getOneMessage:JD,getEachMessage:XD,getCancelSignal:ZD}=el();var ce=U(Y(),1);var yn="spree@example.com",fn="spree123";import Le from"fs";import pt from"path";function _(e=process.cwd()){let t=vk(e),r=pt.join(t,"docker-compose.yml");if(!Le.existsSync(r))throw new Error(`Not a Spree project directory. No docker-compose.yml found.
|
|
142
|
+
Run this command from a directory created with create-spree-app.`);let i=Sk(t);return{mode:"docker",projectDir:t,port:i}}function vk(e){if(pt.basename(e)!=="backend")return e;let t=pt.dirname(e);for(let r of["docker-compose.yml","docker-compose.dev.yml"]){let i=pt.join(t,r);if(Le.existsSync(i))try{if(/\.\/backend:\/rails(:\w+)?(\s|$)/m.test(Le.readFileSync(i,"utf-8")))return t}catch{}}return e}function Me(e){let t=pt.join(e,".env");if(!Le.existsSync(t))return!1;try{let r=Le.readFileSync(t,"utf-8");return/^\s*SPREE_PATH\s*=/m.test(r)}catch{return!1}}function kr(e){let t=pt.join(e,"docker-compose.yml");if(!Le.existsSync(t))return!1;try{return/^\s*build\s*:/m.test(Le.readFileSync(t,"utf-8"))}catch{return!1}}function _n(e){try{let r=Le.readFileSync(pt.join(e,".env"),"utf-8").match(/^SPREE_SAMPLE_DATA=(true|false)\b/m);return r?r[1]==="true":void 0}catch{return}}function Sk(e){let t=pt.join(e,".env");if(!Le.existsSync(t))return 3e3;let i=Le.readFileSync(t,"utf-8").match(/^SPREE_PORT=(\d+)/m);return i?Number(i[1]):3e3}function sm(e){e.command("add").description("Add an optional component to your project").argument("<thing>","Component to add (currently: dashboard)").option("--template <src>","Starter template: git URL or local path (default: the template bundled with the CLI; env SPREE_DASHBOARD_TEMPLATE overrides)").option("--no-install","Skip dependency install").action(async(t,r)=>{t!=="dashboard"&&(console.error(`
|
|
143
143
|
${ce.default.red("Error:")} Unknown component: ${t}. Try: dashboard
|
|
144
|
-
`),process.exit(2)),
|
|
145
|
-
`),"Dashboard added!")}function
|
|
144
|
+
`),process.exit(2)),ri(ce.default.bgCyan(ce.default.black(" Spree Dashboard ")));let i=_();await Ak(i,{template:r.template??process.env.SPREE_DASHBOARD_TEMPLATE??Ck(),install:r.install}),Et("Done!")})}async function Ak(e,t){let r=le.join(e.projectDir,"apps","dashboard"),i=le.join(r,".env.local");if(se.existsSync(r)){if(se.existsSync(i)){b.warn(`${ce.default.bold("apps/dashboard/")} already exists. Nothing to do.`);return}nm(i,e.port),im(e.projectDir,vr(e.projectDir,r)),b.info(`Wrote missing ${ce.default.bold("apps/dashboard/.env.local")}. Nothing else to do.`);return}let n=E();n.start("Fetching dashboard starter...");try{await Pk(t.template,r),Ek(r)}catch(a){n.stop("Fetch failed."),b.error(a instanceof Error?a.message:String(a)),process.exit(1)}n.stop(`Created ${ce.default.cyan("apps/dashboard/")}`),nm(i,e.port);let s=vr(e.projectDir,r),o=im(e.projectDir,s);if(o==="amended"?b.info(`Amended ${ce.default.bold("render.yaml")}: the backend service now builds the dashboard and serves it at ${ce.default.cyan("/dashboard")} \u2014 same origin, nothing else to configure.`):o==="unrecognized"&&b.warn(`${ce.default.bold("render.yaml")} exists but doesn't match the starter Blueprint \u2014 left untouched. See the dashboard deployment docs to wire it up manually.`),t.install){n.start(`Installing dependencies with ${s}...`);try{await J(s,["install"],{cwd:r}),n.stop("Dependencies installed.")}catch(a){n.stop(ce.default.yellow(`${s} install failed \u2014 run it manually in apps/dashboard/.`)),b.warn(a instanceof Error?a.message:String(a))}}W(["Start it with:",` ${ce.default.cyan("cd apps/dashboard && "+(t.install?"":"pnpm install && ")+"pnpm dev")}`,"",`Then open ${ce.default.bold(`http://localhost:${5173}`)} and sign in`,"with your admin email and password."].join(`
|
|
145
|
+
`),"Dashboard added!")}function Ck(){let e=le.dirname($k(import.meta.url)),t=[le.resolve(e,"../../templates/dashboard-starter"),le.resolve(e,"templates/dashboard-starter")];for(let r of t)if(se.existsSync(le.join(r,"package.json")))return r;console.error(`
|
|
146
146
|
${ce.default.red("Error:")} Bundled dashboard template not found. In the monorepo, run ${ce.default.cyan("pnpm build")} in packages/cli first (it generates the template), or pass --template <path|git-url>.
|
|
147
|
-
`),process.exit(1)}function
|
|
147
|
+
`),process.exit(1)}function im(e,t){let r=le.join(e,"render.yaml");if(!se.existsSync(r))return"no-blueprint";let i=se.readFileSync(r,"utf-8");if(i.includes("SPREE_DASHBOARD_DIST_PATH"))return"present";let n=t==="pnpm"?"corepack enable pnpm && pnpm install && VITE_BASE_PATH=/dashboard/ pnpm build":t==="yarn"?"yarn install && VITE_BASE_PATH=/dashboard/ yarn build":"npm install && VITE_BASE_PATH=/dashboard/ npm run build",s=/^([ \t]*)buildCommand:.*bundle install.*$/m;if(!s.exec(i))return"unrecognized";let a=i.replace(s,h=>`${h} && (cd ../apps/dashboard && ${n})`),c=/^([ \t]*)envVars:[ \t]*$/m,d=a.slice(a.indexOf("buildCommand:")),p=c.exec(d);if(!p)return"unrecognized";let u=`${p[1]} `,l=`${u}# Serve the dashboard built above at /dashboard (single node \u2014 same
|
|
148
148
|
${u}# origin as the API, so no CORS or cookie configuration).
|
|
149
149
|
${u}- key: SPREE_DASHBOARD_DIST_PATH
|
|
150
150
|
${u} value: ../apps/dashboard/dist
|
|
151
151
|
`,m=a.indexOf("buildCommand:")+p.index+p[0].length;return a=`${a.slice(0,m)}
|
|
152
|
-
${l.replace(/\n$/,"")}${a.slice(m)}`,se.writeFileSync(r,a),"amended"}function
|
|
153
|
-
`))}function Ql(e,t){for(let r of[t,e]){if(se.existsSync(le.join(r,"pnpm-lock.yaml")))return"pnpm";if(se.existsSync(le.join(r,"yarn.lock")))return"yarn";if(se.existsSync(le.join(r,"package-lock.json")))return"npm"}return"pnpm"}function E(e){if(!e)return;let t={};return e.expand?.length&&(t.expand=e.expand.join(",")),e.fields?.length&&(t.fields=e.fields.join(",")),Object.keys(t).length>0?t:void 0}function kk(e){return e===!1?!1:{maxRetries:e?.maxRetries??2,retryOnStatus:e?.retryOnStatus??[429,500,502,503,504],baseDelay:e?.baseDelay??300,maxDelay:e?.maxDelay??1e4,retryOnNetworkError:e?.retryOnNetworkError??!0}}var vk=new Set(["page","limit","expand","sort","fields"]);function k(e){let t={};for(let[r,i]of Object.entries(e))if(i!==void 0){if(vk.has(r)){t[r]=Array.isArray(i)?i.join(","):i;continue}if(r.startsWith("q[")){t[r]=i;continue}if(Array.isArray(i)){let n=r.endsWith("[]")?r.slice(0,-2):r;t[`q[${n}][]`]=i}else t[`q[${r}]`]=i}return t}var vt=class extends Error{code;status;details;constructor(e,t){super(e.error.message),this.name="SpreeError",this.code=e.error.code,this.status=t,this.details=e.error.details}};function tm(e,t){let r=t.baseDelay*2**e,i=Math.random()*t.baseDelay;return Math.min(r+i,t.maxDelay)}function rm(e){return new Promise(t=>setTimeout(t,e))}function Sk(){return`spree-sdk-retry-${crypto.randomUUID()}`}function qk(e,t,r,i){return e==="GET"||e==="HEAD"||i?r.retryOnStatus.includes(t):t===429}function $k(e,t,r){return t.retryOnNetworkError?e==="GET"||e==="HEAD"||r:!1}function Ak(e,t,r,i){return async function(s,o,a={}){let{token:c,spreeToken:d,idempotencyKey:p,headers:u={},body:l,params:m}=a,h=a.locale??i?.locale,f=a.currency??i?.currency,x=a.country??i?.country,w=a.channel??i?.channel,S=typeof window<"u"?window.location.origin:void 0,g=e.baseUrl||S;if(!g)throw new TypeError("sdk-core: baseUrl is required in non-browser environments (no window.location to resolve relative URLs against)");let I=new URL(`${e.baseUrl}${t}${o}`,g);m&&Object.entries(m).forEach(([H,$])=>{if($!==void 0)if(Array.isArray($))for(let Be of $)I.searchParams.append(H,String(Be));else I.searchParams.set(H,String($))});let v={"Content-Type":"application/json",...u};r.headerValue&&(v[r.headerName]=r.headerValue),c&&(v.Authorization=`Bearer ${c}`),d&&(v["x-spree-token"]=d),h&&(v["x-spree-locale"]=h),f&&(v["x-spree-currency"]=f),x&&(v["x-spree-country"]=x),w&&(v["x-spree-channel"]=w);let j=p??(s!=="GET"&&s!=="HEAD"&&e.retryConfig?Sk():void 0);j&&(v["Idempotency-Key"]=j);let L=!!j,G=e.retryConfig?e.retryConfig.maxRetries+1:1;for(let H=0;H<G;H++)try{let $=await e.fetchFn(I.toString(),{method:s,headers:v,body:l?JSON.stringify(l):void 0,credentials:e.credentials});if(!$.ok){if(!(H>=G-1)&&e.retryConfig&&qk(s,$.status,e.retryConfig,L)){let V=$.headers.get("Retry-After"),de=V?Math.min(parseInt(V,10)*1e3,e.retryConfig.maxDelay):tm(H,e.retryConfig);await rm(de);continue}let Ue=await $.json();throw new vt(Ue,$.status)}return $.status===204?void 0:$.status===202?$.headers.get("content-type")?.includes("application/json")?$.json():void 0:$.json()}catch($){if($ instanceof vt)throw $;if(!(H>=G-1)&&e.retryConfig&&$k(s,e.retryConfig,L)){let Ue=tm(H,e.retryConfig);await rm(Ue);continue}throw $}throw new Error("Unexpected end of retry loop")}}var kt={"Spree::Product":"/products","Spree::Variant":"/variants","Spree::Order":"/orders","Spree::User":"/customers","Spree::Category":"/categories","Spree::OptionType":"/option_types"},Ck=class{request;constructor(e){this.request=e}parentScopedCustomFields(e){return{list:(t,r,i)=>this.request("GET",`${e}/${t}/custom_fields`,{...i,params:r?k(r):void 0}),get:(t,r,i)=>this.request("GET",`${e}/${t}/custom_fields/${r}`,i),create:(t,r,i)=>this.request("POST",`${e}/${t}/custom_fields`,{...i,body:r}),update:(t,r,i,n)=>this.request("PATCH",`${e}/${t}/custom_fields/${r}`,{...n,body:i}),delete:(t,r,i)=>this.request("DELETE",`${e}/${t}/custom_fields/${r}`,i)}}parentScopedTranslations(e){return{get:(t,r)=>this.request("GET",`${e}/${t}/translations`,r).then(i=>i.data)}}customFields(e,t){let r=kt[e];if(!r)throw new Error(`Unknown custom-field owner type: ${e}. Add it to CUSTOM_FIELD_OWNER_PATHS.`);let i=this.parentScopedCustomFields(r);return{list:(n,s)=>i.list(t,n,s),get:(n,s)=>i.get(t,n,s),create:(n,s)=>i.create(t,n,s),update:(n,s,o)=>i.update(t,n,s,o),delete:(n,s)=>i.delete(t,n,s)}}customFieldDefinitions={list:(e,t)=>this.request("GET","/custom_field_definitions",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/custom_field_definitions/${e}`,t),create:(e,t)=>this.request("POST","/custom_field_definitions",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/custom_field_definitions/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/custom_field_definitions/${e}`,t)};auth={login:(e,t)=>this.request("POST","/auth/login",{...t,body:e}),refresh:e=>this.request("POST","/auth/refresh",e),logout:e=>this.request("POST","/auth/logout",e),lookupInvitation:(e,t,r)=>this.request("GET",`/auth/invitations/${e}/lookup`,{...r,params:{token:t}}),acceptInvitation:(e,t,r,i)=>this.request("POST",`/auth/invitations/${e}/accept`,{...i,params:{token:t},body:r}),requestPasswordReset:(e,t)=>this.request("POST","/auth/password_resets",{...t,body:e}),resetPassword:(e,t,r)=>this.request("PATCH",`/auth/password_resets/${encodeURIComponent(e)}`,{...r,body:t})};me={get:e=>this.request("GET","/me",e),update:(e,t)=>this.request("PATCH","/me",{...t,body:e})};dashboard={analytics:(e,t)=>this.request("GET","/dashboard/analytics",{...t,params:e})};store={get:e=>this.request("GET","/store",e),update:(e,t)=>this.request("PATCH","/store",{...t,body:e})};locales={list:e=>this.request("GET","/locales",e).then(t=>t.data)};translatableResources={list:e=>this.request("GET","/translatable_resources",e).then(t=>t.data)};translations={batch:(e,t)=>this.request("POST","/translations/batch",{...t,body:{translations:e}}).then(r=>r.data)};products={list:(e,t)=>this.request("GET","/products",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/products/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/products",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/products/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/products/${e}`,t),clone:(e,t)=>this.request("POST",`/products/${e}/clone`,t),bulkStatusUpdate:(e,t)=>this.request("POST","/products/bulk_status_update",{...t,body:e}),bulkAddToCategories:(e,t)=>this.request("POST","/products/bulk_add_to_categories",{...t,body:e}),bulkRemoveFromCategories:(e,t)=>this.request("POST","/products/bulk_remove_from_categories",{...t,body:e}),bulkAddToChannels:(e,t)=>this.request("POST","/products/bulk_add_to_channels",{...t,body:e}),bulkRemoveFromChannels:(e,t)=>this.request("POST","/products/bulk_remove_from_channels",{...t,body:e}),bulkAddTags:(e,t)=>this.request("POST","/products/bulk_add_tags",{...t,body:e}),bulkRemoveTags:(e,t)=>this.request("POST","/products/bulk_remove_tags",{...t,body:e}),bulkDestroy:(e,t)=>this.request("DELETE","/products/bulk_destroy",{...t,body:e}),media:{list:(e,t,r)=>this.request("GET",`/products/${e}/media`,{...r,params:t?k(t):void 0}),create:(e,t,r)=>this.request("POST",`/products/${e}/media`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/products/${e}/media/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/products/${e}/media/${t}`,r)},variants:{list:(e,t,r)=>this.request("GET",`/products/${e}/variants`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/products/${e}/variants/${t}`,{...i,params:E(r)}),create:(e,t,r)=>this.request("POST",`/products/${e}/variants`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/products/${e}/variants/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/products/${e}/variants/${t}`,r),media:{list:(e,t,r,i)=>this.request("GET",`/products/${e}/variants/${t}/media`,{...i,params:r?k(r):void 0}),create:(e,t,r,i)=>this.request("POST",`/products/${e}/variants/${t}/media`,{...i,body:r}),update:(e,t,r,i,n)=>this.request("PATCH",`/products/${e}/variants/${t}/media/${r}`,{...n,body:i}),delete:(e,t,r,i)=>this.request("DELETE",`/products/${e}/variants/${t}/media/${r}`,i)}},customFields:this.parentScopedCustomFields(kt["Spree::Product"]),translations:this.parentScopedTranslations("/products")};orders={list:(e,t)=>this.request("GET","/orders",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/orders/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/orders",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/orders/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/orders/${e}`,t),complete:(e,t,r)=>this.request("PATCH",`/orders/${e}/complete`,{...r,body:t}),cancel:(e,t,r)=>this.request("PATCH",`/orders/${e}/cancel`,{...r,body:t}),approve:(e,t,r)=>this.request("PATCH",`/orders/${e}/approve`,{...r,body:t}),resume:(e,t)=>this.request("PATCH",`/orders/${e}/resume`,t),resendConfirmation:(e,t)=>this.request("POST",`/orders/${e}/resend_confirmation`,t),giftCards:{apply:(e,t,r)=>this.request("POST",`/orders/${e}/gift_cards`,{...r,body:t}),remove:(e,t,r)=>this.request("DELETE",`/orders/${e}/gift_cards/${t}`,r)},storeCredits:{apply:(e,t,r)=>this.request("POST",`/orders/${e}/store_credits`,{...r,body:t}),remove:(e,t)=>this.request("DELETE",`/orders/${e}/store_credits`,t)},items:{list:(e,t,r)=>this.request("GET",`/orders/${e}/items`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/orders/${e}/items/${t}`,{...i,params:E(r)}),create:(e,t,r)=>this.request("POST",`/orders/${e}/items`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/orders/${e}/items/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/orders/${e}/items/${t}`,r)},fulfillments:{list:(e,t,r)=>this.request("GET",`/orders/${e}/fulfillments`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/orders/${e}/fulfillments/${t}`,{...i,params:E(r)}),create:(e,t,r)=>this.request("POST",`/orders/${e}/fulfillments`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}`,{...i,body:r}),fulfill:(e,t,r)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/fulfill`,r),cancel:(e,t,r)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/cancel`,r),resume:(e,t,r)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/resume`,r),split:(e,t,r,i)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/split`,{...i,body:r})},payments:{list:(e,t,r)=>this.request("GET",`/orders/${e}/payments`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/orders/${e}/payments/${t}`,{...i,params:E(r)}),create:(e,t,r)=>this.request("POST",`/orders/${e}/payments`,{...r,body:t}),capture:(e,t,r)=>this.request("PATCH",`/orders/${e}/payments/${t}/capture`,r),void:(e,t,r)=>this.request("PATCH",`/orders/${e}/payments/${t}/void`,r)},refunds:{list:(e,t,r)=>this.request("GET",`/orders/${e}/refunds`,{...r,params:t?k(t):void 0}),create:(e,t,r)=>this.request("POST",`/orders/${e}/refunds`,{...r,body:t})},adjustments:{list:(e,t,r)=>this.request("GET",`/orders/${e}/adjustments`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/orders/${e}/adjustments/${t}`,r)},customFields:this.parentScopedCustomFields(kt["Spree::Order"])};optionTypes={list:(e,t)=>this.request("GET","/option_types",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/option_types/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/option_types",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/option_types/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/option_types/${e}`,t),customFields:this.parentScopedCustomFields(kt["Spree::OptionType"]),translations:this.parentScopedTranslations("/option_types")};paymentMethods={list:(e,t)=>this.request("GET","/payment_methods",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/payment_methods/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/payment_methods",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/payment_methods/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/payment_methods/${e}`,t),types:e=>this.request("GET","/payment_methods/types",e)};priceLists={list:(e,t)=>this.request("GET","/price_lists",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/price_lists/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/price_lists",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/price_lists/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/price_lists/${e}`,t),activate:(e,t)=>this.request("PATCH",`/price_lists/${e}/activate`,t),deactivate:(e,t)=>this.request("PATCH",`/price_lists/${e}/deactivate`,t),ruleTypes:e=>this.request("GET","/price_lists/price_rule_types",e)};prices={list:(e,t)=>this.request("GET","/prices",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/prices/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/prices",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/prices/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/prices/${e}`,t),bulkUpsert:(e,t)=>this.request("POST","/prices/bulk_upsert",{...t,body:e}),bulkDestroy:(e,t)=>this.request("DELETE","/prices/bulk_destroy",{...t,body:e})};promotions={list:(e,t)=>this.request("GET","/promotions",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/promotions",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/promotions/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/promotions/${e}`,t),actions:{list:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_actions`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_actions/${t}`,r),create:(e,t,r)=>this.request("POST",`/promotions/${e}/promotion_actions`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/promotions/${e}/promotion_actions/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/promotions/${e}/promotion_actions/${t}`,r)},rules:{list:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_rules`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_rules/${t}`,r),create:(e,t,r)=>this.request("POST",`/promotions/${e}/promotion_rules`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/promotions/${e}/promotion_rules/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/promotions/${e}/promotion_rules/${t}`,r)},couponCodes:{list:(e,t,r)=>this.request("GET",`/promotions/${e}/coupon_codes`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}/coupon_codes/${t}`,r)}};promotionActions={types:e=>this.request("GET","/promotion_actions/types",e),calculators:(e,t)=>this.request("GET","/promotion_actions/calculators",{...t,params:{type:e}})};promotionRules={types:e=>this.request("GET","/promotion_rules/types",e)};tags={list:(e,t)=>this.request("GET","/tags",{...t,params:e})};customerGroups={list:(e,t)=>this.request("GET","/customer_groups",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/customer_groups/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/customer_groups",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/customer_groups/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/customer_groups/${e}`,t)};giftCards={list:(e,t)=>this.request("GET","/gift_cards",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/gift_cards/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/gift_cards",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/gift_cards/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/gift_cards/${e}`,t)};giftCardBatches={list:(e,t)=>this.request("GET","/gift_card_batches",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/gift_card_batches/${e}`,t),create:(e,t)=>this.request("POST","/gift_card_batches",{...t,body:e})};exports={list:(e,t)=>this.request("GET","/exports",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/exports/${e}`,t),create:(e,t)=>this.request("POST","/exports",{...t,body:e}),delete:(e,t)=>this.request("DELETE",`/exports/${e}`,t)};imports={list:(e,t)=>this.request("GET","/imports",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/imports/${e}`,t),create:(e,t)=>this.request("POST","/imports",{...t,body:e}),completeMapping:(e,t,r)=>this.request("PATCH",`/imports/${e}/complete_mapping`,{...r,body:t??{}}),retryFailedRows:(e,t)=>this.request("PATCH",`/imports/${e}/retry_failed_rows`,t),delete:(e,t)=>this.request("DELETE",`/imports/${e}`,t),rows:{list:(e,t,r)=>this.request("GET",`/imports/${e}/rows`,{...r,params:t?k(t):void 0})}};customers={list:(e,t)=>this.request("GET","/customers",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/customers/${e}`,{...r,params:E(t)}),creditCards:{list:(e,t,r)=>this.request("GET",`/customers/${e}/credit_cards`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/customers/${e}/credit_cards/${t}`,{...i,params:E(r)}),delete:(e,t,r)=>this.request("DELETE",`/customers/${e}/credit_cards/${t}`,r)},create:(e,t)=>this.request("POST","/customers",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/customers/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/customers/${e}`,t),bulkAddToGroups:(e,t)=>this.request("POST","/customers/bulk_add_to_groups",{...t,body:e}),bulkRemoveFromGroups:(e,t)=>this.request("POST","/customers/bulk_remove_from_groups",{...t,body:e}),bulkAddTags:(e,t)=>this.request("POST","/customers/bulk_add_tags",{...t,body:e}),bulkRemoveTags:(e,t)=>this.request("POST","/customers/bulk_remove_tags",{...t,body:e}),addresses:{list:(e,t,r)=>this.request("GET",`/customers/${e}/addresses`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/customers/${e}/addresses/${t}`,{...i,params:E(r)}),create:(e,t,r)=>this.request("POST",`/customers/${e}/addresses`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/customers/${e}/addresses/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/customers/${e}/addresses/${t}`,r)},storeCredits:{list:(e,t,r)=>this.request("GET",`/customers/${e}/store_credits`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/customers/${e}/store_credits/${t}`,{...i,params:E(r)}),create:(e,t,r)=>this.request("POST",`/customers/${e}/store_credits`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/customers/${e}/store_credits/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/customers/${e}/store_credits/${t}`,r)},customFields:this.parentScopedCustomFields(kt["Spree::User"])};categories={list:(e,t)=>this.request("GET","/categories",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/categories/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/categories",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/categories/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/categories/${e}`,t),reposition:(e,t,r)=>this.request("PATCH",`/categories/${e}/reposition`,{...r,body:t}),products:{list:(e,t,r)=>this.request("GET",`/categories/${e}/products`,{...r,params:t?k(t):void 0}),add:(e,t,r)=>this.request("POST",`/categories/${e}/products`,{...r,body:{product_id:t}}),remove:(e,t,r)=>this.request("DELETE",`/categories/${e}/products/${t}`,r),reposition:(e,t,r,i)=>this.request("PATCH",`/categories/${e}/products/${t}/reposition`,{...i,body:r})},customFields:this.parentScopedCustomFields(kt["Spree::Category"]),translations:this.parentScopedTranslations("/categories")};variants={list:(e,t)=>this.request("GET","/variants",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/variants/${e}`,{...r,params:E(t)}),customFields:this.parentScopedCustomFields(kt["Spree::Variant"])};taxCategories={list:(e,t)=>this.request("GET","/tax_categories",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/tax_categories/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/tax_categories",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/tax_categories/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/tax_categories/${e}`,t)};channels={list:(e,t)=>this.request("GET","/channels",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/channels/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/channels",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/channels/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/channels/${e}`,t),addProducts:(e,t,r)=>this.request("POST",`/channels/${e}/add_products`,{...r,body:t}),removeProducts:(e,t,r)=>this.request("POST",`/channels/${e}/remove_products`,{...r,body:t})};markets={list:(e,t)=>this.request("GET","/markets",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/markets/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/markets",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/markets/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/markets/${e}`,t)};storeCreditCategories={list:(e,t)=>this.request("GET","/store_credit_categories",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/store_credit_categories/${e}`,{...r,params:E(t)})};stockLocations={list:(e,t)=>this.request("GET","/stock_locations",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/stock_locations/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/stock_locations",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/stock_locations/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/stock_locations/${e}`,t)};stockItems={list:(e,t)=>this.request("GET","/stock_items",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/stock_items/${e}`,{...r,params:E(t)}),update:(e,t,r)=>this.request("PATCH",`/stock_items/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/stock_items/${e}`,t)};stockTransfers={list:(e,t)=>this.request("GET","/stock_transfers",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/stock_transfers/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/stock_transfers",{...t,body:e}),delete:(e,t)=>this.request("DELETE",`/stock_transfers/${e}`,t)};countries={list:(e,t)=>this.request("GET","/countries",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/countries/${e}`,{...r,params:E(t)})};directUploads={create:(e,t)=>this.request("POST","/direct_uploads",{...t,body:e})};adminUsers={list:(e,t)=>this.request("GET","/admin_users",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/admin_users/${e}`,{...r,params:E(t)}),update:(e,t,r)=>this.request("PATCH",`/admin_users/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/admin_users/${e}`,t)};invitations={list:(e,t)=>this.request("GET","/invitations",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/invitations/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/invitations",{...t,body:e}),delete:(e,t)=>this.request("DELETE",`/invitations/${e}`,t),resend:(e,t)=>this.request("PATCH",`/invitations/${e}/resend`,t)};apiKeys={list:(e,t)=>this.request("GET","/api_keys",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/api_keys/${e}`,{...r,params:E(t)}),current:e=>this.request("GET","/api_keys/current",e??{}),create:(e,t)=>this.request("POST","/api_keys",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/api_keys/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/api_keys/${e}`,t),revoke:(e,t)=>this.request("PATCH",`/api_keys/${e}/revoke`,t)};allowedOrigins={list:(e,t)=>this.request("GET","/allowed_origins",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/allowed_origins/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/allowed_origins",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/allowed_origins/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/allowed_origins/${e}`,t)};webhookEndpoints={list:(e,t)=>this.request("GET","/webhook_endpoints",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/webhook_endpoints/${e}`,{...r,params:E(t)}),create:(e,t)=>this.request("POST","/webhook_endpoints",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/webhook_endpoints/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/webhook_endpoints/${e}`,t),sendTest:(e,t)=>this.request("POST",`/webhook_endpoints/${e}/send_test`,t),enable:(e,t)=>this.request("PATCH",`/webhook_endpoints/${e}/enable`,t),disable:(e,t,r)=>this.request("PATCH",`/webhook_endpoints/${e}/disable`,{...r,body:t}),deliveries:{list:(e,t,r)=>this.request("GET",`/webhook_endpoints/${e}/deliveries`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/webhook_endpoints/${e}/deliveries/${t}`,r),redeliver:(e,t,r)=>this.request("POST",`/webhook_endpoints/${e}/deliveries/${t}/redeliver`,r)}};roles={list:(e,t)=>this.request("GET","/roles",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/roles/${e}`,{...r,params:E(t)})}};function br(e){let t=e.baseUrl.replace(/\/$/,""),r=e.fetch||fetch.bind(globalThis),i=kk(e.retry),n={baseUrl:t,fetchFn:r,retryConfig:i,credentials:e.credentials??"include"},s=e.jwtToken,o=e.storeId,a=null,c="/api/v3/admin",d=async(l,m,h={})=>{let f={};o&&(f["X-Spree-Store-Id"]=o);let x={...h,headers:{...f,...h.headers}},w=()=>{let S=e.secretKey?{headerName:"X-Spree-Api-Key",headerValue:e.secretKey}:{headerName:"Authorization",headerValue:s?`Bearer ${s}`:""};return Ak(n,c,S)(l,m,x)};try{return await w()}catch(S){if(S instanceof vt&&S.status===401&&a&&!m.includes("/auth/")&&await a())return w();throw S}},p=new Ck(d),u=Object.create(p);return u.setStore=l=>{o=l},u.setToken=l=>{s=l},u.onUnauthorized=l=>{a=l},u}var Mm=U(qr(),1),Ae=U(Y(),1);var xm=U(Y(),1);import Pv from"fs";var Xo=Symbol("no-body");async function km(e){if(e===void 0)return Xo;let t;if(e==="-")t=await Tv();else if(e.startsWith("@")){let r=e.slice(1);try{t=Pv.readFileSync(r,"utf-8")}catch(i){throw i?.code==="ENOENT"?new Error(`Request body file not found: ${r}`):new Error(`Could not read request body file ${r}: ${i.message}`)}}else t=e;try{return JSON.parse(t)}catch{let r=e==="-"?" (from stdin)":e.startsWith("@")?` (${e.slice(1)})`:"";throw new Error(`Request body is not valid JSON${r}`)}}async function Tv(){process.stdin.isTTY&&process.stderr.write(`${xm.default.dim("Reading request body from stdin \u2014 paste JSON and press Ctrl-D...")}
|
|
154
|
-
`);let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf-8")}var
|
|
152
|
+
${l.replace(/\n$/,"")}${a.slice(m)}`,se.writeFileSync(r,a),"amended"}function Ek(e){let t=le.join(e,"gitignore.template");se.existsSync(t)&&se.renameSync(t,le.join(e,".gitignore"))}async function Pk(e,t){if(se.existsSync(e)&&se.statSync(e).isDirectory()){se.cpSync(e,t,{recursive:!0,filter:r=>{let i=le.basename(r);return i!=="node_modules"&&i!=="dist"&&i!==".git"}});return}await J("git",["clone","--depth","1","--",e,t]),se.rmSync(le.join(t,".git"),{recursive:!0,force:!0})}function nm(e,t){se.writeFileSync(e,["# URL of your Spree API server. No credentials belong in this file \u2014","# every VITE_-prefixed value is compiled into the client bundle.",`VITE_SPREE_API_URL=http://localhost:${t}`,""].join(`
|
|
153
|
+
`))}function vr(e,t){for(let r of[t,e]){if(se.existsSync(le.join(r,"pnpm-lock.yaml")))return"pnpm";if(se.existsSync(le.join(r,"yarn.lock")))return"yarn";if(se.existsSync(le.join(r,"package-lock.json")))return"npm"}return"pnpm"}function P(e){if(!e)return;let t={};return e.expand?.length&&(t.expand=e.expand.join(",")),e.fields?.length&&(t.fields=e.fields.join(",")),Object.keys(t).length>0?t:void 0}function Tk(e){return e===!1?!1:{maxRetries:e?.maxRetries??2,retryOnStatus:e?.retryOnStatus??[429,500,502,503,504],baseDelay:e?.baseDelay??300,maxDelay:e?.maxDelay??1e4,retryOnNetworkError:e?.retryOnNetworkError??!0}}var Ik=new Set(["page","limit","expand","sort","fields"]);function k(e){let t={};for(let[r,i]of Object.entries(e))if(i!==void 0){if(Ik.has(r)){t[r]=Array.isArray(i)?i.join(","):i;continue}if(r.startsWith("q[")){t[r]=i;continue}if(Array.isArray(i)){let n=r.endsWith("[]")?r.slice(0,-2):r;t[`q[${n}][]`]=i}else t[`q[${r}]`]=i}return t}var St=class extends Error{code;status;details;constructor(e,t){super(e.error.message),this.name="SpreeError",this.code=e.error.code,this.status=t,this.details=e.error.details}};function om(e,t){let r=t.baseDelay*2**e,i=Math.random()*t.baseDelay;return Math.min(r+i,t.maxDelay)}function am(e){return new Promise(t=>setTimeout(t,e))}function Rk(){return`spree-sdk-retry-${crypto.randomUUID()}`}function Ok(e,t,r,i){return e==="GET"||e==="HEAD"||i?r.retryOnStatus.includes(t):t===429}function jk(e,t,r){return t.retryOnNetworkError?e==="GET"||e==="HEAD"||r:!1}function Dk(e,t,r,i){return async function(s,o,a={}){let{token:c,spreeToken:d,idempotencyKey:p,headers:u={},body:l,params:m}=a,h=a.locale??i?.locale,f=a.currency??i?.currency,x=a.country??i?.country,w=a.channel??i?.channel,S=typeof window<"u"?window.location.origin:void 0,g=e.baseUrl||S;if(!g)throw new TypeError("sdk-core: baseUrl is required in non-browser environments (no window.location to resolve relative URLs against)");let I=new URL(`${e.baseUrl}${t}${o}`,g);m&&Object.entries(m).forEach(([H,$])=>{if($!==void 0)if(Array.isArray($))for(let Ge of $)I.searchParams.append(H,String(Ge));else I.searchParams.set(H,String($))});let v={"Content-Type":"application/json",...u};r.headerValue&&(v[r.headerName]=r.headerValue),c&&(v.Authorization=`Bearer ${c}`),d&&(v["x-spree-token"]=d),h&&(v["x-spree-locale"]=h),f&&(v["x-spree-currency"]=f),x&&(v["x-spree-country"]=x),w&&(v["x-spree-channel"]=w);let j=p??(s!=="GET"&&s!=="HEAD"&&e.retryConfig?Rk():void 0);j&&(v["Idempotency-Key"]=j);let L=!!j,G=e.retryConfig?e.retryConfig.maxRetries+1:1;for(let H=0;H<G;H++)try{let $=await e.fetchFn(I.toString(),{method:s,headers:v,body:l?JSON.stringify(l):void 0,credentials:e.credentials});if(!$.ok){if(!(H>=G-1)&&e.retryConfig&&Ok(s,$.status,e.retryConfig,L)){let V=$.headers.get("Retry-After"),de=V?Math.min(parseInt(V,10)*1e3,e.retryConfig.maxDelay):om(H,e.retryConfig);await am(de);continue}let ze=await $.json();throw new St(ze,$.status)}return $.status===204?void 0:$.status===202?$.headers.get("content-type")?.includes("application/json")?$.json():void 0:$.json()}catch($){if($ instanceof St)throw $;if(!(H>=G-1)&&e.retryConfig&&jk(s,e.retryConfig,L)){let ze=om(H,e.retryConfig);await am(ze);continue}throw $}throw new Error("Unexpected end of retry loop")}}var vt={"Spree::Product":"/products","Spree::Variant":"/variants","Spree::Order":"/orders","Spree::User":"/customers","Spree::Category":"/categories","Spree::OptionType":"/option_types"},Lk=class{request;constructor(e){this.request=e}parentScopedCustomFields(e){return{list:(t,r,i)=>this.request("GET",`${e}/${t}/custom_fields`,{...i,params:r?k(r):void 0}),get:(t,r,i)=>this.request("GET",`${e}/${t}/custom_fields/${r}`,i),create:(t,r,i)=>this.request("POST",`${e}/${t}/custom_fields`,{...i,body:r}),update:(t,r,i,n)=>this.request("PATCH",`${e}/${t}/custom_fields/${r}`,{...n,body:i}),delete:(t,r,i)=>this.request("DELETE",`${e}/${t}/custom_fields/${r}`,i)}}parentScopedTranslations(e){return{get:(t,r)=>this.request("GET",`${e}/${t}/translations`,r).then(i=>i.data)}}customFields(e,t){let r=vt[e];if(!r)throw new Error(`Unknown custom-field owner type: ${e}. Add it to CUSTOM_FIELD_OWNER_PATHS.`);let i=this.parentScopedCustomFields(r);return{list:(n,s)=>i.list(t,n,s),get:(n,s)=>i.get(t,n,s),create:(n,s)=>i.create(t,n,s),update:(n,s,o)=>i.update(t,n,s,o),delete:(n,s)=>i.delete(t,n,s)}}customFieldDefinitions={list:(e,t)=>this.request("GET","/custom_field_definitions",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/custom_field_definitions/${e}`,t),create:(e,t)=>this.request("POST","/custom_field_definitions",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/custom_field_definitions/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/custom_field_definitions/${e}`,t)};auth={login:(e,t)=>this.request("POST","/auth/login",{...t,body:e}),refresh:e=>this.request("POST","/auth/refresh",e),logout:e=>this.request("POST","/auth/logout",e),lookupInvitation:(e,t,r)=>this.request("GET",`/auth/invitations/${e}/lookup`,{...r,params:{token:t}}),acceptInvitation:(e,t,r,i)=>this.request("POST",`/auth/invitations/${e}/accept`,{...i,params:{token:t},body:r}),requestPasswordReset:(e,t)=>this.request("POST","/auth/password_resets",{...t,body:e}),resetPassword:(e,t,r)=>this.request("PATCH",`/auth/password_resets/${encodeURIComponent(e)}`,{...r,body:t})};me={get:e=>this.request("GET","/me",e),update:(e,t)=>this.request("PATCH","/me",{...t,body:e})};dashboard={analytics:(e,t)=>this.request("GET","/dashboard/analytics",{...t,params:e})};store={get:e=>this.request("GET","/store",e),update:(e,t)=>this.request("PATCH","/store",{...t,body:e})};locales={list:e=>this.request("GET","/locales",e).then(t=>t.data)};translatableResources={list:e=>this.request("GET","/translatable_resources",e).then(t=>t.data)};translations={batch:(e,t)=>this.request("POST","/translations/batch",{...t,body:{translations:e}}).then(r=>r.data)};products={list:(e,t)=>this.request("GET","/products",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/products/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/products",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/products/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/products/${e}`,t),clone:(e,t)=>this.request("POST",`/products/${e}/clone`,t),bulkStatusUpdate:(e,t)=>this.request("POST","/products/bulk_status_update",{...t,body:e}),bulkAddToCategories:(e,t)=>this.request("POST","/products/bulk_add_to_categories",{...t,body:e}),bulkRemoveFromCategories:(e,t)=>this.request("POST","/products/bulk_remove_from_categories",{...t,body:e}),bulkAddToChannels:(e,t)=>this.request("POST","/products/bulk_add_to_channels",{...t,body:e}),bulkRemoveFromChannels:(e,t)=>this.request("POST","/products/bulk_remove_from_channels",{...t,body:e}),bulkAddTags:(e,t)=>this.request("POST","/products/bulk_add_tags",{...t,body:e}),bulkRemoveTags:(e,t)=>this.request("POST","/products/bulk_remove_tags",{...t,body:e}),bulkDestroy:(e,t)=>this.request("DELETE","/products/bulk_destroy",{...t,body:e}),media:{list:(e,t,r)=>this.request("GET",`/products/${e}/media`,{...r,params:t?k(t):void 0}),create:(e,t,r)=>this.request("POST",`/products/${e}/media`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/products/${e}/media/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/products/${e}/media/${t}`,r)},variants:{list:(e,t,r)=>this.request("GET",`/products/${e}/variants`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/products/${e}/variants/${t}`,{...i,params:P(r)}),create:(e,t,r)=>this.request("POST",`/products/${e}/variants`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/products/${e}/variants/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/products/${e}/variants/${t}`,r),media:{list:(e,t,r,i)=>this.request("GET",`/products/${e}/variants/${t}/media`,{...i,params:r?k(r):void 0}),create:(e,t,r,i)=>this.request("POST",`/products/${e}/variants/${t}/media`,{...i,body:r}),update:(e,t,r,i,n)=>this.request("PATCH",`/products/${e}/variants/${t}/media/${r}`,{...n,body:i}),delete:(e,t,r,i)=>this.request("DELETE",`/products/${e}/variants/${t}/media/${r}`,i)}},customFields:this.parentScopedCustomFields(vt["Spree::Product"]),translations:this.parentScopedTranslations("/products")};orders={list:(e,t)=>this.request("GET","/orders",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/orders/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/orders",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/orders/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/orders/${e}`,t),complete:(e,t,r)=>this.request("PATCH",`/orders/${e}/complete`,{...r,body:t}),cancel:(e,t,r)=>this.request("PATCH",`/orders/${e}/cancel`,{...r,body:t}),approve:(e,t,r)=>this.request("PATCH",`/orders/${e}/approve`,{...r,body:t}),resume:(e,t)=>this.request("PATCH",`/orders/${e}/resume`,t),resendConfirmation:(e,t)=>this.request("POST",`/orders/${e}/resend_confirmation`,t),giftCards:{apply:(e,t,r)=>this.request("POST",`/orders/${e}/gift_cards`,{...r,body:t}),remove:(e,t,r)=>this.request("DELETE",`/orders/${e}/gift_cards/${t}`,r)},storeCredits:{apply:(e,t,r)=>this.request("POST",`/orders/${e}/store_credits`,{...r,body:t}),remove:(e,t)=>this.request("DELETE",`/orders/${e}/store_credits`,t)},items:{list:(e,t,r)=>this.request("GET",`/orders/${e}/items`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/orders/${e}/items/${t}`,{...i,params:P(r)}),create:(e,t,r)=>this.request("POST",`/orders/${e}/items`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/orders/${e}/items/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/orders/${e}/items/${t}`,r)},fulfillments:{list:(e,t,r)=>this.request("GET",`/orders/${e}/fulfillments`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/orders/${e}/fulfillments/${t}`,{...i,params:P(r)}),create:(e,t,r)=>this.request("POST",`/orders/${e}/fulfillments`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}`,{...i,body:r}),fulfill:(e,t,r)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/fulfill`,r),cancel:(e,t,r)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/cancel`,r),resume:(e,t,r)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/resume`,r),split:(e,t,r,i)=>this.request("PATCH",`/orders/${e}/fulfillments/${t}/split`,{...i,body:r})},payments:{list:(e,t,r)=>this.request("GET",`/orders/${e}/payments`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/orders/${e}/payments/${t}`,{...i,params:P(r)}),create:(e,t,r)=>this.request("POST",`/orders/${e}/payments`,{...r,body:t}),capture:(e,t,r)=>this.request("PATCH",`/orders/${e}/payments/${t}/capture`,r),void:(e,t,r)=>this.request("PATCH",`/orders/${e}/payments/${t}/void`,r)},refunds:{list:(e,t,r)=>this.request("GET",`/orders/${e}/refunds`,{...r,params:t?k(t):void 0}),create:(e,t,r)=>this.request("POST",`/orders/${e}/refunds`,{...r,body:t})},adjustments:{list:(e,t,r)=>this.request("GET",`/orders/${e}/adjustments`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/orders/${e}/adjustments/${t}`,r)},customFields:this.parentScopedCustomFields(vt["Spree::Order"])};optionTypes={list:(e,t)=>this.request("GET","/option_types",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/option_types/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/option_types",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/option_types/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/option_types/${e}`,t),customFields:this.parentScopedCustomFields(vt["Spree::OptionType"]),translations:this.parentScopedTranslations("/option_types")};paymentMethods={list:(e,t)=>this.request("GET","/payment_methods",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/payment_methods/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/payment_methods",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/payment_methods/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/payment_methods/${e}`,t),types:e=>this.request("GET","/payment_methods/types",e)};priceLists={list:(e,t)=>this.request("GET","/price_lists",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/price_lists/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/price_lists",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/price_lists/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/price_lists/${e}`,t),activate:(e,t)=>this.request("PATCH",`/price_lists/${e}/activate`,t),deactivate:(e,t)=>this.request("PATCH",`/price_lists/${e}/deactivate`,t),ruleTypes:e=>this.request("GET","/price_lists/price_rule_types",e)};prices={list:(e,t)=>this.request("GET","/prices",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/prices/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/prices",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/prices/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/prices/${e}`,t),bulkUpsert:(e,t)=>this.request("POST","/prices/bulk_upsert",{...t,body:e}),bulkDestroy:(e,t)=>this.request("DELETE","/prices/bulk_destroy",{...t,body:e})};promotions={list:(e,t)=>this.request("GET","/promotions",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/promotions",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/promotions/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/promotions/${e}`,t),actions:{list:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_actions`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_actions/${t}`,r),create:(e,t,r)=>this.request("POST",`/promotions/${e}/promotion_actions`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/promotions/${e}/promotion_actions/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/promotions/${e}/promotion_actions/${t}`,r)},rules:{list:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_rules`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}/promotion_rules/${t}`,r),create:(e,t,r)=>this.request("POST",`/promotions/${e}/promotion_rules`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/promotions/${e}/promotion_rules/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/promotions/${e}/promotion_rules/${t}`,r)},couponCodes:{list:(e,t,r)=>this.request("GET",`/promotions/${e}/coupon_codes`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/promotions/${e}/coupon_codes/${t}`,r)}};promotionActions={types:e=>this.request("GET","/promotion_actions/types",e),calculators:(e,t)=>this.request("GET","/promotion_actions/calculators",{...t,params:{type:e}})};promotionRules={types:e=>this.request("GET","/promotion_rules/types",e)};tags={list:(e,t)=>this.request("GET","/tags",{...t,params:e})};customerGroups={list:(e,t)=>this.request("GET","/customer_groups",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/customer_groups/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/customer_groups",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/customer_groups/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/customer_groups/${e}`,t)};giftCards={list:(e,t)=>this.request("GET","/gift_cards",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/gift_cards/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/gift_cards",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/gift_cards/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/gift_cards/${e}`,t)};giftCardBatches={list:(e,t)=>this.request("GET","/gift_card_batches",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/gift_card_batches/${e}`,t),create:(e,t)=>this.request("POST","/gift_card_batches",{...t,body:e})};exports={list:(e,t)=>this.request("GET","/exports",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/exports/${e}`,t),create:(e,t)=>this.request("POST","/exports",{...t,body:e}),delete:(e,t)=>this.request("DELETE",`/exports/${e}`,t)};imports={list:(e,t)=>this.request("GET","/imports",{...t,params:e?k(e):void 0}),get:(e,t)=>this.request("GET",`/imports/${e}`,t),create:(e,t)=>this.request("POST","/imports",{...t,body:e}),completeMapping:(e,t,r)=>this.request("PATCH",`/imports/${e}/complete_mapping`,{...r,body:t??{}}),retryFailedRows:(e,t)=>this.request("PATCH",`/imports/${e}/retry_failed_rows`,t),delete:(e,t)=>this.request("DELETE",`/imports/${e}`,t),rows:{list:(e,t,r)=>this.request("GET",`/imports/${e}/rows`,{...r,params:t?k(t):void 0})}};customers={list:(e,t)=>this.request("GET","/customers",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/customers/${e}`,{...r,params:P(t)}),creditCards:{list:(e,t,r)=>this.request("GET",`/customers/${e}/credit_cards`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/customers/${e}/credit_cards/${t}`,{...i,params:P(r)}),delete:(e,t,r)=>this.request("DELETE",`/customers/${e}/credit_cards/${t}`,r)},create:(e,t)=>this.request("POST","/customers",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/customers/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/customers/${e}`,t),bulkAddToGroups:(e,t)=>this.request("POST","/customers/bulk_add_to_groups",{...t,body:e}),bulkRemoveFromGroups:(e,t)=>this.request("POST","/customers/bulk_remove_from_groups",{...t,body:e}),bulkAddTags:(e,t)=>this.request("POST","/customers/bulk_add_tags",{...t,body:e}),bulkRemoveTags:(e,t)=>this.request("POST","/customers/bulk_remove_tags",{...t,body:e}),addresses:{list:(e,t,r)=>this.request("GET",`/customers/${e}/addresses`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/customers/${e}/addresses/${t}`,{...i,params:P(r)}),create:(e,t,r)=>this.request("POST",`/customers/${e}/addresses`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/customers/${e}/addresses/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/customers/${e}/addresses/${t}`,r)},storeCredits:{list:(e,t,r)=>this.request("GET",`/customers/${e}/store_credits`,{...r,params:t?k(t):void 0}),get:(e,t,r,i)=>this.request("GET",`/customers/${e}/store_credits/${t}`,{...i,params:P(r)}),create:(e,t,r)=>this.request("POST",`/customers/${e}/store_credits`,{...r,body:t}),update:(e,t,r,i)=>this.request("PATCH",`/customers/${e}/store_credits/${t}`,{...i,body:r}),delete:(e,t,r)=>this.request("DELETE",`/customers/${e}/store_credits/${t}`,r)},customFields:this.parentScopedCustomFields(vt["Spree::User"])};categories={list:(e,t)=>this.request("GET","/categories",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/categories/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/categories",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/categories/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/categories/${e}`,t),reposition:(e,t,r)=>this.request("PATCH",`/categories/${e}/reposition`,{...r,body:t}),products:{list:(e,t,r)=>this.request("GET",`/categories/${e}/products`,{...r,params:t?k(t):void 0}),add:(e,t,r)=>this.request("POST",`/categories/${e}/products`,{...r,body:{product_id:t}}),remove:(e,t,r)=>this.request("DELETE",`/categories/${e}/products/${t}`,r),reposition:(e,t,r,i)=>this.request("PATCH",`/categories/${e}/products/${t}/reposition`,{...i,body:r})},customFields:this.parentScopedCustomFields(vt["Spree::Category"]),translations:this.parentScopedTranslations("/categories")};variants={list:(e,t)=>this.request("GET","/variants",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/variants/${e}`,{...r,params:P(t)}),customFields:this.parentScopedCustomFields(vt["Spree::Variant"])};taxCategories={list:(e,t)=>this.request("GET","/tax_categories",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/tax_categories/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/tax_categories",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/tax_categories/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/tax_categories/${e}`,t)};channels={list:(e,t)=>this.request("GET","/channels",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/channels/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/channels",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/channels/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/channels/${e}`,t),addProducts:(e,t,r)=>this.request("POST",`/channels/${e}/add_products`,{...r,body:t}),removeProducts:(e,t,r)=>this.request("POST",`/channels/${e}/remove_products`,{...r,body:t})};markets={list:(e,t)=>this.request("GET","/markets",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/markets/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/markets",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/markets/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/markets/${e}`,t)};storeCreditCategories={list:(e,t)=>this.request("GET","/store_credit_categories",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/store_credit_categories/${e}`,{...r,params:P(t)})};stockLocations={list:(e,t)=>this.request("GET","/stock_locations",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/stock_locations/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/stock_locations",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/stock_locations/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/stock_locations/${e}`,t)};stockItems={list:(e,t)=>this.request("GET","/stock_items",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/stock_items/${e}`,{...r,params:P(t)}),update:(e,t,r)=>this.request("PATCH",`/stock_items/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/stock_items/${e}`,t)};stockTransfers={list:(e,t)=>this.request("GET","/stock_transfers",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/stock_transfers/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/stock_transfers",{...t,body:e}),delete:(e,t)=>this.request("DELETE",`/stock_transfers/${e}`,t)};countries={list:(e,t)=>this.request("GET","/countries",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/countries/${e}`,{...r,params:P(t)})};directUploads={create:(e,t)=>this.request("POST","/direct_uploads",{...t,body:e})};adminUsers={list:(e,t)=>this.request("GET","/admin_users",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/admin_users/${e}`,{...r,params:P(t)}),update:(e,t,r)=>this.request("PATCH",`/admin_users/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/admin_users/${e}`,t)};invitations={list:(e,t)=>this.request("GET","/invitations",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/invitations/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/invitations",{...t,body:e}),delete:(e,t)=>this.request("DELETE",`/invitations/${e}`,t),resend:(e,t)=>this.request("PATCH",`/invitations/${e}/resend`,t)};apiKeys={list:(e,t)=>this.request("GET","/api_keys",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/api_keys/${e}`,{...r,params:P(t)}),current:e=>this.request("GET","/api_keys/current",e??{}),create:(e,t)=>this.request("POST","/api_keys",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/api_keys/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/api_keys/${e}`,t),revoke:(e,t)=>this.request("PATCH",`/api_keys/${e}/revoke`,t)};allowedOrigins={list:(e,t)=>this.request("GET","/allowed_origins",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/allowed_origins/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/allowed_origins",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/allowed_origins/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/allowed_origins/${e}`,t)};webhookEndpoints={list:(e,t)=>this.request("GET","/webhook_endpoints",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/webhook_endpoints/${e}`,{...r,params:P(t)}),create:(e,t)=>this.request("POST","/webhook_endpoints",{...t,body:e}),update:(e,t,r)=>this.request("PATCH",`/webhook_endpoints/${e}`,{...r,body:t}),delete:(e,t)=>this.request("DELETE",`/webhook_endpoints/${e}`,t),sendTest:(e,t)=>this.request("POST",`/webhook_endpoints/${e}/send_test`,t),enable:(e,t)=>this.request("PATCH",`/webhook_endpoints/${e}/enable`,t),disable:(e,t,r)=>this.request("PATCH",`/webhook_endpoints/${e}/disable`,{...r,body:t}),deliveries:{list:(e,t,r)=>this.request("GET",`/webhook_endpoints/${e}/deliveries`,{...r,params:t?k(t):void 0}),get:(e,t,r)=>this.request("GET",`/webhook_endpoints/${e}/deliveries/${t}`,r),redeliver:(e,t,r)=>this.request("POST",`/webhook_endpoints/${e}/deliveries/${t}/redeliver`,r)}};roles={list:(e,t)=>this.request("GET","/roles",{...t,params:e?k(e):void 0}),get:(e,t,r)=>this.request("GET",`/roles/${e}`,{...r,params:P(t)})}};function Sr(e){let t=e.baseUrl.replace(/\/$/,""),r=e.fetch||fetch.bind(globalThis),i=Tk(e.retry),n={baseUrl:t,fetchFn:r,retryConfig:i,credentials:e.credentials??"include"},s=e.jwtToken,o=e.storeId,a=null,c="/api/v3/admin",d=async(l,m,h={})=>{let f={};o&&(f["X-Spree-Store-Id"]=o);let x={...h,headers:{...f,...h.headers}},w=()=>{let S=e.secretKey?{headerName:"X-Spree-Api-Key",headerValue:e.secretKey}:{headerName:"Authorization",headerValue:s?`Bearer ${s}`:""};return Dk(n,c,S)(l,m,x)};try{return await w()}catch(S){if(S instanceof St&&S.status===401&&a&&!m.includes("/auth/")&&await a())return w();throw S}},p=new Lk(d),u=Object.create(p);return u.setStore=l=>{o=l},u.setToken=l=>{s=l},u.onUnauthorized=l=>{a=l},u}var Wm=U(Pr(),1),Ee=U(Y(),1);var $m=U(Y(),1);import Fv from"fs";var ta=Symbol("no-body");async function Am(e){if(e===void 0)return ta;let t;if(e==="-")t=await Bv();else if(e.startsWith("@")){let r=e.slice(1);try{t=Fv.readFileSync(r,"utf-8")}catch(i){throw i?.code==="ENOENT"?new Error(`Request body file not found: ${r}`):new Error(`Could not read request body file ${r}: ${i.message}`)}}else t=e;try{return JSON.parse(t)}catch{let r=e==="-"?" (from stdin)":e.startsWith("@")?` (${e.slice(1)})`:"";throw new Error(`Request body is not valid JSON${r}`)}}async function Bv(){process.stdin.isTTY&&process.stderr.write(`${$m.default.dim("Reading request body from stdin \u2014 paste JSON and press Ctrl-D...")}
|
|
154
|
+
`);let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf-8")}var ca=U(Pr(),1),fe=U(Y(),1);var Tr=U(Y(),1);import Ce from"fs";import Uv from"os";import Ue from"path";var Cm=U(Y(),1);async function Z(e,t,r){return J("docker",["compose",...e],{cwd:t,...r})}async function lt(e,t){try{await Z(["up","-d","--no-deps","web"],e,{stdio:t?.stdio??"inherit"})}catch{}}async function ie(e,t,r){let i=["compose","exec","-T"];if(r)for(let[s,o]of Object.entries(r))i.push("-e",`${s}=${o}`);i.push("web","bin/rails",e);let{stdout:n}=await J("docker",i,{cwd:t});return n.split(`
|
|
155
155
|
`).filter(s=>!s.startsWith("[")).join(`
|
|
156
|
-
`).trim()}async function
|
|
157
|
-
`).some(i=>i.trim()==="running")}async function F(e,t,r={}){let{service:i="web",tty:n=!0,detach:s=!1,env:o}=r,a=["compose","exec"];if(s&&a.push("-d"),n||a.push("-T"),o)for(let[c,d]of Object.entries(o))a.push("-e",`${c}=${d}`);a.push(i,...e),await
|
|
158
|
-
`)),process.exit(1)),b.info(`${i} container is not running \u2014 using a one-off container (\`docker compose run\`) instead.`),await
|
|
159
|
-
`),{profiles:{}}}}function
|
|
160
|
-
`)}function
|
|
161
|
-
`)}function
|
|
162
|
-
`)
|
|
156
|
+
`).trim()}async function Em(e){let{stdout:t}=await J("docker",["compose","ps","-a","-q"],{cwd:e});return t.trim().length>0}async function $t(e,t){let{stdout:r}=await J("docker",["compose","ps",e,"--format","{{.State}}"],{cwd:t});return r.split(`
|
|
157
|
+
`).some(i=>i.trim()==="running")}async function F(e,t,r={}){let{service:i="web",tty:n=!0,detach:s=!1,env:o}=r,a=["compose","exec"];if(s&&a.push("-d"),n||a.push("-T"),o)for(let[c,d]of Object.entries(o))a.push("-e",`${c}=${d}`);a.push(i,...e),await J("docker",a,{cwd:t,stdio:"inherit"})}async function wn(e){await F(["bin/rails","spree:admin:tailwindcss:build"],e,{tty:!1})}async function Pm(e){await F(["bin/rails","spree:admin:tailwindcss:watch"],e,{detach:!0})}async function ra(e,t,r={}){let{service:i="web",env:n,captureStderr:s=!1}=r,o=["compose","run","--rm"];if(n)for(let[c,d]of Object.entries(n))o.push("-e",`${c}=${d}`);o.push(i,...e),await J("docker",o,{cwd:t,...s?{stdin:"inherit",stdout:"inherit",stderr:["pipe","inherit"]}:{stdio:"inherit"}})}async function mt(e,t,r={}){let{service:i="web",env:n,edgeHint:s}=r;if(await $t(i,t)){await F(e,t,{service:i,env:n});return}Me(t)&&(O([`The ${i} container is not running, and this is a monorepo edge project.`,`Run ${Cm.default.bold("pnpm server:dev")} from the monorepo root${s?` \u2014 ${s}`:""}.`].join(`
|
|
158
|
+
`)),process.exit(1)),b.info(`${i} container is not running \u2014 using a one-off container (\`docker compose run\`) instead.`),await ra(e,t,{service:i,env:n})}async function xn(e,t){await J("docker",["compose","logs","-f",e],{cwd:t,stdio:"inherit"})}var ia=`http://localhost:${3e3}`,ht=class extends Error{};function Tm(){return process.env.XDG_CONFIG_HOME?Ue.join(process.env.XDG_CONFIG_HOME,"spree"):Ue.join(Uv.homedir(),".config","spree")}function At(){return Ue.join(Tm(),"config.json")}function na(e){return e?.code==="ENOENT"}function Ir(){let e;try{e=Ce.readFileSync(At(),"utf-8")}catch(t){if(na(t))return{profiles:{}};throw t}try{let t=JSON.parse(e);return{...t,profiles:t.profiles??{}}}catch{let t=`${At()}.bak`;try{Ce.renameSync(At(),t)}catch{}return process.stderr.write(`${Tr.default.yellow(`warning: ${At()} was not valid JSON; moved it to ${t} and starting fresh.`)}
|
|
159
|
+
`),{profiles:{}}}}function sa(e){Ce.mkdirSync(Tm(),{recursive:!0,mode:448}),Im(At(),`${JSON.stringify(e,null,2)}
|
|
160
|
+
`)}function Im(e,t){Ce.writeFileSync(e,t,{mode:384}),Ce.chmodSync(e,384)}function Kt(e){return Ue.join(e,".spree","credentials.json")}function oa(e){return Ue.join(e,".spree","setup-complete")}function Rm(e){let t=oa(e);Ce.mkdirSync(Ue.dirname(t),{recursive:!0,mode:448}),Om(Ue.join(Ue.dirname(t),".gitignore")),Ce.writeFileSync(t,`${new Date().toISOString()}
|
|
161
|
+
`)}function Nv(e){let t;try{t=Ce.readFileSync(Kt(e),"utf-8")}catch(r){if(na(r))return null;throw r}try{return JSON.parse(t)}catch{return null}}function Gv(e,t){let r=Kt(e),i=Ue.dirname(r);Ce.mkdirSync(i,{recursive:!0,mode:448}),Om(Ue.join(i,".gitignore")),Im(r,`${JSON.stringify(t,null,2)}
|
|
162
|
+
`)}function Om(e){let t="";try{t=Ce.readFileSync(e,"utf-8")}catch(i){if(!na(i))throw i}t.split(`
|
|
163
|
+
`).some(i=>i.trim()==="*")||Ce.writeFileSync(e,t&&!t.endsWith(`
|
|
163
164
|
`)?`${t}
|
|
164
165
|
*
|
|
165
166
|
`:`${t}*
|
|
166
|
-
`)}function
|
|
167
|
+
`)}function kn(e){return e.slice(0,12)}async function aa(e,t,r=!1){r||process.stderr.write(`${Tr.default.dim("No credentials found \u2014 minting a read-only API key via the dev stack...")}
|
|
167
168
|
`);let i;try{i=await ie("spree:cli:create_api_key",e,{NAME:"@spree/cli (auto)",KEY_TYPE:"secret",SCOPES:"read_all"})}catch(o){let a=o instanceof Error?o.message.split(`
|
|
168
|
-
`)[0]:String(o);throw new
|
|
169
|
-
${
|
|
170
|
-
`),s}async function
|
|
171
|
-
`));return{baseUrl:c,apiKey:d,source:a?.source??"flags",profileName:a?.profileName,tokenPrefix:
|
|
169
|
+
`)[0]:String(o);throw new ht(`Could not mint an API key via the dev stack. Is it running? Start it with \`spree dev\`.
|
|
170
|
+
${Tr.default.dim(a)}`)}let n=i.match(/sk_[A-Za-z0-9_-]+/);if(!n)throw new ht("Could not mint an API key via the dev stack. Is it running? Start it with `spree dev`.");let s={baseUrl:`http://localhost:${t}`,token:n[0],scopes:["read_all"],mintedAt:new Date().toISOString()};return Gv(e,s),r||process.stderr.write(`${Tr.default.dim("Saved to .spree/credentials.json (scopes: read_all)")}
|
|
171
|
+
`),s}async function Rr(e,t={}){let{allowMint:r=!0,cwd:i=process.cwd()}=t,n=Ir(),s=e.baseUrl,o=e.apiKey,a;if(o&&(a={apiKey:o,source:"flags"}),!a&&e.profile){let p=n.profiles[e.profile];if(!p)throw new ht(`Unknown profile "${e.profile}". Run \`spree auth login --profile ${e.profile}\` to create it.`);a={baseUrl:p.baseUrl,apiKey:p.token,source:"profile",profileName:e.profile}}if(!a&&process.env.SPREE_API_KEY&&(a={baseUrl:process.env.SPREE_BASE_URL,apiKey:process.env.SPREE_API_KEY,source:"env"}),!a){let p,u=0;try{let l=_(i);p=l.projectDir,u=l.port}catch{}if(p){let l=`http://localhost:${u}`,m=!s||s.replace(/\/$/,"")===l,h=Nv(p);!h&&r&&m&&(h=await aa(p,u)),h&&(a={baseUrl:h.baseUrl,apiKey:h.token,source:"project",scopes:h.scopes})}}if(!a&&n.defaultProfile){let p=n.profiles[n.defaultProfile];p&&(a={baseUrl:p.baseUrl,apiKey:p.token,source:"profile",profileName:n.defaultProfile})}let c=s??a?.baseUrl,d=a?.apiKey;if(!c&&(a?.source==="flags"||a?.source==="env")&&(c=ia),!c||!d)throw new ht(["No Admin API credentials found. Provide them via one of (host and key resolve together per source):"," - flags: --api-key <sk_...> (host defaults to "+ia+"; pass --base-url for a remote store)"," - env: SPREE_API_KEY (host defaults to "+ia+"; set SPREE_BASE_URL for a remote store)"," - project: run inside a Spree project with the dev stack up (auto-mints a read-only key)"," - profile: spree auth login --profile <name>"].join(`
|
|
172
|
+
`));return{baseUrl:c,apiKey:d,source:a?.source??"flags",profileName:a?.profileName,tokenPrefix:kn(d),scopes:a?.scopes}}function Or(e,t="json"){if(e!=null){if(t==="table"){let r=Wv(e);if(r){(0,ca.printTable)(r.map(jm));return}let i=jm(e);(0,ca.printTable)(Object.entries(i).map(([n,s])=>({field:n,value:s})));return}process.stdout.isTTY?process.stdout.write(`${Vv(JSON.stringify(e,null,2))}
|
|
172
173
|
`):process.stdout.write(`${JSON.stringify(e)}
|
|
173
|
-
`)}}var
|
|
174
|
+
`)}}var zv=/("(?:\\.|[^"\\])*"(\s*:)?)|\b(true|false|null)\b|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g;function Vv(e){return e.replace(zv,(t,r,i,n,s)=>r!==void 0?i?fe.default.cyan(r.slice(0,-i.length))+i:fe.default.green(r):n!==void 0?fe.default.yellow(n):s!==void 0?fe.default.yellow(s):t)}function Wv(e){return Array.isArray(e)?e:e&&typeof e=="object"&&Array.isArray(e.data)?e.data:null}function jm(e){let t={};for(let[r,i]of Object.entries(e))i===null||["string","number","boolean"].includes(typeof i)?t[r]=i:Array.isArray(i)?t[r]=`[${i.length}]`:t[r]="{\u2026}";return t}function Ct(e,t={}){if(e instanceof St){let i=e.details?`
|
|
174
175
|
${JSON.stringify({details:e.details},null,2)}`:"";process.stderr.write(`${fe.default.red(`${e.code}:`)} ${e.message}${i}
|
|
175
176
|
`);let n=e.details?.required_scope;typeof n=="string"&&process.stderr.write(`${fe.default.dim(`Hint: this key lacks \`${n}\`. Create one that has it and use it:`)}
|
|
176
177
|
${fe.default.dim(` spree api-key create --type secret --scopes ${n}`)}
|
|
177
178
|
${fe.default.dim(" then pass it via --api-key <sk_...> or export SPREE_API_KEY=<sk_...>")}
|
|
178
|
-
`),process.exit(1)}if(e instanceof
|
|
179
|
+
`),process.exit(1)}if(e instanceof ht&&(process.stderr.write(`${fe.default.red("error:")} ${e.message}
|
|
179
180
|
`),process.exit(2)),e instanceof TypeError&&/fetch failed/i.test(e.message)){let i=e.cause,n=i instanceof Error?i.message:i?String(i):"",s=t.baseUrl?` (${t.baseUrl})`:"";process.stderr.write(`${fe.default.red("error:")} could not reach the server${s}${n?`: ${n}`:""}
|
|
180
181
|
`),process.stderr.write(`${fe.default.dim("Hint: check the URL, or run `spree api status` to diagnose reachability and credentials.")}
|
|
181
182
|
`),process.exit(2)}let r=e instanceof Error?e.message:String(e);process.stderr.write(`${fe.default.red("error:")} ${r}
|
|
182
|
-
`),process.exit(2)}function
|
|
183
|
+
`),process.exit(2)}function Lm(e){let t=new Map;for(let i of e.query??[]){let n=i.indexOf("=");if(n<=0)throw new Error(`Invalid -q expression "${i}" \u2014 expected key=value (e.g. -q status_eq=active)`);let s=i.slice(0,n),o=i.slice(n+1),a=t.get(s);a?a.push(o):t.set(s,[o])}let r={};for(let[i,n]of t)n.length>1?r[`q[${i}][]`]=n:r[`q[${i}]`]=n[0];return e.sort&&(r.sort=e.sort),e.page!==void 0&&(r.page=Dm(e.page,"--page")),e.limit!==void 0&&(r.limit=Dm(e.limit,"--limit")),e.expand&&(r.expand=e.expand),e.fields&&(r.fields=e.fields),r}function Dm(e,t){if(!/^[1-9]\d*$/.test(e))throw new Error(`Invalid ${t} "${e}" \u2014 expected a positive integer`);return Number(e)}function jr(e){let t=e.startsWith("/")?e:`/${e}`,r="/api/v3/admin";return t===r?"/":t.startsWith(`${r}/`)?t.slice(r.length):t}var Yt=U(Y(),1);async function Dr(e,t){let r=Sr({baseUrl:e,secretKey:t,retry:!1});try{return{status:"connected",storeName:(await r.request("GET","/store",{}))?.name}}catch(i){return i instanceof St?i.status===401?{status:"unauthorized",message:i.message}:i.status===403?{status:"forbidden"}:{status:"unreachable",message:`server responded HTTP ${i.status}: ${i.message}`}:{status:"unreachable",message:i instanceof Error?i.message:String(i)}}}async function Mm(e,t){let r=Sr({baseUrl:e,secretKey:t,retry:!1});try{return(await r.apiKeys.current()).scopes??null}catch{return null}}function vn(e){return e.status==="unauthorized"||e.status==="unreachable"}function Sn(e){return{connected:Yt.default.green(`connected${e.storeName?` (${e.storeName})`:""}`),forbidden:Yt.default.green("connected")+Yt.default.dim(" (key valid; lacks read_settings for store details)"),unauthorized:Yt.default.red("key rejected (401)"),unreachable:Yt.default.red(`unreachable \u2014 ${e.message}`)}[e.status]}var Fm={info:{title:"Admin API",contact:{name:"Spree Commerce",url:"https://spreecommerce.org",email:"hello@spreecommerce.org"},description:`Spree Admin API v3 - Administrative API for managing products, orders, and store settings.
|
|
183
184
|
|
|
184
185
|
## Authentication
|
|
185
186
|
|
|
@@ -360,29 +361,29 @@ accepts Spree's payloads.
|
|
|
360
361
|
repeated delivery failures), no notification email is sent.
|
|
361
362
|
|
|
362
363
|
|
|
363
|
-
**Required scope:** \`write_webhooks\` (for API-key authentication).`,parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}}],responses:{"200":{description:"webhook endpoint disabled",content:{"application/json":{}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{reason:{type:"string"}}}}}}}},"/api/v3/admin/categories":{get:{summary:"List categories",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Returns a paginated list of the store's categories (manual hierarchical taxons; rule-based collections are excluded).\n\n**Required scope:** `read_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"page",in:"query",required:!1,description:"Page number",schema:{type:"integer"}},{name:"limit",in:"query",required:!1,description:"Number of records per page",schema:{type:"integer"}},{name:"expand",in:"query",required:!1,description:"Comma-separated associations to expand (e.g., children, parent, ancestors).",schema:{type:"string"}}],responses:{"200":{description:"categories found",content:{"application/json":{schema:{type:"object",properties:{data:{type:"array",items:{$ref:"#/components/schemas/Category"}},meta:{$ref:"#/components/schemas/PaginationMeta"}},required:["data","meta"]}}}}}},post:{summary:"Create a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Creates a category. Nests under the parent when parent_id is given, otherwise creates a top-level category.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}}],responses:{"201":{description:"category created",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}},"422":{description:"validation error",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{name:{type:"string"},parent_id:{type:"string",description:"Prefixed ID of the parent category"},description:{type:"string"},permalink:{type:"string"},meta_title:{type:"string"},meta_description:{type:"string"},meta_keywords:{type:"string"},hide_from_nav:{type:"boolean"}},required:["name"]}}}}}},"/api/v3/admin/categories/{id}":{get:{summary:"Get a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Returns a single category by ID.\n\n**Required scope:** `read_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}},{name:"expand",in:"query",required:!1,description:"Comma-separated associations to expand (e.g., children, parent, ancestors).",schema:{type:"string"}}],responses:{"200":{description:"category found",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}},"404":{description:"category not found",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}},patch:{summary:"Update a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Updates a category.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"200":{description:"category updated",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{name:{type:"string"},parent_id:{type:"string",description:"Prefixed ID of the parent category"},description:{type:"string"},permalink:{type:"string"},meta_title:{type:"string"},meta_description:{type:"string"},meta_keywords:{type:"string"},hide_from_nav:{type:"boolean"}}}}}}},delete:{summary:"Delete a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Deletes a category and its descendants.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"204":{description:"category deleted"}}}},"/api/v3/admin/categories/{id}/reposition":{patch:{summary:"Reposition a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Moves a category to a new parent and/or index within the tree.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"200":{description:"category repositioned",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{new_parent_id:{type:"string",description:"Prefixed ID of the new parent (omit for top level)"},new_position:{type:"integer",description:"0-based index among the new parent's children"}},required:["new_position"]}}}}}},"/api/v3/admin/categories/{category_id}/products":{get:{summary:"List category products",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Products classified under the category, ordered by their classification position.\n\n**Required scope:** `read_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"category_id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"200":{description:"products found",content:{"application/json":{schema:{type:"object",properties:{data:{type:"array",items:{$ref:"#/components/schemas/Product"}},meta:{$ref:"#/components/schemas/PaginationMeta"}},required:["data","meta"]}}}}}},post:{summary:"Add a product to a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Classifies a product under the category (appended to the end).\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"category_id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"201":{description:"product added",content:{"application/json":{schema:{$ref:"#/components/schemas/Product"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{product_id:{type:"string"}},required:["product_id"]}}}}}},"/api/v3/admin/categories/{category_id}/products/{id}/reposition":{patch:{summary:"Reposition a category product",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Moves a product to a new index among the category's products.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"category_id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Product ID",schema:{type:"string"}}],responses:{"204":{description:"product repositioned"}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{new_position:{type:"integer",description:"0-based index among the category's products"}},required:["new_position"]}}}}}},"/api/v3/admin/imports":{get:{summary:"List imports",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Returns CSV imports queued or completed for the current store.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}}],responses:{"200":{description:"imports found",content:{"application/json":{}}}}},post:{summary:"Create an import",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Queues a CSV import. Upload the file first via `POST /api/v3/admin/direct_uploads`\nand pass the returned `signed_id` as `attachment`. On success the import is in the\n`mapping` state and the response carries the mapping payload: `schema_fields`\n(the canonical columns for the type), `csv_headers`, a `sample_row`, and the\nauto-assigned `mappings`.\n\nAdjust mappings if needed, then call `PATCH /admin/imports/{id}/complete_mapping`\nto start processing. Poll `GET /admin/imports/{id}` while `status` is\n`completed_mapping`/`processing`; terminal statuses are `completed` and `failed`.\n\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}}],responses:{"201":{description:"import created in mapping state",content:{"application/json":{}}},"422":{description:"unknown import type",content:{"application/json":{}}}},requestBody:{content:{"application/json":{schema:{type:"object",required:["type","attachment"],properties:{type:{type:"string",enum:["Spree::Imports::Products","Spree::Imports::Customers","Spree::Imports::ProductTranslations"]},attachment:{type:"string",description:"ActiveStorage signed blob id from POST /api/v3/admin/direct_uploads."},preferred_delimiter:{type:"string",enum:[",",";","|"," "],description:"CSV column separator. Defaults to a comma."},results_url:{type:"string",description:"Absolute URL of your admin imports view; the import-done email links back to it with `?import=<id>` appended. Only honored when it matches one of the store's configured allowed origins."}}}}}}}},"/api/v3/admin/imports/template":{get:{summary:"Download an import template",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Returns a CSV header row for the given import type, including the custom field columns available for the model.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"type",in:"query",required:!0,description:"Registered import type, e.g. Spree::Imports::Products.",schema:{type:"string"}}],responses:{"200":{description:"CSV template",content:{"application/json":{},"text/csv":{schema:{type:"string",format:"binary"}}}}}}},"/api/v3/admin/imports/{id}":{get:{summary:"Show an import",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Returns import status and row counters. The admin dashboard polls this endpoint while `status` is `completed_mapping` or `processing`; `rows_count`, `completed_rows_count` and `failed_rows_count` drive the progress bar. The mapping payload (`csv_headers`, `sample_row`) is only present while `status` is `mapping`.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"import found",content:{"application/json":{}}}}},delete:{summary:"Delete an import",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Removes the import, its rows and the uploaded file. Returns 422 while the import is being processed.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"204":{description:"import deleted"}}}},"/api/v3/admin/imports/{id}/download":{get:{summary:"Download the originally uploaded file",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Streams the CSV exactly as it was uploaded \u2014 the audit trail for what was imported. JWT/API-key protected; SPA clients fetch it with the Authorization header and trigger the browser download via a Blob URL.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"CSV file",content:{"application/json":{},"text/csv":{schema:{type:"string",format:"binary"}}}}}}},"/api/v3/admin/imports/{id}/complete_mapping":{patch:{summary:"Complete mapping and start processing",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Applies the submitted column mappings, then starts row processing. Omit `mappings`\nto accept the auto-assigned ones from the create response. Returns 422 when a\nrequired schema field is left unmapped (`details.missing_required_fields`) or a\nfile column is assigned twice.\n\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"mapping completed, processing queued",content:{"application/json":{}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{mappings:{type:"array",description:"Column assignments to apply before starting. `file_column: null` unmaps a field.",items:{type:"object",required:["schema_field"],properties:{schema_field:{type:"string"},file_column:{type:"string",nullable:!0}}}}}}}}}}},"/api/v3/admin/imports/{id}/retry_failed_rows":{patch:{summary:"Retry failed rows",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Re-processes the rows that failed. The import re-enters `processing`; poll `GET /admin/imports/{id}` until it completes again. Returns 422 when the import is not `completed` or has no failed rows.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"retry queued",content:{"application/json":{}}}}}},"/api/v3/admin/imports/{import_id}/rows":{get:{summary:"List import rows",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Paginated rows of an import \u2014 the failure report. Filter with `q[status_eq]=failed` to list only rows that could not be imported; each row carries the raw CSV `data` and its `validation_errors`.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"import_id",in:"path",required:!0,schema:{type:"string"}},{name:"q[status_eq]",in:"query",required:!1,description:"Filter rows by status: pending, processing, completed, failed.",schema:{type:"string"}}],responses:{"200":{description:"rows found",content:{"application/json":{}}}}}}},components:{schemas:{PaginationMeta:{type:"object",properties:{page:{type:"integer"},limit:{type:"integer"},count:{type:"integer",description:"Total number of records"},pages:{type:"integer",description:"Total number of pages"},from:{type:"integer",description:"Index of first record on this page"},to:{type:"integer",description:"Index of last record on this page"},in:{type:"integer",description:"Number of records on this page"},previous:{type:"integer",nullable:!0,description:"Previous page number"},next:{type:"integer",nullable:!0,description:"Next page number"}},required:["page","limit","count","pages","from","to","in"]},ErrorResponse:{type:"object",properties:{error:{type:"object",properties:{code:{type:"string"},message:{type:"string"},details:{type:"object",description:"Field-specific validation errors",nullable:!0}},required:["code","message"]}},required:["error"]},AuthResponse:{type:"object",properties:{token:{type:"string",description:"JWT access token"},user:{$ref:"#/components/schemas/AdminUser"}},required:["token","user"]},PermissionRule:{type:"object",description:"A single permission rule (CanCanCan rule). Rules are applied in order, last-matching-wins.",properties:{allow:{type:"boolean",description:"true for `can`, false for `cannot`"},actions:{type:"array",items:{type:"string"},description:'Action names, e.g. ["read", "update"] or ["manage"]'},subjects:{type:"array",items:{type:"string"},description:'Subject class names, e.g. ["Spree::Product"] or ["all"]'},has_conditions:{type:"boolean",description:"True if the server-side rule has per-record conditions. The SPA shows the action optimistically and handles 403 from the API."}},required:["allow","actions","subjects","has_conditions"]},MeResponse:{type:"object",description:"Current admin user profile and serialized permissions",properties:{user:{$ref:"#/components/schemas/AdminUser"},permissions:{type:"array",items:{$ref:"#/components/schemas/PermissionRule"}}},required:["user","permissions"]},ImportSchemaField:{type:"object",description:"A canonical column of an import type, including per-store custom field columns",properties:{name:{type:"string",description:"Canonical field name used in mappings"},label:{type:"string",description:"Human-readable label"},required:{type:"boolean",description:"Whether the field must be mapped before processing"}},required:["name","label","required"]},CheckoutRequirement:{type:"object",properties:{step:{type:"string",description:"Checkout step this requirement belongs to"},field:{type:"string",description:"Field that needs to be satisfied"},message:{type:"string",description:"Human-readable requirement message"}},required:["step","field","message"]},CartWarning:{type:"object",description:"A warning about a cart issue (e.g., item removed due to stock change)",properties:{code:{type:"string",description:"Machine-readable warning code"},message:{type:"string",description:"Human-readable warning message"},line_item_id:{type:"string",nullable:!0,description:"Prefixed line item ID (when applicable)"},variant_id:{type:"string",nullable:!0,description:"Prefixed variant ID (when applicable)"}},required:["code","message"]},FulfillmentManifestItem:{type:"object",description:"An item within a fulfillment \u2014 which line item and how many units are in this fulfillment",properties:{item_id:{type:"string",description:"Line item ID"},variant_id:{type:"string",description:"Variant ID"},quantity:{type:"integer",description:"Quantity in this fulfillment"}},required:["item_id","variant_id","quantity"]},AdminUserRoleAssignment:{type:"object",description:"A role assignment for the current store on a staff member",properties:{id:{type:"string",description:"Prefixed role ID"},name:{type:"string",description:"Role name"}},required:["id","name"]},PreferenceField:{type:"object",description:"A single configurable preference on a payment method, promotion rule/action, or calculator. The frontend uses `type` + `default` to render a sensible input.",properties:{key:{type:"string"},type:{type:"string",description:"string | text | password | integer | decimal | boolean | array | hash"},default:{description:"Default value (any JSON type), null when there is no default",nullable:!0}},required:["key","type"]},PromotionActionCalculator:{type:"object",description:"The action's nested calculator (when the action carries one \u2014 null for actions like `free_shipping`)",properties:{type:{type:"string",description:"Wire shorthand for the calculator subclass"},label:{type:"string"},preferences:{type:"object",additionalProperties:!0},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}}},required:["type","label","preferences","preference_schema"]},PromotionActionLineItem:{type:"object",description:"One row in a `create_line_items` action \u2014 the variant added to the order and how many",properties:{variant_id:{type:"string"},quantity:{type:"integer"}},required:["variant_id","quantity"]},Address:{type:"object",properties:{id:{type:"string"},first_name:{type:"string",nullable:!0},last_name:{type:"string",nullable:!0},full_name:{type:"string"},address1:{type:"string",nullable:!0},address2:{type:"string",nullable:!0},postal_code:{type:"string",nullable:!0},city:{type:"string",nullable:!0},phone:{type:"string",nullable:!0},company:{type:"string",nullable:!0},country_name:{type:"string"},country_iso:{type:"string"},state_text:{type:"string",nullable:!0},state_abbr:{type:"string",nullable:!0},quick_checkout:{type:"boolean"},is_default_billing:{type:"boolean"},is_default_shipping:{type:"boolean"},state_name:{type:"string",nullable:!0},label:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},customer_id:{type:"string",nullable:!0}},required:["id","first_name","last_name","full_name","address1","address2","postal_code","city","phone","company","country_name","country_iso","state_text","state_abbr","quick_checkout","is_default_billing","is_default_shipping","state_name","label","metadata","created_at","updated_at","customer_id"],"x-typelizer":!0},Adjustment:{type:"object",properties:{id:{type:"string"},label:{type:"string"},display_amount:{type:"string"},included:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},amount:{type:"string"},order_id:{type:"string",nullable:!0}},required:["id","label","display_amount","included","created_at","updated_at","amount","order_id"],"x-typelizer":!0},AdminUser:{type:"object",properties:{id:{type:"string"},email:{type:"string"},first_name:{type:"string",nullable:!0},last_name:{type:"string",nullable:!0},full_name:{type:"string",nullable:!0},selected_locale:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},avatar_url:{type:"string",nullable:!0},roles:{type:"array",items:{$ref:"#/components/schemas/AdminUserRoleAssignment"}}},required:["id","email","first_name","last_name","full_name","selected_locale","created_at","updated_at","avatar_url","roles"],"x-typelizer":!0},AllowedOrigin:{type:"object",properties:{id:{type:"string"},origin:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","origin","created_at","updated_at"],"x-typelizer":!0},ApiKey:{type:"object",properties:{id:{type:"string"},name:{type:"string"},key_type:{type:"string"},token_prefix:{type:"string",nullable:!0},scopes:{type:"array",items:{type:"string"}},created_at:{type:"string"},updated_at:{type:"string"},revoked_at:{type:"string",nullable:!0},last_used_at:{type:"string",nullable:!0},plaintext_token:{type:"string",nullable:!0},created_by_email:{type:"string",nullable:!0}},required:["id","name","key_type","token_prefix","scopes","created_at","updated_at","revoked_at","last_used_at","plaintext_token","created_by_email"],"x-typelizer":!0},Category:{type:"object",properties:{id:{type:"string"},name:{type:"string"},permalink:{type:"string"},position:{type:"number"},depth:{type:"number"},meta_title:{type:"string",nullable:!0},meta_description:{type:"string",nullable:!0},meta_keywords:{type:"string",nullable:!0},children_count:{type:"number"},parent_id:{type:"string",nullable:!0},description:{type:"string"},description_html:{type:"string"},image_url:{type:"string",nullable:!0},square_image_url:{type:"string",nullable:!0},is_root:{type:"boolean"},is_child:{type:"boolean"},is_leaf:{type:"boolean"},parent:{$ref:"#/components/schemas/Category"},children:{type:"array",items:{$ref:"#/components/schemas/Category"}},ancestors:{type:"array",items:{$ref:"#/components/schemas/Category"}},custom_fields:{type:"array",items:{$ref:"#/components/schemas/CustomField"}},translations:{type:"object"},metadata:{type:"object"},pretty_name:{type:"string"},lft:{type:"number"},rgt:{type:"number"},products_count:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","permalink","position","depth","meta_title","meta_description","meta_keywords","children_count","parent_id","description","description_html","image_url","square_image_url","is_root","is_child","is_leaf","metadata","pretty_name","lft","rgt","products_count","created_at","updated_at"],"x-typelizer":!0},Channel:{type:"object",properties:{id:{type:"string"},name:{type:"string"},code:{type:"string"},active:{type:"boolean"},default:{type:"boolean"},preferred_order_routing_strategy:{type:"string",nullable:!0},preferred_storefront_access:{type:"string",nullable:!0},preferred_guest_checkout:{type:"boolean",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","code","active","default","preferred_order_routing_strategy","preferred_storefront_access","preferred_guest_checkout","created_at","updated_at"],"x-typelizer":!0},Country:{type:"object",properties:{iso:{type:"string"},iso3:{type:"string"},name:{type:"string"},states_required:{type:"boolean"},zipcode_required:{type:"boolean"},states:{type:"array",items:{$ref:"#/components/schemas/State"}},market:{allOf:[{$ref:"#/components/schemas/Market"}],nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["iso","iso3","name","states_required","zipcode_required","created_at","updated_at"],"x-typelizer":!0},CouponCode:{type:"object",properties:{id:{type:"string"},code:{type:"string"},state:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},promotion_id:{type:"string"},order_id:{type:"string",nullable:!0}},required:["id","code","state","created_at","updated_at","promotion_id","order_id"],"x-typelizer":!0},CreditCard:{type:"object",properties:{id:{type:"string"},brand:{type:"string"},last4:{type:"string"},month:{type:"number"},year:{type:"number"},name:{type:"string",nullable:!0},default:{type:"boolean"},gateway_payment_profile_id:{type:"string",nullable:!0},customer_id:{type:"string",nullable:!0},payment_method_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","brand","last4","month","year","name","default","gateway_payment_profile_id","customer_id","payment_method_id","metadata","created_at","updated_at"],"x-typelizer":!0},CustomFieldDefinition:{type:"object",properties:{id:{type:"string"},namespace:{type:"string"},key:{type:"string"},label:{type:"string"},field_type:{type:"string",enum:["short_text","long_text","rich_text","number","boolean","json"]},resource_type:{type:"string"},storefront_visible:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","namespace","key","label","field_type","resource_type","storefront_visible","created_at","updated_at"],"x-typelizer":!0},CustomField:{type:"object",properties:{id:{type:"string"},label:{type:"string"},type:{type:"string",deprecated:!0},field_type:{type:"string",enum:["short_text","long_text","rich_text","number","boolean","json"]},key:{type:"string"},value:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},storefront_visible:{type:"boolean"},custom_field_definition_id:{type:"string"}},required:["id","label","type","field_type","key","value","created_at","updated_at","storefront_visible","custom_field_definition_id"],"x-typelizer":!0},CustomerGroup:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},customers_count:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"},customers:{type:"array",items:{$ref:"#/components/schemas/Customer"}}},required:["id","name","description","customers_count","created_at","updated_at"],"x-typelizer":!0},Customer:{type:"object",properties:{id:{type:"string"},email:{type:"string"},first_name:{type:"string",nullable:!0},last_name:{type:"string",nullable:!0},phone:{type:"string",nullable:!0},accepts_email_marketing:{type:"boolean"},full_name:{type:"string"},available_store_credit_total:{type:"string"},display_available_store_credit_total:{type:"string"},addresses:{type:"array",items:{$ref:"#/components/schemas/Address"}},default_billing_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},default_shipping_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},login:{type:"string",nullable:!0},metadata:{type:"object"},last_sign_in_at:{type:"string",nullable:!0},current_sign_in_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},sign_in_count:{type:"number"},failed_attempts:{type:"number"},last_sign_in_ip:{type:"string",nullable:!0},current_sign_in_ip:{type:"string",nullable:!0},tags:{type:"array",items:{type:"string"}},internal_note_html:{type:"string",nullable:!0},default_billing_address_id:{type:"string",nullable:!0},default_shipping_address_id:{type:"string",nullable:!0},orders_count:{type:"number"},total_spent:{type:"string"},display_total_spent:{type:"string"},last_order_completed_at:{type:"string",nullable:!0},orders:{type:"array",items:{$ref:"#/components/schemas/Order"}},store_credits:{type:"array",items:{$ref:"#/components/schemas/StoreCredit"}},customer_group_ids:{type:"array",items:{type:"string"}},customer_groups:{type:"array",items:{$ref:"#/components/schemas/CustomerGroup"}}},required:["id","email","first_name","last_name","phone","accepts_email_marketing","full_name","available_store_credit_total","display_available_store_credit_total","login","metadata","last_sign_in_at","current_sign_in_at","created_at","updated_at","sign_in_count","failed_attempts","last_sign_in_ip","current_sign_in_ip","tags","internal_note_html","default_billing_address_id","default_shipping_address_id","orders_count","total_spent","display_total_spent","last_order_completed_at","customer_group_ids"],"x-typelizer":!0},DeliveryMethod:{type:"object",properties:{id:{type:"string"},name:{type:"string"},code:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","code","created_at","updated_at"],"x-typelizer":!0},DeliveryRate:{type:"object",properties:{id:{type:"string"},delivery_method_id:{type:"string"},name:{type:"string"},selected:{type:"boolean"},cost:{type:"string"},total:{type:"string"},additional_tax_total:{type:"string"},included_tax_total:{type:"string"},tax_total:{type:"string"},display_cost:{type:"string"},display_total:{type:"string"},display_additional_tax_total:{type:"string"},display_included_tax_total:{type:"string"},display_tax_total:{type:"string"},delivery_method:{$ref:"#/components/schemas/DeliveryMethod"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","delivery_method_id","name","selected","cost","total","additional_tax_total","included_tax_total","tax_total","display_cost","display_total","display_additional_tax_total","display_included_tax_total","display_tax_total","created_at","updated_at"],"x-typelizer":!0},DigitalLink:{type:"object",properties:{id:{type:"string"},access_counter:{type:"number"},filename:{type:"string"},content_type:{type:"string"},download_url:{type:"string"},authorizable:{type:"boolean"},expired:{type:"boolean"},access_limit_exceeded:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","access_counter","filename","content_type","download_url","authorizable","expired","access_limit_exceeded","created_at","updated_at"],"x-typelizer":!0},Discount:{type:"object",properties:{id:{type:"string"},promotion_id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},code:{type:"string",nullable:!0},amount:{type:"string"},display_amount:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","promotion_id","name","description","code","amount","display_amount","created_at","updated_at"],"x-typelizer":!0},Export:{type:"object",properties:{id:{type:"string"},number:{type:"string"},type:{type:"string",nullable:!0},format:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},user_id:{type:"string",nullable:!0},done:{type:"boolean"},filename:{type:"string",nullable:!0},byte_size:{type:"number",nullable:!0},download_url:{type:"string",nullable:!0}},required:["id","number","type","format","created_at","updated_at","user_id","done","filename","byte_size","download_url"],"x-typelizer":!0},Fulfillment:{type:"object",properties:{id:{type:"string"},number:{type:"string"},tracking:{type:"string",nullable:!0},tracking_url:{type:"string",nullable:!0},cost:{type:"string"},display_cost:{type:"string"},total:{type:"string"},display_total:{type:"string"},discount_total:{type:"string"},display_discount_total:{type:"string"},additional_tax_total:{type:"string"},display_additional_tax_total:{type:"string"},included_tax_total:{type:"string"},display_included_tax_total:{type:"string"},tax_total:{type:"string"},display_tax_total:{type:"string"},status:{type:"string"},fulfillment_type:{type:"string"},fulfilled_at:{type:"string",nullable:!0},items:{type:"array",items:{$ref:"#/components/schemas/FulfillmentManifestItem"}},delivery_method:{$ref:"#/components/schemas/DeliveryMethod"},stock_location:{$ref:"#/components/schemas/StockLocation"},delivery_rates:{type:"array",items:{$ref:"#/components/schemas/DeliveryRate"}},metadata:{type:"object"},adjustment_total:{type:"string"},pre_tax_amount:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},order_id:{type:"string",nullable:!0},stock_location_id:{type:"string",nullable:!0},order:{$ref:"#/components/schemas/Order"},adjustments:{type:"array",items:{$ref:"#/components/schemas/Adjustment"}}},required:["id","number","tracking","tracking_url","cost","display_cost","total","display_total","discount_total","display_discount_total","additional_tax_total","display_additional_tax_total","included_tax_total","display_included_tax_total","tax_total","display_tax_total","status","fulfillment_type","fulfilled_at","items","metadata","adjustment_total","pre_tax_amount","created_at","updated_at","order_id","stock_location_id"],"x-typelizer":!0},GiftCardBatch:{type:"object",properties:{id:{type:"string"},codes_count:{type:"number"},currency:{type:"string",nullable:!0},prefix:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},amount:{type:"string",nullable:!0},expires_at:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0}},required:["id","codes_count","currency","prefix","created_at","updated_at","amount","expires_at","created_by_id"],"x-typelizer":!0},GiftCard:{type:"object",properties:{id:{type:"string"},code:{type:"string"},status:{type:"string"},currency:{type:"string"},amount:{type:"string"},amount_used:{type:"string"},amount_authorized:{type:"string"},amount_remaining:{type:"string"},display_amount:{type:"string"},display_amount_used:{type:"string"},display_amount_remaining:{type:"string"},expires_at:{type:"string",nullable:!0},redeemed_at:{type:"string",nullable:!0},expired:{type:"boolean"},active:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},customer_id:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0},customer:{$ref:"#/components/schemas/Customer"},created_by:{$ref:"#/components/schemas/AdminUser"},gift_card_batch:{$ref:"#/components/schemas/GiftCardBatch"},orders:{type:"array",items:{$ref:"#/components/schemas/Order"}}},required:["id","code","status","currency","amount","amount_used","amount_authorized","amount_remaining","display_amount","display_amount_used","display_amount_remaining","expires_at","redeemed_at","expired","active","created_at","updated_at","customer_id","created_by_id"],"x-typelizer":!0},ImportMapping:{type:"object",properties:{id:{type:"string"},schema_field:{type:"string"},file_column:{type:"string",nullable:!0},required:{type:"boolean"}},required:["id","schema_field","file_column","required"],"x-typelizer":!0},ImportRow:{type:"object",properties:{id:{type:"string"},row_number:{type:"number"},status:{type:"string"},validation_errors:{type:"string",nullable:!0},item_type:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},import_id:{type:"string",nullable:!0},item_id:{type:"string",nullable:!0},data:{type:"object"}},required:["id","row_number","status","validation_errors","item_type","created_at","updated_at","import_id","item_id","data"],"x-typelizer":!0},Import:{type:"object",properties:{id:{type:"string"},number:{type:"string"},type:{type:"string",nullable:!0},rows_count:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"},status:{type:"string"},owner_type:{type:"string",nullable:!0},owner_id:{type:"string",nullable:!0},user_id:{type:"string",nullable:!0},processing_errors:{type:"string",nullable:!0},preferred_delimiter:{type:"string"},original_filename:{type:"string",nullable:!0},original_byte_size:{type:"number",nullable:!0},original_file_url:{type:"string",nullable:!0},completed_rows_count:{type:"number"},failed_rows_count:{type:"number"},schema_fields:{type:"array",items:{$ref:"#/components/schemas/ImportSchemaField"}},csv_headers:{type:"array",items:{type:"string"}},sample_row:{type:"object"},mappings:{type:"array",items:{$ref:"#/components/schemas/ImportMapping"}}},required:["id","number","type","rows_count","created_at","updated_at","status","owner_type","owner_id","user_id","processing_errors","preferred_delimiter","original_filename","original_byte_size","original_file_url","completed_rows_count","failed_rows_count","schema_fields","csv_headers","sample_row","mappings"],"x-typelizer":!0},Invitation:{type:"object",properties:{id:{type:"string"},email:{type:"string"},status:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},expires_at:{type:"string"},role_id:{type:"string"},role_name:{type:"string"},inviter_email:{type:"string"},acceptance_url:{type:"string"},invitee_exists:{type:"boolean"},store:{type:"object"}},required:["id","email","status","created_at","updated_at","expires_at","role_id","role_name","inviter_email","acceptance_url","invitee_exists","store"],"x-typelizer":!0},LineItem:{type:"object",properties:{id:{type:"string"},variant_id:{type:"string"},preorder:{type:"boolean"},preorder_ships_at:{type:"string",nullable:!0},quantity:{type:"number"},currency:{type:"string"},name:{type:"string"},slug:{type:"string"},options_text:{type:"string"},price:{type:"string"},display_price:{type:"string"},total:{type:"string"},display_total:{type:"string"},adjustment_total:{type:"string"},display_adjustment_total:{type:"string"},additional_tax_total:{type:"string"},display_additional_tax_total:{type:"string"},included_tax_total:{type:"string"},display_included_tax_total:{type:"string"},discount_total:{type:"string"},display_discount_total:{type:"string"},pre_tax_amount:{type:"string"},display_pre_tax_amount:{type:"string"},discounted_amount:{type:"string"},display_discounted_amount:{type:"string"},display_compare_at_amount:{type:"string",nullable:!0},compare_at_amount:{type:"string",nullable:!0},thumbnail_url:{type:"string",nullable:!0},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}},digital_links:{type:"array",items:{$ref:"#/components/schemas/DigitalLink"}},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},cost_price:{type:"string",nullable:!0},tax_category_id:{type:"string",nullable:!0},variant:{$ref:"#/components/schemas/Variant"},tax_category:{$ref:"#/components/schemas/TaxCategory"},adjustments:{type:"array",items:{$ref:"#/components/schemas/Adjustment"}}},required:["id","variant_id","preorder","preorder_ships_at","quantity","currency","name","slug","options_text","price","display_price","total","display_total","adjustment_total","display_adjustment_total","additional_tax_total","display_additional_tax_total","included_tax_total","display_included_tax_total","discount_total","display_discount_total","pre_tax_amount","display_pre_tax_amount","discounted_amount","display_discounted_amount","display_compare_at_amount","compare_at_amount","thumbnail_url","option_values","digital_links","metadata","created_at","updated_at","cost_price","tax_category_id"],"x-typelizer":!0},Market:{type:"object",properties:{id:{type:"string"},name:{type:"string"},currency:{type:"string"},default_locale:{type:"string"},tax_inclusive:{type:"boolean"},default:{type:"boolean"},country_isos:{type:"array",items:{type:"string"}},supported_locales:{type:"array",items:{type:"string"}},countries:{type:"array",items:{$ref:"#/components/schemas/Country"}},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","currency","default_locale","tax_inclusive","default","country_isos","supported_locales","created_at","updated_at"],"x-typelizer":!0},Media:{type:"object",properties:{id:{type:"string"},product_id:{type:"string",nullable:!0},variant_ids:{type:"array",items:{type:"string"}},position:{type:"number"},alt:{type:"string",nullable:!0},media_type:{type:"string"},focal_point_x:{type:"number",nullable:!0},focal_point_y:{type:"number",nullable:!0},external_video_url:{type:"string",nullable:!0},original_url:{type:"string",nullable:!0},mini_url:{type:"string",nullable:!0},small_url:{type:"string",nullable:!0},medium_url:{type:"string",nullable:!0},large_url:{type:"string",nullable:!0},xlarge_url:{type:"string",nullable:!0},og_image_url:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},viewable_id:{type:"string"},download_url:{type:"string",nullable:!0},metadata:{type:"object"},viewable_type:{type:"string"}},required:["id","product_id","variant_ids","position","alt","media_type","focal_point_x","focal_point_y","external_video_url","original_url","mini_url","small_url","medium_url","large_url","xlarge_url","og_image_url","created_at","updated_at","viewable_id","download_url","metadata","viewable_type"],"x-typelizer":!0},OptionType:{type:"object",properties:{id:{type:"string"},name:{type:"string"},label:{type:"string"},position:{type:"number"},kind:{type:"string"},translations:{type:"object"},metadata:{type:"object"},filterable:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}}},required:["id","name","label","position","kind","metadata","filterable","created_at","updated_at"],"x-typelizer":!0},OptionValue:{type:"object",properties:{id:{type:"string"},option_type_id:{type:"string"},name:{type:"string"},label:{type:"string"},position:{type:"number"},color_code:{type:"string",nullable:!0},option_type_name:{type:"string"},option_type_label:{type:"string"},image_url:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},option_type:{$ref:"#/components/schemas/OptionType"}},required:["id","option_type_id","name","label","position","color_code","option_type_name","option_type_label","image_url","metadata","created_at","updated_at"],"x-typelizer":!0},Order:{type:"object",properties:{id:{type:"string"},market_id:{type:"string",nullable:!0},channel_id:{type:"string",nullable:!0},number:{type:"string"},email:{type:"string"},customer_note:{type:"string",nullable:!0},currency:{type:"string"},locale:{type:"string",nullable:!0},total_quantity:{type:"number"},fulfillment_status:{type:"string",nullable:!0},payment_status:{type:"string",nullable:!0},completed_at:{type:"string",nullable:!0},item_total:{type:"string"},display_item_total:{type:"string"},adjustment_total:{type:"string"},display_adjustment_total:{type:"string"},discount_total:{type:"string"},display_discount_total:{type:"string"},tax_total:{type:"string"},display_tax_total:{type:"string"},included_tax_total:{type:"string"},display_included_tax_total:{type:"string"},additional_tax_total:{type:"string"},display_additional_tax_total:{type:"string"},total:{type:"string"},display_total:{type:"string"},gift_card_total:{type:"string"},display_gift_card_total:{type:"string"},amount_due:{type:"string"},display_amount_due:{type:"string"},delivery_total:{type:"string"},display_delivery_total:{type:"string"},store_credit_total:{type:"string"},display_store_credit_total:{type:"string"},covered_by_store_credit:{type:"boolean"},discounts:{type:"array",items:{$ref:"#/components/schemas/Discount"}},items:{type:"array",items:{$ref:"#/components/schemas/LineItem"}},fulfillments:{type:"array",items:{$ref:"#/components/schemas/Fulfillment"}},payments:{type:"array",items:{$ref:"#/components/schemas/Payment"}},billing_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},shipping_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},gift_card:{allOf:[{$ref:"#/components/schemas/GiftCard"}],nullable:!0},market:{allOf:[{$ref:"#/components/schemas/Market"}],nullable:!0},status:{type:"string"},last_ip_address:{type:"string",nullable:!0},considered_risky:{type:"boolean"},confirmation_delivered:{type:"boolean"},store_owner_notification_delivered:{type:"boolean"},payment_total:{type:"string"},display_payment_total:{type:"string"},metadata:{type:"object"},canceled_at:{type:"string",nullable:!0},approved_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},preferred_stock_location_id:{type:"string",nullable:!0},tags:{type:"array",items:{type:"string"}},internal_note:{type:"string",nullable:!0},approver_id:{type:"string",nullable:!0},canceler_id:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0},customer_id:{type:"string",nullable:!0},channel:{$ref:"#/components/schemas/Channel"},preferred_stock_location:{$ref:"#/components/schemas/StockLocation"},payment_methods:{type:"array",items:{$ref:"#/components/schemas/PaymentMethod"}},customer:{$ref:"#/components/schemas/Customer"},approver:{$ref:"#/components/schemas/Customer"},canceler:{$ref:"#/components/schemas/Customer"},created_by:{$ref:"#/components/schemas/Customer"},adjustments:{type:"array",items:{$ref:"#/components/schemas/Adjustment"}},return_authorizations:{type:"array",items:{$ref:"#/components/schemas/ReturnAuthorization"}},reimbursements:{type:"array",items:{$ref:"#/components/schemas/Reimbursement"}}},required:["id","market_id","channel_id","number","email","customer_note","currency","locale","total_quantity","fulfillment_status","payment_status","completed_at","item_total","display_item_total","adjustment_total","display_adjustment_total","discount_total","display_discount_total","tax_total","display_tax_total","included_tax_total","display_included_tax_total","additional_tax_total","display_additional_tax_total","total","display_total","gift_card_total","display_gift_card_total","amount_due","display_amount_due","delivery_total","display_delivery_total","store_credit_total","display_store_credit_total","covered_by_store_credit","gift_card","market","status","last_ip_address","considered_risky","confirmation_delivered","store_owner_notification_delivered","payment_total","display_payment_total","metadata","canceled_at","approved_at","created_at","updated_at","preferred_stock_location_id","tags","internal_note","approver_id","canceler_id","created_by_id","customer_id"],"x-typelizer":!0},PaymentMethod:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},type:{type:"string"},session_required:{type:"boolean"},source_required:{type:"boolean"},metadata:{type:"object"},active:{type:"boolean"},auto_capture:{type:"boolean",nullable:!0},storefront_visible:{type:"boolean"},position:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"},preferences:{type:"object"},preference_schema:{type:"object"}},required:["id","name","description","type","session_required","source_required","metadata","active","auto_capture","storefront_visible","position","created_at","updated_at","preferences","preference_schema"],"x-typelizer":!0},Payment:{type:"object",properties:{id:{type:"string"},payment_method_id:{type:"string"},response_code:{type:"string",nullable:!0},number:{type:"string"},amount:{type:"string"},display_amount:{type:"string"},status:{type:"string"},source_type:{type:"string",nullable:!0,enum:["credit_card","store_credit","payment_source"]},source_id:{type:"string",nullable:!0},source:{anyOf:[{$ref:"#/components/schemas/CreditCard"},{$ref:"#/components/schemas/StoreCredit"},{$ref:"#/components/schemas/PaymentSource"}],nullable:!0},payment_method:{$ref:"#/components/schemas/PaymentMethod"},metadata:{type:"object"},avs_response:{type:"string",nullable:!0},cvv_response_code:{type:"string",nullable:!0},cvv_response_message:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},captured_amount:{type:"string"},order_id:{type:"string",nullable:!0},order:{$ref:"#/components/schemas/Order"},refunds:{type:"array",items:{$ref:"#/components/schemas/Refund"}}},required:["id","payment_method_id","response_code","number","amount","display_amount","status","source_type","source_id","source","metadata","avs_response","cvv_response_code","cvv_response_message","created_at","updated_at","captured_amount","order_id"],"x-typelizer":!0},PaymentSource:{type:"object",properties:{id:{type:"string"},gateway_payment_profile_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","gateway_payment_profile_id","metadata","created_at","updated_at"],"x-typelizer":!0},PriceHistory:{type:"object",properties:{id:{type:"string"},amount:{type:"string"},amount_in_cents:{type:"number"},currency:{type:"string"},display_amount:{type:"string"},recorded_at:{type:"string"},variant_id:{type:"string"},price_id:{type:"string"},compare_at_amount:{type:"string",nullable:!0},created_at:{type:"string"}},required:["id","amount","amount_in_cents","currency","display_amount","recorded_at","variant_id","price_id","compare_at_amount","created_at"],"x-typelizer":!0},PriceList:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},status:{type:"string"},position:{type:"number"},match_policy:{type:"string"},starts_at:{type:"string",nullable:!0},ends_at:{type:"string",nullable:!0},deleted_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},currently_active:{type:"boolean"},products_count:{type:"number"},prices_count:{type:"number"},product_ids:{type:"array",items:{type:"string"}},price_rules:{type:"array",items:{$ref:"#/components/schemas/PriceRule"}}},required:["id","name","description","status","position","match_policy","starts_at","ends_at","deleted_at","created_at","updated_at","currently_active","products_count","prices_count","product_ids"],"x-typelizer":!0},PriceRule:{type:"object",properties:{id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},type:{type:"string"},price_list_id:{type:"string"},preferences:{type:"object"},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}},label:{type:"string"},description:{type:"string",nullable:!0},markets:{type:"array",items:{$ref:"#/components/schemas/Market"}},customer_groups:{type:"array",items:{$ref:"#/components/schemas/CustomerGroup"}},channels:{type:"array",items:{$ref:"#/components/schemas/Channel"}},customers:{type:"array",items:{$ref:"#/components/schemas/Customer"}}},required:["id","created_at","updated_at","type","price_list_id","preferences","preference_schema","label","description"],"x-typelizer":!0},Price:{type:"object",properties:{id:{type:"string"},amount:{type:"string",nullable:!0},amount_in_cents:{type:"number",nullable:!0},compare_at_amount:{type:"string",nullable:!0},compare_at_amount_in_cents:{type:"number",nullable:!0},currency:{type:"string",nullable:!0},display_amount:{type:"string",nullable:!0},display_compare_at_amount:{type:"string",nullable:!0},price_list_id:{type:"string",nullable:!0},variant_id:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},variant:{$ref:"#/components/schemas/Variant"}},required:["id","amount","amount_in_cents","compare_at_amount","compare_at_amount_in_cents","currency","display_amount","display_compare_at_amount","price_list_id","variant_id","created_at","updated_at"],"x-typelizer":!0},ProductPublication:{type:"object",properties:{id:{type:"string"},published_at:{type:"string",nullable:!0},unpublished_at:{type:"string",nullable:!0},product_id:{type:"string"},channel_id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","published_at","unpublished_at","product_id","channel_id","created_at","updated_at"],"x-typelizer":!0},Product:{type:"object",properties:{id:{type:"string"},name:{type:"string"},slug:{type:"string"},meta_title:{type:"string",nullable:!0},meta_description:{type:"string",nullable:!0},meta_keywords:{type:"string",nullable:!0},variant_count:{type:"number"},available_on:{type:"string",nullable:!0},preorder_ships_at:{type:"string",nullable:!0},purchasable:{type:"boolean"},preorder:{type:"boolean"},in_stock:{type:"boolean"},backorderable:{type:"boolean"},available:{type:"boolean"},description:{type:"string",nullable:!0},description_html:{type:"string",nullable:!0},default_variant_id:{type:"string"},thumbnail_url:{type:"string",nullable:!0},tags:{type:"array",items:{type:"string"}},price:{allOf:[{$ref:"#/components/schemas/Price"}],nullable:!0},original_price:{allOf:[{$ref:"#/components/schemas/Price"}],nullable:!0},primary_media:{$ref:"#/components/schemas/Media"},media:{type:"array",items:{$ref:"#/components/schemas/Media"}},variants:{type:"array",items:{$ref:"#/components/schemas/Variant"}},default_variant:{$ref:"#/components/schemas/Variant"},option_types:{type:"array",items:{$ref:"#/components/schemas/OptionType"}},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}},categories:{type:"array",items:{$ref:"#/components/schemas/Category"}},custom_fields:{type:"array",items:{$ref:"#/components/schemas/CustomField"}},prior_price:{allOf:[{$ref:"#/components/schemas/PriceHistory"}],nullable:!0},translations:{type:"object"},status:{type:"string"},metadata:{type:"object"},deleted_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},tax_category_id:{type:"string",nullable:!0},product_publications:{type:"array",items:{$ref:"#/components/schemas/ProductPublication"}},channels:{type:"array",items:{$ref:"#/components/schemas/Channel"}}},required:["id","name","slug","meta_title","meta_description","meta_keywords","variant_count","available_on","preorder_ships_at","purchasable","preorder","in_stock","backorderable","available","description","description_html","default_variant_id","thumbnail_url","tags","price","original_price","status","metadata","deleted_at","created_at","updated_at","tax_category_id"],"x-typelizer":!0},PromotionAction:{type:"object",properties:{id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},type:{type:"string"},promotion_id:{type:"string"},preferences:{type:"object"},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}},label:{type:"string"},calculator:{allOf:[{$ref:"#/components/schemas/PromotionActionCalculator"}],nullable:!0},line_items:{type:"array",items:{$ref:"#/components/schemas/PromotionActionLineItem"},nullable:!0}},required:["id","created_at","updated_at","type","promotion_id","preferences","preference_schema","label","calculator","line_items"],"x-typelizer":!0},PromotionRule:{type:"object",properties:{id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},type:{type:"string"},promotion_id:{type:"string"},preferences:{type:"object"},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}},label:{type:"string"},product_ids:{type:"array",items:{type:"string"},nullable:!0},category_ids:{type:"array",items:{type:"string"},nullable:!0},customer_ids:{type:"array",items:{type:"string"},nullable:!0},products:{type:"array",items:{$ref:"#/components/schemas/Product"}},categories:{type:"array",items:{$ref:"#/components/schemas/Category"}},customers:{type:"array",items:{$ref:"#/components/schemas/Customer"}},customer_groups:{type:"array",items:{$ref:"#/components/schemas/CustomerGroup"}},countries:{type:"array",items:{$ref:"#/components/schemas/Country"}},channels:{type:"array",items:{$ref:"#/components/schemas/Channel"}},markets:{type:"array",items:{$ref:"#/components/schemas/Market"}}},required:["id","created_at","updated_at","type","promotion_id","preferences","preference_schema","label","product_ids","category_ids","customer_ids"],"x-typelizer":!0},Promotion:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},code:{type:"string",nullable:!0},starts_at:{type:"string",nullable:!0},expires_at:{type:"string",nullable:!0},usage_limit:{type:"number",nullable:!0},match_policy:{type:"string",enum:["all","any"]},path:{type:"string",nullable:!0},kind:{type:"string",enum:["coupon_code","automatic"]},multi_codes:{type:"boolean"},number_of_codes:{type:"number",nullable:!0},code_prefix:{type:"string",nullable:!0},promotion_category_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},action_ids:{type:"array",items:{type:"string"}},rule_ids:{type:"array",items:{type:"string"}}},required:["id","name","description","code","starts_at","expires_at","usage_limit","match_policy","path","kind","multi_codes","number_of_codes","code_prefix","promotion_category_id","metadata","created_at","updated_at","action_ids","rule_ids"],"x-typelizer":!0},Refund:{type:"object",properties:{id:{type:"string"},transaction_id:{type:"string",nullable:!0},amount:{type:"string",nullable:!0},payment_id:{type:"string",nullable:!0},refund_reason_id:{type:"string",nullable:!0},reimbursement_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},payment:{$ref:"#/components/schemas/Payment"},reimbursement:{$ref:"#/components/schemas/Reimbursement"}},required:["id","transaction_id","amount","payment_id","refund_reason_id","reimbursement_id","metadata","created_at","updated_at"],"x-typelizer":!0},Reimbursement:{type:"object",properties:{id:{type:"string"},number:{type:"string"},reimbursement_status:{type:"string",nullable:!0},total:{type:"string",nullable:!0},order_id:{type:"string",nullable:!0},customer_return_id:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},order:{$ref:"#/components/schemas/Order"}},required:["id","number","reimbursement_status","total","order_id","customer_return_id","created_at","updated_at"],"x-typelizer":!0},ReturnAuthorization:{type:"object",properties:{id:{type:"string"},number:{type:"string"},status:{type:"string"},order_id:{type:"string",nullable:!0},stock_location_id:{type:"string",nullable:!0},return_authorization_reason_id:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},order:{$ref:"#/components/schemas/Order"},stock_location:{$ref:"#/components/schemas/StockLocation"}},required:["id","number","status","order_id","stock_location_id","return_authorization_reason_id","created_at","updated_at"],"x-typelizer":!0},Role:{type:"object",properties:{id:{type:"string"},name:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","created_at","updated_at"],"x-typelizer":!0},SetupTask:{type:"object",properties:{name:{type:"string"},done:{type:"boolean"}},required:["name","done"],"x-typelizer":!0},State:{type:"object",properties:{abbr:{type:"string"},name:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["abbr","name","created_at","updated_at"],"x-typelizer":!0},StockItem:{type:"object",properties:{id:{type:"string"},count_on_hand:{type:"number"},backorderable:{type:"boolean"},stock_location_id:{type:"string",nullable:!0},variant_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},allocated_count:{type:"number"},available_count:{type:"number"},stock_location:{$ref:"#/components/schemas/StockLocation"},variant:{$ref:"#/components/schemas/Variant"}},required:["id","count_on_hand","backorderable","stock_location_id","variant_id","metadata","created_at","updated_at","allocated_count","available_count"],"x-typelizer":!0},StockLocation:{type:"object",properties:{id:{type:"string"},state_abbr:{type:"string",nullable:!0},name:{type:"string"},address1:{type:"string",nullable:!0},city:{type:"string",nullable:!0},zipcode:{type:"string",nullable:!0},country_iso:{type:"string",nullable:!0},country_name:{type:"string",nullable:!0},state_text:{type:"string",nullable:!0},admin_name:{type:"string",nullable:!0},address2:{type:"string",nullable:!0},state_name:{type:"string",nullable:!0},phone:{type:"string",nullable:!0},company:{type:"string",nullable:!0},active:{type:"boolean"},default:{type:"boolean"},backorderable_default:{type:"boolean"},propagate_all_variants:{type:"boolean"},kind:{type:"string"},pickup_enabled:{type:"boolean"},pickup_stock_policy:{type:"string"},pickup_ready_in_minutes:{type:"number",nullable:!0},pickup_instructions:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","state_abbr","name","address1","city","zipcode","country_iso","country_name","state_text","admin_name","address2","state_name","phone","company","active","default","backorderable_default","propagate_all_variants","kind","pickup_enabled","pickup_stock_policy","pickup_ready_in_minutes","pickup_instructions","created_at","updated_at"],"x-typelizer":!0},StockReservation:{type:"object",properties:{id:{type:"string"},stock_item_id:{type:"string"},line_item_id:{type:"string"},order_id:{type:"string"},variant_id:{type:"string",nullable:!0},stock_location_id:{type:"string",nullable:!0},quantity:{type:"number"},expires_at:{type:"string"},active:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","stock_item_id","line_item_id","order_id","variant_id","stock_location_id","quantity","expires_at","active","created_at","updated_at"],"x-typelizer":!0},StockTransfer:{type:"object",properties:{id:{type:"string"},number:{type:"string"},reference:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},source_location_id:{type:"string",nullable:!0},destination_location_id:{type:"string",nullable:!0},source_location:{$ref:"#/components/schemas/StockLocation"},destination_location:{$ref:"#/components/schemas/StockLocation"}},required:["id","number","reference","metadata","created_at","updated_at","source_location_id","destination_location_id"],"x-typelizer":!0},StoreCreditCategory:{type:"object",properties:{id:{type:"string"},name:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},non_expiring:{type:"boolean"}},required:["id","name","created_at","updated_at","non_expiring"],"x-typelizer":!0},StoreCredit:{type:"object",properties:{id:{type:"string"},amount:{type:"string"},amount_used:{type:"string"},amount_remaining:{type:"string"},display_amount:{type:"string"},display_amount_used:{type:"string"},display_amount_remaining:{type:"string"},currency:{type:"string"},memo:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},customer_id:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0},category_id:{type:"string",nullable:!0},category_name:{type:"string",nullable:!0}},required:["id","amount","amount_used","amount_remaining","display_amount","display_amount_used","display_amount_remaining","currency","memo","metadata","created_at","updated_at","customer_id","created_by_id","category_id","category_name"],"x-typelizer":!0},Store:{type:"object",properties:{id:{type:"string"},metadata:{type:"object"},name:{type:"string"},code:{type:"string"},preferred_storefront_url:{type:"string",nullable:!0},default_currency:{type:"string"},default_locale:{type:"string"},mail_from_address:{type:"string",nullable:!0},customer_support_email:{type:"string",nullable:!0},new_order_notifications_email:{type:"string",nullable:!0},preferred_send_consumer_transactional_emails:{type:"boolean"},preferred_admin_locale:{type:"string",nullable:!0},preferred_timezone:{type:"string"},preferred_weight_unit:{type:"string"},preferred_unit_system:{type:"string"},preferred_storefront_access:{type:"string"},preferred_guest_checkout:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},url:{type:"string"},api_url:{type:"string"},setup_tasks:{type:"array",items:{$ref:"#/components/schemas/SetupTask"}},supported_currencies:{type:"array",items:{type:"string"}},supported_locales:{type:"array",items:{type:"string"}},available_locales:{type:"array",items:{type:"string"}},logo_url:{type:"string",nullable:!0},mailer_logo_url:{type:"string",nullable:!0}},required:["id","metadata","name","code","preferred_storefront_url","default_currency","default_locale","mail_from_address","customer_support_email","new_order_notifications_email","preferred_send_consumer_transactional_emails","preferred_admin_locale","preferred_timezone","preferred_weight_unit","preferred_unit_system","preferred_storefront_access","preferred_guest_checkout","created_at","updated_at","url","api_url","setup_tasks","supported_currencies","supported_locales","available_locales","logo_url","mailer_logo_url"],"x-typelizer":!0},TaxCategory:{type:"object",properties:{id:{type:"string"},name:{type:"string"},tax_code:{type:"string",nullable:!0},description:{type:"string",nullable:!0},is_default:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","tax_code","description","is_default","created_at","updated_at"],"x-typelizer":!0},Variant:{type:"object",properties:{id:{type:"string"},product_id:{type:"string"},sku:{type:"string",nullable:!0},options_text:{type:"string"},track_inventory:{type:"boolean"},media_count:{type:"number"},preorder_ships_at:{type:"string",nullable:!0},thumbnail_url:{type:"string",nullable:!0},purchasable:{type:"boolean"},in_stock:{type:"boolean"},backorderable:{type:"boolean"},preorder:{type:"boolean"},weight:{type:"number",nullable:!0},height:{type:"number",nullable:!0},width:{type:"number",nullable:!0},depth:{type:"number",nullable:!0},price:{$ref:"#/components/schemas/Price"},original_price:{allOf:[{$ref:"#/components/schemas/Price"}],nullable:!0},primary_media:{$ref:"#/components/schemas/Media"},media:{type:"array",items:{$ref:"#/components/schemas/Media"}},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}},custom_fields:{type:"array",items:{$ref:"#/components/schemas/CustomField"}},prior_price:{allOf:[{$ref:"#/components/schemas/PriceHistory"}],nullable:!0},metadata:{type:"object"},position:{type:"number"},cost_price:{type:"string",nullable:!0},cost_currency:{type:"string",nullable:!0},barcode:{type:"string",nullable:!0},weight_unit:{type:"string",nullable:!0},dimensions_unit:{type:"string",nullable:!0},backorder_limit:{type:"number",nullable:!0},deleted_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},preorderable:{type:"boolean"},tax_category_id:{type:"string",nullable:!0},available_stock:{type:"number",nullable:!0},reserved_quantity:{type:"number"},total_on_hand:{type:"number",nullable:!0},product_name:{type:"string"},prices:{type:"array",items:{$ref:"#/components/schemas/Price"}},stock_items:{type:"array",items:{$ref:"#/components/schemas/StockItem"}}},required:["id","product_id","sku","options_text","track_inventory","media_count","preorder_ships_at","thumbnail_url","purchasable","in_stock","backorderable","preorder","weight","height","width","depth","price","original_price","option_values","metadata","position","cost_price","cost_currency","barcode","weight_unit","dimensions_unit","backorder_limit","deleted_at","created_at","updated_at","preorderable","tax_category_id","available_stock","reserved_quantity","total_on_hand","product_name"],"x-typelizer":!0},WebhookDelivery:{type:"object",properties:{id:{type:"string"},event_name:{type:"string"},event_id:{type:"string",nullable:!0},response_code:{type:"number",nullable:!0},execution_time:{type:"number",nullable:!0},error_type:{type:"string",nullable:!0},request_errors:{type:"string",nullable:!0},response_body:{type:"string",nullable:!0},success:{type:"boolean",nullable:!0},payload:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},delivered_at:{type:"string",nullable:!0},webhook_endpoint_id:{type:"string"},webhook_endpoint_url:{type:"string"}},required:["id","event_name","event_id","response_code","execution_time","error_type","request_errors","response_body","success","payload","created_at","updated_at","delivered_at","webhook_endpoint_id","webhook_endpoint_url"],"x-typelizer":!0},WebhookEndpoint:{type:"object",properties:{id:{type:"string"},name:{type:"string",nullable:!0},url:{type:"string"},active:{type:"boolean"},subscriptions:{type:"array",items:{type:"string"}},disabled_reason:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},disabled_at:{type:"string",nullable:!0},secret_key:{type:"string",nullable:!0},last_delivery_at:{type:"string",nullable:!0},recent_delivery_count:{type:"number"},recent_failure_count:{type:"number"},total_delivery_count:{type:"number"},successful_delivery_count:{type:"number"},failed_delivery_count:{type:"number"}},required:["id","name","url","active","subscriptions","disabled_reason","created_at","updated_at","disabled_at","secret_key","last_delivery_at","recent_delivery_count","recent_failure_count","total_delivery_count","successful_delivery_count","failed_delivery_count"],"x-typelizer":!0}}}};var Rm=new Set(["get","post","put","patch","delete"]);function xn(){return Tm}function Bv(e){let t=e.description?.match(/\*\*Required scope:\*\* (.+?) \(for API-key authentication\)\./);return t?t[1].replaceAll("`",""):"\u2014"}function Om(e,t={}){let r=[];for(let[i,n]of Object.entries(e.paths)){let s=i.replace("/api/v3/admin","")||"/";for(let[o,a]of Object.entries(n)){if(!Rm.has(o))continue;if(t.resource){let d=s.split("/")[1]??"";if(d!==t.resource&&!d.startsWith(t.resource))continue}let c=a.summary??"";t.search&&!`${o} ${s} ${c}`.toLowerCase().includes(t.search.toLowerCase())||r.push({method:o.toUpperCase(),path:s,scope:Bv(a),summary:c})}}return r}function jm(e,t){let r=t.trim().split(/\s+/),i=r.length>1?r[0].toLowerCase():void 0,n=r.length>1?r[1]:r[0],s=Pr(n),o=Im(e,i,a=>a===s);return o.length>0?o:Im(e,i,a=>Uv(a,s))}function Im(e,t,r){let i=[];for(let[n,s]of Object.entries(e.paths)){let o=n.replace("/api/v3/admin","")||"/";if(r(o))for(let[a,c]of Object.entries(s))Rm.has(a)&&(t&&a!==t||i.push({method:a.toUpperCase(),path:o,summary:c.summary,description:c.description,parameters:Yt(c.parameters,e),requestBody:Yt(c.requestBody,e),responses:Yt(c.responses,e)}))}return i}function Uv(e,t){if(e===t)return!0;let r=e.split("/"),i=t.split("/");return r.length!==i.length?!1:r.every((n,s)=>n.startsWith("{")&&n.endsWith("}")?i[s].length>0:n===i[s])}var Nv=8;function Yt(e,t,r=[]){if(Array.isArray(e))return e.map(o=>Yt(o,t,r));if(!e||typeof e!="object")return e;let i=e,n=i.$ref;if(typeof n=="string"){let o=n.replace("#/components/schemas/","");return r.includes(o)||r.length>=Nv||!(o in t.components.schemas)?{$ref:n}:Yt(t.components.schemas[o],t,[...r,o])}let s={};for(let[o,a]of Object.entries(i))s[o]=Yt(a,t,r);return s}function Gv(e,t){return[...t,e]}function Fm(e){return e.option("--profile <name>","use a saved profile (see `spree auth`)").option("--base-url <url>","store URL (overrides profile/env/project)").option("--api-key <key>","secret API key (prefer SPREE_API_KEY \u2014 flags leak into shell history)").option("--store-id <id>","X-Spree-Store-Id for hosts serving multiple stores")}function Bm(){return new va("--format <format>","output format").choices(["json","table"]).default("json")}function Dm(e){return Fm(e).addOption(Bm())}async function Lm(e){let t=await Cr({baseUrl:e.baseUrl,apiKey:e.apiKey,profile:e.profile});return{client:br({baseUrl:t.baseUrl,secretKey:t.apiKey,...e.storeId?{storeId:e.storeId}:{}}),credentials:t}}function Um(e){let t=e.command("api").description("Call the Admin API directly (generic get/post/patch/delete)");t.addHelpText("after",["","Examples:"," spree api get /products -q status_eq=active --limit 10",` spree api post /products -d '{"name":"Classic Tee","prices":[{"currency":"USD","amount":"29.99"}]}'`," spree api get /orders/ord_x8k2J9aQ --expand items,payments","","Discover the surface (offline, no server needed):"," spree api endpoints --search <term> # find endpoints + required scopes",' spree api schema "POST /orders" # request/response schema for one operation'," spree completion zsh # tab-completion for paths, filters, scopes"].join(`
|
|
364
|
-
`)),
|
|
365
|
-
`),process.exitCode=1;return}if(r.format==="table"){(0,
|
|
366
|
-
`),process.exitCode=1;return}let n=/\s/.test(r.trim());
|
|
364
|
+
**Required scope:** \`write_webhooks\` (for API-key authentication).`,parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}}],responses:{"200":{description:"webhook endpoint disabled",content:{"application/json":{}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{reason:{type:"string"}}}}}}}},"/api/v3/admin/categories":{get:{summary:"List categories",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Returns a paginated list of the store's categories (manual hierarchical taxons; rule-based collections are excluded).\n\n**Required scope:** `read_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"page",in:"query",required:!1,description:"Page number",schema:{type:"integer"}},{name:"limit",in:"query",required:!1,description:"Number of records per page",schema:{type:"integer"}},{name:"expand",in:"query",required:!1,description:"Comma-separated associations to expand (e.g., children, parent, ancestors).",schema:{type:"string"}}],responses:{"200":{description:"categories found",content:{"application/json":{schema:{type:"object",properties:{data:{type:"array",items:{$ref:"#/components/schemas/Category"}},meta:{$ref:"#/components/schemas/PaginationMeta"}},required:["data","meta"]}}}}}},post:{summary:"Create a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Creates a category. Nests under the parent when parent_id is given, otherwise creates a top-level category.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}}],responses:{"201":{description:"category created",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}},"422":{description:"validation error",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{name:{type:"string"},parent_id:{type:"string",description:"Prefixed ID of the parent category"},description:{type:"string"},permalink:{type:"string"},meta_title:{type:"string"},meta_description:{type:"string"},meta_keywords:{type:"string"},hide_from_nav:{type:"boolean"}},required:["name"]}}}}}},"/api/v3/admin/categories/{id}":{get:{summary:"Get a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Returns a single category by ID.\n\n**Required scope:** `read_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}},{name:"expand",in:"query",required:!1,description:"Comma-separated associations to expand (e.g., children, parent, ancestors).",schema:{type:"string"}}],responses:{"200":{description:"category found",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}},"404":{description:"category not found",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}},patch:{summary:"Update a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Updates a category.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"200":{description:"category updated",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{name:{type:"string"},parent_id:{type:"string",description:"Prefixed ID of the parent category"},description:{type:"string"},permalink:{type:"string"},meta_title:{type:"string"},meta_description:{type:"string"},meta_keywords:{type:"string"},hide_from_nav:{type:"boolean"}}}}}}},delete:{summary:"Delete a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Deletes a category and its descendants.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"204":{description:"category deleted"}}}},"/api/v3/admin/categories/{id}/reposition":{patch:{summary:"Reposition a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Moves a category to a new parent and/or index within the tree.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"200":{description:"category repositioned",content:{"application/json":{schema:{$ref:"#/components/schemas/Category"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{new_parent_id:{type:"string",description:"Prefixed ID of the new parent (omit for top level)"},new_position:{type:"integer",description:"0-based index among the new parent's children"}},required:["new_position"]}}}}}},"/api/v3/admin/categories/{category_id}/products":{get:{summary:"List category products",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Products classified under the category, ordered by their classification position.\n\n**Required scope:** `read_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"category_id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"200":{description:"products found",content:{"application/json":{schema:{type:"object",properties:{data:{type:"array",items:{$ref:"#/components/schemas/Product"}},meta:{$ref:"#/components/schemas/PaginationMeta"}},required:["data","meta"]}}}}}},post:{summary:"Add a product to a category",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Classifies a product under the category (appended to the end).\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"category_id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}}],responses:{"201":{description:"product added",content:{"application/json":{schema:{$ref:"#/components/schemas/Product"}}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{product_id:{type:"string"}},required:["product_id"]}}}}}},"/api/v3/admin/categories/{category_id}/products/{id}/reposition":{patch:{summary:"Reposition a category product",tags:["Categories"],security:[{api_key:[],bearer_auth:[]}],description:"Moves a product to a new index among the category's products.\n\n**Required scope:** `write_categories` (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,description:"Bearer token for admin authentication",schema:{type:"string"}},{name:"category_id",in:"path",required:!0,description:"Category ID",schema:{type:"string"}},{name:"id",in:"path",required:!0,description:"Product ID",schema:{type:"string"}}],responses:{"204":{description:"product repositioned"}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{new_position:{type:"integer",description:"0-based index among the category's products"}},required:["new_position"]}}}}}},"/api/v3/admin/imports":{get:{summary:"List imports",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Returns CSV imports queued or completed for the current store.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}}],responses:{"200":{description:"imports found",content:{"application/json":{}}}}},post:{summary:"Create an import",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Queues a CSV import. Upload the file first via `POST /api/v3/admin/direct_uploads`\nand pass the returned `signed_id` as `attachment`. On success the import is in the\n`mapping` state and the response carries the mapping payload: `schema_fields`\n(the canonical columns for the type), `csv_headers`, a `sample_row`, and the\nauto-assigned `mappings`.\n\nAdjust mappings if needed, then call `PATCH /admin/imports/{id}/complete_mapping`\nto start processing. Poll `GET /admin/imports/{id}` while `status` is\n`completed_mapping`/`processing`; terminal statuses are `completed` and `failed`.\n\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}}],responses:{"201":{description:"import created in mapping state",content:{"application/json":{}}},"422":{description:"unknown import type",content:{"application/json":{}}}},requestBody:{content:{"application/json":{schema:{type:"object",required:["type","attachment"],properties:{type:{type:"string",enum:["Spree::Imports::Products","Spree::Imports::Customers","Spree::Imports::ProductTranslations"]},attachment:{type:"string",description:"ActiveStorage signed blob id from POST /api/v3/admin/direct_uploads."},preferred_delimiter:{type:"string",enum:[",",";","|"," "],description:"CSV column separator. Defaults to a comma."},results_url:{type:"string",description:"Absolute URL of your admin imports view; the import-done email links back to it with `?import=<id>` appended. Only honored when it matches one of the store's configured allowed origins."}}}}}}}},"/api/v3/admin/imports/template":{get:{summary:"Download an import template",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Returns a CSV header row for the given import type, including the custom field columns available for the model.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"type",in:"query",required:!0,description:"Registered import type, e.g. Spree::Imports::Products.",schema:{type:"string"}}],responses:{"200":{description:"CSV template",content:{"application/json":{},"text/csv":{schema:{type:"string",format:"binary"}}}}}}},"/api/v3/admin/imports/{id}":{get:{summary:"Show an import",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Returns import status and row counters. The admin dashboard polls this endpoint while `status` is `completed_mapping` or `processing`; `rows_count`, `completed_rows_count` and `failed_rows_count` drive the progress bar. The mapping payload (`csv_headers`, `sample_row`) is only present while `status` is `mapping`.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"import found",content:{"application/json":{}}}}},delete:{summary:"Delete an import",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Removes the import, its rows and the uploaded file. Returns 422 while the import is being processed.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"204":{description:"import deleted"}}}},"/api/v3/admin/imports/{id}/download":{get:{summary:"Download the originally uploaded file",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Streams the CSV exactly as it was uploaded \u2014 the audit trail for what was imported. JWT/API-key protected; SPA clients fetch it with the Authorization header and trigger the browser download via a Blob URL.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"CSV file",content:{"application/json":{},"text/csv":{schema:{type:"string",format:"binary"}}}}}}},"/api/v3/admin/imports/{id}/complete_mapping":{patch:{summary:"Complete mapping and start processing",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Applies the submitted column mappings, then starts row processing. Omit `mappings`\nto accept the auto-assigned ones from the create response. Returns 422 when a\nrequired schema field is left unmapped (`details.missing_required_fields`) or a\nfile column is assigned twice.\n\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"mapping completed, processing queued",content:{"application/json":{}}}},requestBody:{content:{"application/json":{schema:{type:"object",properties:{mappings:{type:"array",description:"Column assignments to apply before starting. `file_column: null` unmaps a field.",items:{type:"object",required:["schema_field"],properties:{schema_field:{type:"string"},file_column:{type:"string",nullable:!0}}}}}}}}}}},"/api/v3/admin/imports/{id}/retry_failed_rows":{patch:{summary:"Retry failed rows",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Re-processes the rows that failed. The import re-enters `processing`; poll `GET /admin/imports/{id}` until it completes again. Returns 422 when the import is not `completed` or has no failed rows.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"id",in:"path",required:!0,schema:{type:"string"}}],responses:{"200":{description:"retry queued",content:{"application/json":{}}}}}},"/api/v3/admin/imports/{import_id}/rows":{get:{summary:"List import rows",tags:["Imports"],security:[{api_key:[],bearer_auth:[]}],description:"Paginated rows of an import \u2014 the failure report. Filter with `q[status_eq]=failed` to list only rows that could not be imported; each row carries the raw CSV `data` and its `validation_errors`.\n\n**Required scope:** the write scope of the imported resource \u2014 `write_products` for product imports, `write_customers` for customer imports, etc. (for API-key authentication).",parameters:[{name:"x-spree-api-key",in:"header",required:!0,schema:{type:"string"}},{name:"Authorization",in:"header",required:!0,schema:{type:"string"}},{name:"import_id",in:"path",required:!0,schema:{type:"string"}},{name:"q[status_eq]",in:"query",required:!1,description:"Filter rows by status: pending, processing, completed, failed.",schema:{type:"string"}}],responses:{"200":{description:"rows found",content:{"application/json":{}}}}}}},components:{schemas:{PaginationMeta:{type:"object",properties:{page:{type:"integer"},limit:{type:"integer"},count:{type:"integer",description:"Total number of records"},pages:{type:"integer",description:"Total number of pages"},from:{type:"integer",description:"Index of first record on this page"},to:{type:"integer",description:"Index of last record on this page"},in:{type:"integer",description:"Number of records on this page"},previous:{type:"integer",nullable:!0,description:"Previous page number"},next:{type:"integer",nullable:!0,description:"Next page number"}},required:["page","limit","count","pages","from","to","in"]},ErrorResponse:{type:"object",properties:{error:{type:"object",properties:{code:{type:"string"},message:{type:"string"},details:{type:"object",description:"Field-specific validation errors",nullable:!0}},required:["code","message"]}},required:["error"]},AuthResponse:{type:"object",properties:{token:{type:"string",description:"JWT access token"},user:{$ref:"#/components/schemas/AdminUser"}},required:["token","user"]},PermissionRule:{type:"object",description:"A single permission rule (CanCanCan rule). Rules are applied in order, last-matching-wins.",properties:{allow:{type:"boolean",description:"true for `can`, false for `cannot`"},actions:{type:"array",items:{type:"string"},description:'Action names, e.g. ["read", "update"] or ["manage"]'},subjects:{type:"array",items:{type:"string"},description:'Subject class names, e.g. ["Spree::Product"] or ["all"]'},has_conditions:{type:"boolean",description:"True if the server-side rule has per-record conditions. The SPA shows the action optimistically and handles 403 from the API."}},required:["allow","actions","subjects","has_conditions"]},MeResponse:{type:"object",description:"Current admin user profile and serialized permissions",properties:{user:{$ref:"#/components/schemas/AdminUser"},permissions:{type:"array",items:{$ref:"#/components/schemas/PermissionRule"}}},required:["user","permissions"]},ImportSchemaField:{type:"object",description:"A canonical column of an import type, including per-store custom field columns",properties:{name:{type:"string",description:"Canonical field name used in mappings"},label:{type:"string",description:"Human-readable label"},required:{type:"boolean",description:"Whether the field must be mapped before processing"}},required:["name","label","required"]},CheckoutRequirement:{type:"object",properties:{step:{type:"string",description:"Checkout step this requirement belongs to"},field:{type:"string",description:"Field that needs to be satisfied"},message:{type:"string",description:"Human-readable requirement message"}},required:["step","field","message"]},CartWarning:{type:"object",description:"A warning about a cart issue (e.g., item removed due to stock change)",properties:{code:{type:"string",description:"Machine-readable warning code"},message:{type:"string",description:"Human-readable warning message"},line_item_id:{type:"string",nullable:!0,description:"Prefixed line item ID (when applicable)"},variant_id:{type:"string",nullable:!0,description:"Prefixed variant ID (when applicable)"}},required:["code","message"]},FulfillmentManifestItem:{type:"object",description:"An item within a fulfillment \u2014 which line item and how many units are in this fulfillment",properties:{item_id:{type:"string",description:"Line item ID"},variant_id:{type:"string",description:"Variant ID"},quantity:{type:"integer",description:"Quantity in this fulfillment"}},required:["item_id","variant_id","quantity"]},AdminUserRoleAssignment:{type:"object",description:"A role assignment for the current store on a staff member",properties:{id:{type:"string",description:"Prefixed role ID"},name:{type:"string",description:"Role name"}},required:["id","name"]},PreferenceField:{type:"object",description:"A single configurable preference on a payment method, promotion rule/action, or calculator. The frontend uses `type` + `default` to render a sensible input.",properties:{key:{type:"string"},type:{type:"string",description:"string | text | password | integer | decimal | boolean | array | hash"},default:{description:"Default value (any JSON type), null when there is no default",nullable:!0}},required:["key","type"]},PromotionActionCalculator:{type:"object",description:"The action's nested calculator (when the action carries one \u2014 null for actions like `free_shipping`)",properties:{type:{type:"string",description:"Wire shorthand for the calculator subclass"},label:{type:"string"},preferences:{type:"object",additionalProperties:!0},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}}},required:["type","label","preferences","preference_schema"]},PromotionActionLineItem:{type:"object",description:"One row in a `create_line_items` action \u2014 the variant added to the order and how many",properties:{variant_id:{type:"string"},quantity:{type:"integer"}},required:["variant_id","quantity"]},Address:{type:"object",properties:{id:{type:"string"},first_name:{type:"string",nullable:!0},last_name:{type:"string",nullable:!0},full_name:{type:"string"},address1:{type:"string",nullable:!0},address2:{type:"string",nullable:!0},postal_code:{type:"string",nullable:!0},city:{type:"string",nullable:!0},phone:{type:"string",nullable:!0},company:{type:"string",nullable:!0},country_name:{type:"string"},country_iso:{type:"string"},state_text:{type:"string",nullable:!0},state_abbr:{type:"string",nullable:!0},quick_checkout:{type:"boolean"},is_default_billing:{type:"boolean"},is_default_shipping:{type:"boolean"},state_name:{type:"string",nullable:!0},label:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},customer_id:{type:"string",nullable:!0}},required:["id","first_name","last_name","full_name","address1","address2","postal_code","city","phone","company","country_name","country_iso","state_text","state_abbr","quick_checkout","is_default_billing","is_default_shipping","state_name","label","metadata","created_at","updated_at","customer_id"],"x-typelizer":!0},Adjustment:{type:"object",properties:{id:{type:"string"},label:{type:"string"},display_amount:{type:"string"},included:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},amount:{type:"string"},order_id:{type:"string",nullable:!0}},required:["id","label","display_amount","included","created_at","updated_at","amount","order_id"],"x-typelizer":!0},AdminUser:{type:"object",properties:{id:{type:"string"},email:{type:"string"},first_name:{type:"string",nullable:!0},last_name:{type:"string",nullable:!0},full_name:{type:"string",nullable:!0},selected_locale:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},avatar_url:{type:"string",nullable:!0},roles:{type:"array",items:{$ref:"#/components/schemas/AdminUserRoleAssignment"}}},required:["id","email","first_name","last_name","full_name","selected_locale","created_at","updated_at","avatar_url","roles"],"x-typelizer":!0},AllowedOrigin:{type:"object",properties:{id:{type:"string"},origin:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","origin","created_at","updated_at"],"x-typelizer":!0},ApiKey:{type:"object",properties:{id:{type:"string"},name:{type:"string"},key_type:{type:"string"},token_prefix:{type:"string",nullable:!0},scopes:{type:"array",items:{type:"string"}},created_at:{type:"string"},updated_at:{type:"string"},revoked_at:{type:"string",nullable:!0},last_used_at:{type:"string",nullable:!0},plaintext_token:{type:"string",nullable:!0},created_by_email:{type:"string",nullable:!0}},required:["id","name","key_type","token_prefix","scopes","created_at","updated_at","revoked_at","last_used_at","plaintext_token","created_by_email"],"x-typelizer":!0},Category:{type:"object",properties:{id:{type:"string"},name:{type:"string"},permalink:{type:"string"},position:{type:"number"},depth:{type:"number"},meta_title:{type:"string",nullable:!0},meta_description:{type:"string",nullable:!0},meta_keywords:{type:"string",nullable:!0},children_count:{type:"number"},parent_id:{type:"string",nullable:!0},description:{type:"string"},description_html:{type:"string"},image_url:{type:"string",nullable:!0},square_image_url:{type:"string",nullable:!0},is_root:{type:"boolean"},is_child:{type:"boolean"},is_leaf:{type:"boolean"},parent:{$ref:"#/components/schemas/Category"},children:{type:"array",items:{$ref:"#/components/schemas/Category"}},ancestors:{type:"array",items:{$ref:"#/components/schemas/Category"}},custom_fields:{type:"array",items:{$ref:"#/components/schemas/CustomField"}},translations:{type:"object"},metadata:{type:"object"},pretty_name:{type:"string"},lft:{type:"number"},rgt:{type:"number"},products_count:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","permalink","position","depth","meta_title","meta_description","meta_keywords","children_count","parent_id","description","description_html","image_url","square_image_url","is_root","is_child","is_leaf","metadata","pretty_name","lft","rgt","products_count","created_at","updated_at"],"x-typelizer":!0},Channel:{type:"object",properties:{id:{type:"string"},name:{type:"string"},code:{type:"string"},active:{type:"boolean"},default:{type:"boolean"},preferred_order_routing_strategy:{type:"string",nullable:!0},preferred_storefront_access:{type:"string",nullable:!0},preferred_guest_checkout:{type:"boolean",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","code","active","default","preferred_order_routing_strategy","preferred_storefront_access","preferred_guest_checkout","created_at","updated_at"],"x-typelizer":!0},Country:{type:"object",properties:{iso:{type:"string"},iso3:{type:"string"},name:{type:"string"},states_required:{type:"boolean"},zipcode_required:{type:"boolean"},states:{type:"array",items:{$ref:"#/components/schemas/State"}},market:{allOf:[{$ref:"#/components/schemas/Market"}],nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["iso","iso3","name","states_required","zipcode_required","created_at","updated_at"],"x-typelizer":!0},CouponCode:{type:"object",properties:{id:{type:"string"},code:{type:"string"},state:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},promotion_id:{type:"string"},order_id:{type:"string",nullable:!0}},required:["id","code","state","created_at","updated_at","promotion_id","order_id"],"x-typelizer":!0},CreditCard:{type:"object",properties:{id:{type:"string"},brand:{type:"string"},last4:{type:"string"},month:{type:"number"},year:{type:"number"},name:{type:"string",nullable:!0},default:{type:"boolean"},gateway_payment_profile_id:{type:"string",nullable:!0},customer_id:{type:"string",nullable:!0},payment_method_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","brand","last4","month","year","name","default","gateway_payment_profile_id","customer_id","payment_method_id","metadata","created_at","updated_at"],"x-typelizer":!0},CustomFieldDefinition:{type:"object",properties:{id:{type:"string"},namespace:{type:"string"},key:{type:"string"},label:{type:"string"},field_type:{type:"string",enum:["short_text","long_text","rich_text","number","boolean","json"]},resource_type:{type:"string"},storefront_visible:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","namespace","key","label","field_type","resource_type","storefront_visible","created_at","updated_at"],"x-typelizer":!0},CustomField:{type:"object",properties:{id:{type:"string"},label:{type:"string"},type:{type:"string",deprecated:!0},field_type:{type:"string",enum:["short_text","long_text","rich_text","number","boolean","json"]},key:{type:"string"},value:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},storefront_visible:{type:"boolean"},custom_field_definition_id:{type:"string"}},required:["id","label","type","field_type","key","value","created_at","updated_at","storefront_visible","custom_field_definition_id"],"x-typelizer":!0},CustomerGroup:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},customers_count:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"},customers:{type:"array",items:{$ref:"#/components/schemas/Customer"}}},required:["id","name","description","customers_count","created_at","updated_at"],"x-typelizer":!0},Customer:{type:"object",properties:{id:{type:"string"},email:{type:"string"},first_name:{type:"string",nullable:!0},last_name:{type:"string",nullable:!0},phone:{type:"string",nullable:!0},accepts_email_marketing:{type:"boolean"},full_name:{type:"string"},available_store_credit_total:{type:"string"},display_available_store_credit_total:{type:"string"},addresses:{type:"array",items:{$ref:"#/components/schemas/Address"}},default_billing_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},default_shipping_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},login:{type:"string",nullable:!0},metadata:{type:"object"},last_sign_in_at:{type:"string",nullable:!0},current_sign_in_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},sign_in_count:{type:"number"},failed_attempts:{type:"number"},last_sign_in_ip:{type:"string",nullable:!0},current_sign_in_ip:{type:"string",nullable:!0},tags:{type:"array",items:{type:"string"}},internal_note_html:{type:"string",nullable:!0},default_billing_address_id:{type:"string",nullable:!0},default_shipping_address_id:{type:"string",nullable:!0},orders_count:{type:"number"},total_spent:{type:"string"},display_total_spent:{type:"string"},last_order_completed_at:{type:"string",nullable:!0},orders:{type:"array",items:{$ref:"#/components/schemas/Order"}},store_credits:{type:"array",items:{$ref:"#/components/schemas/StoreCredit"}},customer_group_ids:{type:"array",items:{type:"string"}},customer_groups:{type:"array",items:{$ref:"#/components/schemas/CustomerGroup"}}},required:["id","email","first_name","last_name","phone","accepts_email_marketing","full_name","available_store_credit_total","display_available_store_credit_total","login","metadata","last_sign_in_at","current_sign_in_at","created_at","updated_at","sign_in_count","failed_attempts","last_sign_in_ip","current_sign_in_ip","tags","internal_note_html","default_billing_address_id","default_shipping_address_id","orders_count","total_spent","display_total_spent","last_order_completed_at","customer_group_ids"],"x-typelizer":!0},DeliveryMethod:{type:"object",properties:{id:{type:"string"},name:{type:"string"},code:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","code","created_at","updated_at"],"x-typelizer":!0},DeliveryRate:{type:"object",properties:{id:{type:"string"},delivery_method_id:{type:"string"},name:{type:"string"},selected:{type:"boolean"},cost:{type:"string"},total:{type:"string"},additional_tax_total:{type:"string"},included_tax_total:{type:"string"},tax_total:{type:"string"},display_cost:{type:"string"},display_total:{type:"string"},display_additional_tax_total:{type:"string"},display_included_tax_total:{type:"string"},display_tax_total:{type:"string"},delivery_method:{$ref:"#/components/schemas/DeliveryMethod"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","delivery_method_id","name","selected","cost","total","additional_tax_total","included_tax_total","tax_total","display_cost","display_total","display_additional_tax_total","display_included_tax_total","display_tax_total","created_at","updated_at"],"x-typelizer":!0},DigitalLink:{type:"object",properties:{id:{type:"string"},access_counter:{type:"number"},filename:{type:"string"},content_type:{type:"string"},download_url:{type:"string"},authorizable:{type:"boolean"},expired:{type:"boolean"},access_limit_exceeded:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","access_counter","filename","content_type","download_url","authorizable","expired","access_limit_exceeded","created_at","updated_at"],"x-typelizer":!0},Discount:{type:"object",properties:{id:{type:"string"},promotion_id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},code:{type:"string",nullable:!0},amount:{type:"string"},display_amount:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","promotion_id","name","description","code","amount","display_amount","created_at","updated_at"],"x-typelizer":!0},Export:{type:"object",properties:{id:{type:"string"},number:{type:"string"},type:{type:"string",nullable:!0},format:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},user_id:{type:"string",nullable:!0},done:{type:"boolean"},filename:{type:"string",nullable:!0},byte_size:{type:"number",nullable:!0},download_url:{type:"string",nullable:!0}},required:["id","number","type","format","created_at","updated_at","user_id","done","filename","byte_size","download_url"],"x-typelizer":!0},Fulfillment:{type:"object",properties:{id:{type:"string"},number:{type:"string"},tracking:{type:"string",nullable:!0},tracking_url:{type:"string",nullable:!0},cost:{type:"string"},display_cost:{type:"string"},total:{type:"string"},display_total:{type:"string"},discount_total:{type:"string"},display_discount_total:{type:"string"},additional_tax_total:{type:"string"},display_additional_tax_total:{type:"string"},included_tax_total:{type:"string"},display_included_tax_total:{type:"string"},tax_total:{type:"string"},display_tax_total:{type:"string"},status:{type:"string"},fulfillment_type:{type:"string"},fulfilled_at:{type:"string",nullable:!0},items:{type:"array",items:{$ref:"#/components/schemas/FulfillmentManifestItem"}},delivery_method:{$ref:"#/components/schemas/DeliveryMethod"},stock_location:{$ref:"#/components/schemas/StockLocation"},delivery_rates:{type:"array",items:{$ref:"#/components/schemas/DeliveryRate"}},metadata:{type:"object"},adjustment_total:{type:"string"},pre_tax_amount:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},order_id:{type:"string",nullable:!0},stock_location_id:{type:"string",nullable:!0},order:{$ref:"#/components/schemas/Order"},adjustments:{type:"array",items:{$ref:"#/components/schemas/Adjustment"}}},required:["id","number","tracking","tracking_url","cost","display_cost","total","display_total","discount_total","display_discount_total","additional_tax_total","display_additional_tax_total","included_tax_total","display_included_tax_total","tax_total","display_tax_total","status","fulfillment_type","fulfilled_at","items","metadata","adjustment_total","pre_tax_amount","created_at","updated_at","order_id","stock_location_id"],"x-typelizer":!0},GiftCardBatch:{type:"object",properties:{id:{type:"string"},codes_count:{type:"number"},currency:{type:"string",nullable:!0},prefix:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},amount:{type:"string",nullable:!0},expires_at:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0}},required:["id","codes_count","currency","prefix","created_at","updated_at","amount","expires_at","created_by_id"],"x-typelizer":!0},GiftCard:{type:"object",properties:{id:{type:"string"},code:{type:"string"},status:{type:"string"},currency:{type:"string"},amount:{type:"string"},amount_used:{type:"string"},amount_authorized:{type:"string"},amount_remaining:{type:"string"},display_amount:{type:"string"},display_amount_used:{type:"string"},display_amount_remaining:{type:"string"},expires_at:{type:"string",nullable:!0},redeemed_at:{type:"string",nullable:!0},expired:{type:"boolean"},active:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},customer_id:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0},customer:{$ref:"#/components/schemas/Customer"},created_by:{$ref:"#/components/schemas/AdminUser"},gift_card_batch:{$ref:"#/components/schemas/GiftCardBatch"},orders:{type:"array",items:{$ref:"#/components/schemas/Order"}}},required:["id","code","status","currency","amount","amount_used","amount_authorized","amount_remaining","display_amount","display_amount_used","display_amount_remaining","expires_at","redeemed_at","expired","active","created_at","updated_at","customer_id","created_by_id"],"x-typelizer":!0},ImportMapping:{type:"object",properties:{id:{type:"string"},schema_field:{type:"string"},file_column:{type:"string",nullable:!0},required:{type:"boolean"}},required:["id","schema_field","file_column","required"],"x-typelizer":!0},ImportRow:{type:"object",properties:{id:{type:"string"},row_number:{type:"number"},status:{type:"string"},validation_errors:{type:"string",nullable:!0},item_type:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},import_id:{type:"string",nullable:!0},item_id:{type:"string",nullable:!0},data:{type:"object"}},required:["id","row_number","status","validation_errors","item_type","created_at","updated_at","import_id","item_id","data"],"x-typelizer":!0},Import:{type:"object",properties:{id:{type:"string"},number:{type:"string"},type:{type:"string",nullable:!0},rows_count:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"},status:{type:"string"},owner_type:{type:"string",nullable:!0},owner_id:{type:"string",nullable:!0},user_id:{type:"string",nullable:!0},processing_errors:{type:"string",nullable:!0},preferred_delimiter:{type:"string"},original_filename:{type:"string",nullable:!0},original_byte_size:{type:"number",nullable:!0},original_file_url:{type:"string",nullable:!0},completed_rows_count:{type:"number"},failed_rows_count:{type:"number"},schema_fields:{type:"array",items:{$ref:"#/components/schemas/ImportSchemaField"}},csv_headers:{type:"array",items:{type:"string"}},sample_row:{type:"object"},mappings:{type:"array",items:{$ref:"#/components/schemas/ImportMapping"}}},required:["id","number","type","rows_count","created_at","updated_at","status","owner_type","owner_id","user_id","processing_errors","preferred_delimiter","original_filename","original_byte_size","original_file_url","completed_rows_count","failed_rows_count","schema_fields","csv_headers","sample_row","mappings"],"x-typelizer":!0},Invitation:{type:"object",properties:{id:{type:"string"},email:{type:"string"},status:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},expires_at:{type:"string"},role_id:{type:"string"},role_name:{type:"string"},inviter_email:{type:"string"},acceptance_url:{type:"string"},invitee_exists:{type:"boolean"},store:{type:"object"}},required:["id","email","status","created_at","updated_at","expires_at","role_id","role_name","inviter_email","acceptance_url","invitee_exists","store"],"x-typelizer":!0},LineItem:{type:"object",properties:{id:{type:"string"},variant_id:{type:"string"},preorder:{type:"boolean"},preorder_ships_at:{type:"string",nullable:!0},quantity:{type:"number"},currency:{type:"string"},name:{type:"string"},slug:{type:"string"},options_text:{type:"string"},price:{type:"string"},display_price:{type:"string"},total:{type:"string"},display_total:{type:"string"},adjustment_total:{type:"string"},display_adjustment_total:{type:"string"},additional_tax_total:{type:"string"},display_additional_tax_total:{type:"string"},included_tax_total:{type:"string"},display_included_tax_total:{type:"string"},discount_total:{type:"string"},display_discount_total:{type:"string"},pre_tax_amount:{type:"string"},display_pre_tax_amount:{type:"string"},discounted_amount:{type:"string"},display_discounted_amount:{type:"string"},display_compare_at_amount:{type:"string",nullable:!0},compare_at_amount:{type:"string",nullable:!0},thumbnail_url:{type:"string",nullable:!0},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}},digital_links:{type:"array",items:{$ref:"#/components/schemas/DigitalLink"}},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},cost_price:{type:"string",nullable:!0},tax_category_id:{type:"string",nullable:!0},variant:{$ref:"#/components/schemas/Variant"},tax_category:{$ref:"#/components/schemas/TaxCategory"},adjustments:{type:"array",items:{$ref:"#/components/schemas/Adjustment"}}},required:["id","variant_id","preorder","preorder_ships_at","quantity","currency","name","slug","options_text","price","display_price","total","display_total","adjustment_total","display_adjustment_total","additional_tax_total","display_additional_tax_total","included_tax_total","display_included_tax_total","discount_total","display_discount_total","pre_tax_amount","display_pre_tax_amount","discounted_amount","display_discounted_amount","display_compare_at_amount","compare_at_amount","thumbnail_url","option_values","digital_links","metadata","created_at","updated_at","cost_price","tax_category_id"],"x-typelizer":!0},Market:{type:"object",properties:{id:{type:"string"},name:{type:"string"},currency:{type:"string"},default_locale:{type:"string"},tax_inclusive:{type:"boolean"},default:{type:"boolean"},country_isos:{type:"array",items:{type:"string"}},supported_locales:{type:"array",items:{type:"string"}},countries:{type:"array",items:{$ref:"#/components/schemas/Country"}},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","currency","default_locale","tax_inclusive","default","country_isos","supported_locales","created_at","updated_at"],"x-typelizer":!0},Media:{type:"object",properties:{id:{type:"string"},product_id:{type:"string",nullable:!0},variant_ids:{type:"array",items:{type:"string"}},position:{type:"number"},alt:{type:"string",nullable:!0},media_type:{type:"string"},focal_point_x:{type:"number",nullable:!0},focal_point_y:{type:"number",nullable:!0},external_video_url:{type:"string",nullable:!0},original_url:{type:"string",nullable:!0},mini_url:{type:"string",nullable:!0},small_url:{type:"string",nullable:!0},medium_url:{type:"string",nullable:!0},large_url:{type:"string",nullable:!0},xlarge_url:{type:"string",nullable:!0},og_image_url:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},viewable_id:{type:"string"},download_url:{type:"string",nullable:!0},metadata:{type:"object"},viewable_type:{type:"string"}},required:["id","product_id","variant_ids","position","alt","media_type","focal_point_x","focal_point_y","external_video_url","original_url","mini_url","small_url","medium_url","large_url","xlarge_url","og_image_url","created_at","updated_at","viewable_id","download_url","metadata","viewable_type"],"x-typelizer":!0},OptionType:{type:"object",properties:{id:{type:"string"},name:{type:"string"},label:{type:"string"},position:{type:"number"},kind:{type:"string"},translations:{type:"object"},metadata:{type:"object"},filterable:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}}},required:["id","name","label","position","kind","metadata","filterable","created_at","updated_at"],"x-typelizer":!0},OptionValue:{type:"object",properties:{id:{type:"string"},option_type_id:{type:"string"},name:{type:"string"},label:{type:"string"},position:{type:"number"},color_code:{type:"string",nullable:!0},option_type_name:{type:"string"},option_type_label:{type:"string"},image_url:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},option_type:{$ref:"#/components/schemas/OptionType"}},required:["id","option_type_id","name","label","position","color_code","option_type_name","option_type_label","image_url","metadata","created_at","updated_at"],"x-typelizer":!0},Order:{type:"object",properties:{id:{type:"string"},market_id:{type:"string",nullable:!0},channel_id:{type:"string",nullable:!0},number:{type:"string"},email:{type:"string"},customer_note:{type:"string",nullable:!0},currency:{type:"string"},locale:{type:"string",nullable:!0},total_quantity:{type:"number"},fulfillment_status:{type:"string",nullable:!0},payment_status:{type:"string",nullable:!0},completed_at:{type:"string",nullable:!0},item_total:{type:"string"},display_item_total:{type:"string"},adjustment_total:{type:"string"},display_adjustment_total:{type:"string"},discount_total:{type:"string"},display_discount_total:{type:"string"},tax_total:{type:"string"},display_tax_total:{type:"string"},included_tax_total:{type:"string"},display_included_tax_total:{type:"string"},additional_tax_total:{type:"string"},display_additional_tax_total:{type:"string"},total:{type:"string"},display_total:{type:"string"},gift_card_total:{type:"string"},display_gift_card_total:{type:"string"},amount_due:{type:"string"},display_amount_due:{type:"string"},delivery_total:{type:"string"},display_delivery_total:{type:"string"},store_credit_total:{type:"string"},display_store_credit_total:{type:"string"},covered_by_store_credit:{type:"boolean"},discounts:{type:"array",items:{$ref:"#/components/schemas/Discount"}},items:{type:"array",items:{$ref:"#/components/schemas/LineItem"}},fulfillments:{type:"array",items:{$ref:"#/components/schemas/Fulfillment"}},payments:{type:"array",items:{$ref:"#/components/schemas/Payment"}},billing_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},shipping_address:{allOf:[{$ref:"#/components/schemas/Address"}],nullable:!0},gift_card:{allOf:[{$ref:"#/components/schemas/GiftCard"}],nullable:!0},market:{allOf:[{$ref:"#/components/schemas/Market"}],nullable:!0},status:{type:"string"},last_ip_address:{type:"string",nullable:!0},considered_risky:{type:"boolean"},confirmation_delivered:{type:"boolean"},store_owner_notification_delivered:{type:"boolean"},payment_total:{type:"string"},display_payment_total:{type:"string"},metadata:{type:"object"},canceled_at:{type:"string",nullable:!0},approved_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},preferred_stock_location_id:{type:"string",nullable:!0},tags:{type:"array",items:{type:"string"}},internal_note:{type:"string",nullable:!0},approver_id:{type:"string",nullable:!0},canceler_id:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0},customer_id:{type:"string",nullable:!0},channel:{$ref:"#/components/schemas/Channel"},preferred_stock_location:{$ref:"#/components/schemas/StockLocation"},payment_methods:{type:"array",items:{$ref:"#/components/schemas/PaymentMethod"}},customer:{$ref:"#/components/schemas/Customer"},approver:{$ref:"#/components/schemas/Customer"},canceler:{$ref:"#/components/schemas/Customer"},created_by:{$ref:"#/components/schemas/Customer"},adjustments:{type:"array",items:{$ref:"#/components/schemas/Adjustment"}},return_authorizations:{type:"array",items:{$ref:"#/components/schemas/ReturnAuthorization"}},reimbursements:{type:"array",items:{$ref:"#/components/schemas/Reimbursement"}}},required:["id","market_id","channel_id","number","email","customer_note","currency","locale","total_quantity","fulfillment_status","payment_status","completed_at","item_total","display_item_total","adjustment_total","display_adjustment_total","discount_total","display_discount_total","tax_total","display_tax_total","included_tax_total","display_included_tax_total","additional_tax_total","display_additional_tax_total","total","display_total","gift_card_total","display_gift_card_total","amount_due","display_amount_due","delivery_total","display_delivery_total","store_credit_total","display_store_credit_total","covered_by_store_credit","gift_card","market","status","last_ip_address","considered_risky","confirmation_delivered","store_owner_notification_delivered","payment_total","display_payment_total","metadata","canceled_at","approved_at","created_at","updated_at","preferred_stock_location_id","tags","internal_note","approver_id","canceler_id","created_by_id","customer_id"],"x-typelizer":!0},PaymentMethod:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},type:{type:"string"},session_required:{type:"boolean"},source_required:{type:"boolean"},metadata:{type:"object"},active:{type:"boolean"},auto_capture:{type:"boolean",nullable:!0},storefront_visible:{type:"boolean"},position:{type:"number"},created_at:{type:"string"},updated_at:{type:"string"},preferences:{type:"object"},preference_schema:{type:"object"}},required:["id","name","description","type","session_required","source_required","metadata","active","auto_capture","storefront_visible","position","created_at","updated_at","preferences","preference_schema"],"x-typelizer":!0},Payment:{type:"object",properties:{id:{type:"string"},payment_method_id:{type:"string"},response_code:{type:"string",nullable:!0},number:{type:"string"},amount:{type:"string"},display_amount:{type:"string"},status:{type:"string"},source_type:{type:"string",nullable:!0,enum:["credit_card","store_credit","payment_source"]},source_id:{type:"string",nullable:!0},source:{anyOf:[{$ref:"#/components/schemas/CreditCard"},{$ref:"#/components/schemas/StoreCredit"},{$ref:"#/components/schemas/PaymentSource"}],nullable:!0},payment_method:{$ref:"#/components/schemas/PaymentMethod"},metadata:{type:"object"},avs_response:{type:"string",nullable:!0},cvv_response_code:{type:"string",nullable:!0},cvv_response_message:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},captured_amount:{type:"string"},order_id:{type:"string",nullable:!0},order:{$ref:"#/components/schemas/Order"},refunds:{type:"array",items:{$ref:"#/components/schemas/Refund"}}},required:["id","payment_method_id","response_code","number","amount","display_amount","status","source_type","source_id","source","metadata","avs_response","cvv_response_code","cvv_response_message","created_at","updated_at","captured_amount","order_id"],"x-typelizer":!0},PaymentSource:{type:"object",properties:{id:{type:"string"},gateway_payment_profile_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","gateway_payment_profile_id","metadata","created_at","updated_at"],"x-typelizer":!0},PriceHistory:{type:"object",properties:{id:{type:"string"},amount:{type:"string"},amount_in_cents:{type:"number"},currency:{type:"string"},display_amount:{type:"string"},recorded_at:{type:"string"},variant_id:{type:"string"},price_id:{type:"string"},compare_at_amount:{type:"string",nullable:!0},created_at:{type:"string"}},required:["id","amount","amount_in_cents","currency","display_amount","recorded_at","variant_id","price_id","compare_at_amount","created_at"],"x-typelizer":!0},PriceList:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},status:{type:"string"},position:{type:"number"},match_policy:{type:"string"},starts_at:{type:"string",nullable:!0},ends_at:{type:"string",nullable:!0},deleted_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},currently_active:{type:"boolean"},products_count:{type:"number"},prices_count:{type:"number"},product_ids:{type:"array",items:{type:"string"}},price_rules:{type:"array",items:{$ref:"#/components/schemas/PriceRule"}}},required:["id","name","description","status","position","match_policy","starts_at","ends_at","deleted_at","created_at","updated_at","currently_active","products_count","prices_count","product_ids"],"x-typelizer":!0},PriceRule:{type:"object",properties:{id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},type:{type:"string"},price_list_id:{type:"string"},preferences:{type:"object"},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}},label:{type:"string"},description:{type:"string",nullable:!0},markets:{type:"array",items:{$ref:"#/components/schemas/Market"}},customer_groups:{type:"array",items:{$ref:"#/components/schemas/CustomerGroup"}},channels:{type:"array",items:{$ref:"#/components/schemas/Channel"}},customers:{type:"array",items:{$ref:"#/components/schemas/Customer"}}},required:["id","created_at","updated_at","type","price_list_id","preferences","preference_schema","label","description"],"x-typelizer":!0},Price:{type:"object",properties:{id:{type:"string"},amount:{type:"string",nullable:!0},amount_in_cents:{type:"number",nullable:!0},compare_at_amount:{type:"string",nullable:!0},compare_at_amount_in_cents:{type:"number",nullable:!0},currency:{type:"string",nullable:!0},display_amount:{type:"string",nullable:!0},display_compare_at_amount:{type:"string",nullable:!0},price_list_id:{type:"string",nullable:!0},variant_id:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},variant:{$ref:"#/components/schemas/Variant"}},required:["id","amount","amount_in_cents","compare_at_amount","compare_at_amount_in_cents","currency","display_amount","display_compare_at_amount","price_list_id","variant_id","created_at","updated_at"],"x-typelizer":!0},ProductPublication:{type:"object",properties:{id:{type:"string"},published_at:{type:"string",nullable:!0},unpublished_at:{type:"string",nullable:!0},product_id:{type:"string"},channel_id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","published_at","unpublished_at","product_id","channel_id","created_at","updated_at"],"x-typelizer":!0},Product:{type:"object",properties:{id:{type:"string"},name:{type:"string"},slug:{type:"string"},meta_title:{type:"string",nullable:!0},meta_description:{type:"string",nullable:!0},meta_keywords:{type:"string",nullable:!0},variant_count:{type:"number"},available_on:{type:"string",nullable:!0},preorder_ships_at:{type:"string",nullable:!0},purchasable:{type:"boolean"},preorder:{type:"boolean"},in_stock:{type:"boolean"},backorderable:{type:"boolean"},available:{type:"boolean"},description:{type:"string",nullable:!0},description_html:{type:"string",nullable:!0},default_variant_id:{type:"string"},thumbnail_url:{type:"string",nullable:!0},tags:{type:"array",items:{type:"string"}},price:{allOf:[{$ref:"#/components/schemas/Price"}],nullable:!0},original_price:{allOf:[{$ref:"#/components/schemas/Price"}],nullable:!0},primary_media:{$ref:"#/components/schemas/Media"},media:{type:"array",items:{$ref:"#/components/schemas/Media"}},variants:{type:"array",items:{$ref:"#/components/schemas/Variant"}},default_variant:{$ref:"#/components/schemas/Variant"},option_types:{type:"array",items:{$ref:"#/components/schemas/OptionType"}},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}},categories:{type:"array",items:{$ref:"#/components/schemas/Category"}},custom_fields:{type:"array",items:{$ref:"#/components/schemas/CustomField"}},prior_price:{allOf:[{$ref:"#/components/schemas/PriceHistory"}],nullable:!0},translations:{type:"object"},status:{type:"string"},metadata:{type:"object"},deleted_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},tax_category_id:{type:"string",nullable:!0},product_publications:{type:"array",items:{$ref:"#/components/schemas/ProductPublication"}},channels:{type:"array",items:{$ref:"#/components/schemas/Channel"}}},required:["id","name","slug","meta_title","meta_description","meta_keywords","variant_count","available_on","preorder_ships_at","purchasable","preorder","in_stock","backorderable","available","description","description_html","default_variant_id","thumbnail_url","tags","price","original_price","status","metadata","deleted_at","created_at","updated_at","tax_category_id"],"x-typelizer":!0},PromotionAction:{type:"object",properties:{id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},type:{type:"string"},promotion_id:{type:"string"},preferences:{type:"object"},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}},label:{type:"string"},calculator:{allOf:[{$ref:"#/components/schemas/PromotionActionCalculator"}],nullable:!0},line_items:{type:"array",items:{$ref:"#/components/schemas/PromotionActionLineItem"},nullable:!0}},required:["id","created_at","updated_at","type","promotion_id","preferences","preference_schema","label","calculator","line_items"],"x-typelizer":!0},PromotionRule:{type:"object",properties:{id:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},type:{type:"string"},promotion_id:{type:"string"},preferences:{type:"object"},preference_schema:{type:"array",items:{$ref:"#/components/schemas/PreferenceField"}},label:{type:"string"},product_ids:{type:"array",items:{type:"string"},nullable:!0},category_ids:{type:"array",items:{type:"string"},nullable:!0},customer_ids:{type:"array",items:{type:"string"},nullable:!0},products:{type:"array",items:{$ref:"#/components/schemas/Product"}},categories:{type:"array",items:{$ref:"#/components/schemas/Category"}},customers:{type:"array",items:{$ref:"#/components/schemas/Customer"}},customer_groups:{type:"array",items:{$ref:"#/components/schemas/CustomerGroup"}},countries:{type:"array",items:{$ref:"#/components/schemas/Country"}},channels:{type:"array",items:{$ref:"#/components/schemas/Channel"}},markets:{type:"array",items:{$ref:"#/components/schemas/Market"}}},required:["id","created_at","updated_at","type","promotion_id","preferences","preference_schema","label","product_ids","category_ids","customer_ids"],"x-typelizer":!0},Promotion:{type:"object",properties:{id:{type:"string"},name:{type:"string"},description:{type:"string",nullable:!0},code:{type:"string",nullable:!0},starts_at:{type:"string",nullable:!0},expires_at:{type:"string",nullable:!0},usage_limit:{type:"number",nullable:!0},match_policy:{type:"string",enum:["all","any"]},path:{type:"string",nullable:!0},kind:{type:"string",enum:["coupon_code","automatic"]},multi_codes:{type:"boolean"},number_of_codes:{type:"number",nullable:!0},code_prefix:{type:"string",nullable:!0},promotion_category_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},action_ids:{type:"array",items:{type:"string"}},rule_ids:{type:"array",items:{type:"string"}}},required:["id","name","description","code","starts_at","expires_at","usage_limit","match_policy","path","kind","multi_codes","number_of_codes","code_prefix","promotion_category_id","metadata","created_at","updated_at","action_ids","rule_ids"],"x-typelizer":!0},Refund:{type:"object",properties:{id:{type:"string"},transaction_id:{type:"string",nullable:!0},amount:{type:"string",nullable:!0},payment_id:{type:"string",nullable:!0},refund_reason_id:{type:"string",nullable:!0},reimbursement_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},payment:{$ref:"#/components/schemas/Payment"},reimbursement:{$ref:"#/components/schemas/Reimbursement"}},required:["id","transaction_id","amount","payment_id","refund_reason_id","reimbursement_id","metadata","created_at","updated_at"],"x-typelizer":!0},Reimbursement:{type:"object",properties:{id:{type:"string"},number:{type:"string"},reimbursement_status:{type:"string",nullable:!0},total:{type:"string",nullable:!0},order_id:{type:"string",nullable:!0},customer_return_id:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},order:{$ref:"#/components/schemas/Order"}},required:["id","number","reimbursement_status","total","order_id","customer_return_id","created_at","updated_at"],"x-typelizer":!0},ReturnAuthorization:{type:"object",properties:{id:{type:"string"},number:{type:"string"},status:{type:"string"},order_id:{type:"string",nullable:!0},stock_location_id:{type:"string",nullable:!0},return_authorization_reason_id:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},order:{$ref:"#/components/schemas/Order"},stock_location:{$ref:"#/components/schemas/StockLocation"}},required:["id","number","status","order_id","stock_location_id","return_authorization_reason_id","created_at","updated_at"],"x-typelizer":!0},Role:{type:"object",properties:{id:{type:"string"},name:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","created_at","updated_at"],"x-typelizer":!0},SetupTask:{type:"object",properties:{name:{type:"string"},done:{type:"boolean"}},required:["name","done"],"x-typelizer":!0},State:{type:"object",properties:{abbr:{type:"string"},name:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"}},required:["abbr","name","created_at","updated_at"],"x-typelizer":!0},StockItem:{type:"object",properties:{id:{type:"string"},count_on_hand:{type:"number"},backorderable:{type:"boolean"},stock_location_id:{type:"string",nullable:!0},variant_id:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},allocated_count:{type:"number"},available_count:{type:"number"},stock_location:{$ref:"#/components/schemas/StockLocation"},variant:{$ref:"#/components/schemas/Variant"}},required:["id","count_on_hand","backorderable","stock_location_id","variant_id","metadata","created_at","updated_at","allocated_count","available_count"],"x-typelizer":!0},StockLocation:{type:"object",properties:{id:{type:"string"},state_abbr:{type:"string",nullable:!0},name:{type:"string"},address1:{type:"string",nullable:!0},city:{type:"string",nullable:!0},zipcode:{type:"string",nullable:!0},country_iso:{type:"string",nullable:!0},country_name:{type:"string",nullable:!0},state_text:{type:"string",nullable:!0},admin_name:{type:"string",nullable:!0},address2:{type:"string",nullable:!0},state_name:{type:"string",nullable:!0},phone:{type:"string",nullable:!0},company:{type:"string",nullable:!0},active:{type:"boolean"},default:{type:"boolean"},backorderable_default:{type:"boolean"},propagate_all_variants:{type:"boolean"},kind:{type:"string"},pickup_enabled:{type:"boolean"},pickup_stock_policy:{type:"string"},pickup_ready_in_minutes:{type:"number",nullable:!0},pickup_instructions:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","state_abbr","name","address1","city","zipcode","country_iso","country_name","state_text","admin_name","address2","state_name","phone","company","active","default","backorderable_default","propagate_all_variants","kind","pickup_enabled","pickup_stock_policy","pickup_ready_in_minutes","pickup_instructions","created_at","updated_at"],"x-typelizer":!0},StockReservation:{type:"object",properties:{id:{type:"string"},stock_item_id:{type:"string"},line_item_id:{type:"string"},order_id:{type:"string"},variant_id:{type:"string",nullable:!0},stock_location_id:{type:"string",nullable:!0},quantity:{type:"number"},expires_at:{type:"string"},active:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","stock_item_id","line_item_id","order_id","variant_id","stock_location_id","quantity","expires_at","active","created_at","updated_at"],"x-typelizer":!0},StockTransfer:{type:"object",properties:{id:{type:"string"},number:{type:"string"},reference:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},source_location_id:{type:"string",nullable:!0},destination_location_id:{type:"string",nullable:!0},source_location:{$ref:"#/components/schemas/StockLocation"},destination_location:{$ref:"#/components/schemas/StockLocation"}},required:["id","number","reference","metadata","created_at","updated_at","source_location_id","destination_location_id"],"x-typelizer":!0},StoreCreditCategory:{type:"object",properties:{id:{type:"string"},name:{type:"string"},created_at:{type:"string"},updated_at:{type:"string"},non_expiring:{type:"boolean"}},required:["id","name","created_at","updated_at","non_expiring"],"x-typelizer":!0},StoreCredit:{type:"object",properties:{id:{type:"string"},amount:{type:"string"},amount_used:{type:"string"},amount_remaining:{type:"string"},display_amount:{type:"string"},display_amount_used:{type:"string"},display_amount_remaining:{type:"string"},currency:{type:"string"},memo:{type:"string",nullable:!0},metadata:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},customer_id:{type:"string",nullable:!0},created_by_id:{type:"string",nullable:!0},category_id:{type:"string",nullable:!0},category_name:{type:"string",nullable:!0}},required:["id","amount","amount_used","amount_remaining","display_amount","display_amount_used","display_amount_remaining","currency","memo","metadata","created_at","updated_at","customer_id","created_by_id","category_id","category_name"],"x-typelizer":!0},Store:{type:"object",properties:{id:{type:"string"},metadata:{type:"object"},name:{type:"string"},code:{type:"string"},preferred_storefront_url:{type:"string",nullable:!0},default_currency:{type:"string"},default_locale:{type:"string"},mail_from_address:{type:"string",nullable:!0},customer_support_email:{type:"string",nullable:!0},new_order_notifications_email:{type:"string",nullable:!0},preferred_send_consumer_transactional_emails:{type:"boolean"},preferred_admin_locale:{type:"string",nullable:!0},preferred_timezone:{type:"string"},preferred_weight_unit:{type:"string"},preferred_unit_system:{type:"string"},preferred_storefront_access:{type:"string"},preferred_guest_checkout:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"},url:{type:"string"},api_url:{type:"string"},setup_tasks:{type:"array",items:{$ref:"#/components/schemas/SetupTask"}},supported_currencies:{type:"array",items:{type:"string"}},supported_locales:{type:"array",items:{type:"string"}},available_locales:{type:"array",items:{type:"string"}},logo_url:{type:"string",nullable:!0},mailer_logo_url:{type:"string",nullable:!0}},required:["id","metadata","name","code","preferred_storefront_url","default_currency","default_locale","mail_from_address","customer_support_email","new_order_notifications_email","preferred_send_consumer_transactional_emails","preferred_admin_locale","preferred_timezone","preferred_weight_unit","preferred_unit_system","preferred_storefront_access","preferred_guest_checkout","created_at","updated_at","url","api_url","setup_tasks","supported_currencies","supported_locales","available_locales","logo_url","mailer_logo_url"],"x-typelizer":!0},TaxCategory:{type:"object",properties:{id:{type:"string"},name:{type:"string"},tax_code:{type:"string",nullable:!0},description:{type:"string",nullable:!0},is_default:{type:"boolean"},created_at:{type:"string"},updated_at:{type:"string"}},required:["id","name","tax_code","description","is_default","created_at","updated_at"],"x-typelizer":!0},Variant:{type:"object",properties:{id:{type:"string"},product_id:{type:"string"},sku:{type:"string",nullable:!0},options_text:{type:"string"},track_inventory:{type:"boolean"},media_count:{type:"number"},preorder_ships_at:{type:"string",nullable:!0},thumbnail_url:{type:"string",nullable:!0},purchasable:{type:"boolean"},in_stock:{type:"boolean"},backorderable:{type:"boolean"},preorder:{type:"boolean"},weight:{type:"number",nullable:!0},height:{type:"number",nullable:!0},width:{type:"number",nullable:!0},depth:{type:"number",nullable:!0},price:{$ref:"#/components/schemas/Price"},original_price:{allOf:[{$ref:"#/components/schemas/Price"}],nullable:!0},primary_media:{$ref:"#/components/schemas/Media"},media:{type:"array",items:{$ref:"#/components/schemas/Media"}},option_values:{type:"array",items:{$ref:"#/components/schemas/OptionValue"}},custom_fields:{type:"array",items:{$ref:"#/components/schemas/CustomField"}},prior_price:{allOf:[{$ref:"#/components/schemas/PriceHistory"}],nullable:!0},metadata:{type:"object"},position:{type:"number"},cost_price:{type:"string",nullable:!0},cost_currency:{type:"string",nullable:!0},barcode:{type:"string",nullable:!0},weight_unit:{type:"string",nullable:!0},dimensions_unit:{type:"string",nullable:!0},backorder_limit:{type:"number",nullable:!0},deleted_at:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},preorderable:{type:"boolean"},tax_category_id:{type:"string",nullable:!0},available_stock:{type:"number",nullable:!0},reserved_quantity:{type:"number"},total_on_hand:{type:"number",nullable:!0},product_name:{type:"string"},prices:{type:"array",items:{$ref:"#/components/schemas/Price"}},stock_items:{type:"array",items:{$ref:"#/components/schemas/StockItem"}}},required:["id","product_id","sku","options_text","track_inventory","media_count","preorder_ships_at","thumbnail_url","purchasable","in_stock","backorderable","preorder","weight","height","width","depth","price","original_price","option_values","metadata","position","cost_price","cost_currency","barcode","weight_unit","dimensions_unit","backorder_limit","deleted_at","created_at","updated_at","preorderable","tax_category_id","available_stock","reserved_quantity","total_on_hand","product_name"],"x-typelizer":!0},WebhookDelivery:{type:"object",properties:{id:{type:"string"},event_name:{type:"string"},event_id:{type:"string",nullable:!0},response_code:{type:"number",nullable:!0},execution_time:{type:"number",nullable:!0},error_type:{type:"string",nullable:!0},request_errors:{type:"string",nullable:!0},response_body:{type:"string",nullable:!0},success:{type:"boolean",nullable:!0},payload:{type:"object"},created_at:{type:"string"},updated_at:{type:"string"},delivered_at:{type:"string",nullable:!0},webhook_endpoint_id:{type:"string"},webhook_endpoint_url:{type:"string"}},required:["id","event_name","event_id","response_code","execution_time","error_type","request_errors","response_body","success","payload","created_at","updated_at","delivered_at","webhook_endpoint_id","webhook_endpoint_url"],"x-typelizer":!0},WebhookEndpoint:{type:"object",properties:{id:{type:"string"},name:{type:"string",nullable:!0},url:{type:"string"},active:{type:"boolean"},subscriptions:{type:"array",items:{type:"string"}},disabled_reason:{type:"string",nullable:!0},created_at:{type:"string"},updated_at:{type:"string"},disabled_at:{type:"string",nullable:!0},secret_key:{type:"string",nullable:!0},last_delivery_at:{type:"string",nullable:!0},recent_delivery_count:{type:"number"},recent_failure_count:{type:"number"},total_delivery_count:{type:"number"},successful_delivery_count:{type:"number"},failed_delivery_count:{type:"number"}},required:["id","name","url","active","subscriptions","disabled_reason","created_at","updated_at","disabled_at","secret_key","last_delivery_at","recent_delivery_count","recent_failure_count","total_delivery_count","successful_delivery_count","failed_delivery_count"],"x-typelizer":!0}}}};var Um=new Set(["get","post","put","patch","delete"]);function qn(){return Fm}function Kv(e){let t=e.description?.match(/\*\*Required scope:\*\* (.+?) \(for API-key authentication\)\./);return t?t[1].replaceAll("`",""):"\u2014"}function Nm(e,t={}){let r=[];for(let[i,n]of Object.entries(e.paths)){let s=i.replace("/api/v3/admin","")||"/";for(let[o,a]of Object.entries(n)){if(!Um.has(o))continue;if(t.resource){let d=s.split("/")[1]??"";if(d!==t.resource&&!d.startsWith(t.resource))continue}let c=a.summary??"";t.search&&!`${o} ${s} ${c}`.toLowerCase().includes(t.search.toLowerCase())||r.push({method:o.toUpperCase(),path:s,scope:Kv(a),summary:c})}}return r}function Gm(e,t){let r=t.trim().split(/\s+/),i=r.length>1?r[0].toLowerCase():void 0,n=r.length>1?r[1]:r[0],s=jr(n),o=Bm(e,i,a=>a===s);return o.length>0?o:Bm(e,i,a=>Yv(a,s))}function Bm(e,t,r){let i=[];for(let[n,s]of Object.entries(e.paths)){let o=n.replace("/api/v3/admin","")||"/";if(r(o))for(let[a,c]of Object.entries(s))Um.has(a)&&(t&&a!==t||i.push({method:a.toUpperCase(),path:o,summary:c.summary,description:c.description,parameters:Jt(c.parameters,e),requestBody:Jt(c.requestBody,e),responses:Jt(c.responses,e)}))}return i}function Yv(e,t){if(e===t)return!0;let r=e.split("/"),i=t.split("/");return r.length!==i.length?!1:r.every((n,s)=>n.startsWith("{")&&n.endsWith("}")?i[s].length>0:n===i[s])}var Jv=8;function Jt(e,t,r=[]){if(Array.isArray(e))return e.map(o=>Jt(o,t,r));if(!e||typeof e!="object")return e;let i=e,n=i.$ref;if(typeof n=="string"){let o=n.replace("#/components/schemas/","");return r.includes(o)||r.length>=Jv||!(o in t.components.schemas)?{$ref:n}:Jt(t.components.schemas[o],t,[...r,o])}let s={};for(let[o,a]of Object.entries(i))s[o]=Jt(a,t,r);return s}function Xv(e,t){return[...t,e]}function Hm(e){return e.option("--profile <name>","use a saved profile (see `spree auth`)").option("--base-url <url>","store URL (overrides profile/env/project)").option("--api-key <key>","secret API key (prefer SPREE_API_KEY \u2014 flags leak into shell history)").option("--store-id <id>","X-Spree-Store-Id for hosts serving multiple stores")}function Km(){return new Ea("--format <format>","output format").choices(["json","table"]).default("json")}function zm(e){return Hm(e).addOption(Km())}async function Vm(e){let t=await Rr({baseUrl:e.baseUrl,apiKey:e.apiKey,profile:e.profile});return{client:Sr({baseUrl:t.baseUrl,secretKey:t.apiKey,...e.storeId?{storeId:e.storeId}:{}}),credentials:t}}function Ym(e){let t=e.command("api").description("Call the Admin API directly (generic get/post/patch/delete)");t.addHelpText("after",["","Examples:"," spree api get /products -q status_eq=active --limit 10",` spree api post /products -d '{"name":"Classic Tee","prices":[{"currency":"USD","amount":"29.99"}]}'`," spree api get /orders/ord_x8k2J9aQ --expand items,payments","","Discover the surface (offline, no server needed):"," spree api endpoints --search <term> # find endpoints + required scopes",' spree api schema "POST /orders" # request/response schema for one operation'," spree completion zsh # tab-completion for paths, filters, scopes"].join(`
|
|
365
|
+
`)),zm(t.command("get <path>").description("GET an Admin API path, e.g. `spree api get /products -q status_eq=active`").option("-q, --query <expr>","Ransack predicate key=value (repeatable)",Xv,[]).option("--sort <fields>","sort, e.g. -created_at").option("--page <n>","page number").option("--limit <n>","page size (max 100)").option("--expand <relations>","expand relations, e.g. variants,variants.prices").option("--fields <fields>","sparse fields, e.g. id,name")).action(async(r,i)=>{let n;try{let s=Lm(i),{client:o,credentials:a}=await Vm(i);n=a.baseUrl;let c=await o.request("GET",jr(r),{params:s});Or(c,i.format)}catch(s){Ct(s,{baseUrl:n})}});for(let r of["post","patch","delete"])zm(t.command(`${r} <path>`).description(`${r.toUpperCase()} an Admin API path`).option("-d, --data <json>","request body: inline JSON, @file, or '-' for stdin")).action(async(i,n)=>{let s;try{let o=await Am(n.data),{client:a,credentials:c}=await Vm(n);s=c.baseUrl;let d=await a.request(r.toUpperCase(),jr(i),{...o===ta?{}:{body:o}});Or(d,n.format)}catch(o){Ct(o,{baseUrl:s})}});t.command("endpoints").description("List Admin API endpoints with their required scopes").option("--resource <name>","filter by first path segment, e.g. orders").option("--search <term>","filter by method, path, or summary").addOption(Km()).action(r=>{let i=Nm(qn(),{resource:r.resource,search:r.search});if(i.length===0){process.stderr.write(`No endpoints match.
|
|
366
|
+
`),process.exitCode=1;return}if(r.format==="table"){(0,Wm.printTable)(i.map(n=>({Method:n.method,Path:n.path,Scope:n.scope,Summary:n.summary})));return}Or(i,"json")}),t.command("schema <operation>").description('Show the request/response schema for an operation, e.g. `spree api schema "POST /products"`').action(r=>{let i=Gm(qn(),r);if(i.length===0){process.stderr.write(`No operation matches "${r}". Try \`spree api endpoints --search ${r.split(/\s+/).pop()}\`.
|
|
367
|
+
`),process.exitCode=1;return}let n=/\s/.test(r.trim());Or(n&&i.length===1?i[0]:i,"json")}),Hm(t.command("status").description("Show resolved credentials, server reachability, and the bundled spec version")).action(async r=>{try{let i=await Rr({baseUrl:r.baseUrl,apiKey:r.apiKey,profile:r.profile},{allowMint:!1}),n=await Dr(i.baseUrl,i.apiKey),s=qn(),o=Sn(n),a=[`${Ee.default.bold("Base URL:")} ${i.baseUrl}`,`${Ee.default.bold("Credentials:")} ${i.source}${i.profileName?` (${i.profileName})`:""}, key ${i.tokenPrefix}${Ee.default.dim("\u2026")}`],c=n.status==="unreachable"||n.status==="unauthorized"?null:await Mm(i.baseUrl,i.apiKey);c!==null?a.push(`${Ee.default.bold("Scopes:")} ${c.length?c.join(", "):Ee.default.dim("(none)")}`):i.scopes?.length&&a.push(`${Ee.default.bold("Scopes:")} ${i.scopes.join(", ")} ${Ee.default.dim("(local snapshot from mint time \u2014 may be stale)")}`),a.push(`${Ee.default.bold("Server:")} ${o}`),a.push(`${Ee.default.bold("Bundled spec:")} ${s.info?.version??"unknown"} ${Ee.default.dim("(spree api endpoints/schema reflect this snapshot, not the live server)")}`),process.stdout.write(`${a.join(`
|
|
367
368
|
`)}
|
|
368
|
-
`),
|
|
369
|
-
`),"API Key")}),t.command("list").description("List API keys").action(async()=>{let r=_(),i=
|
|
370
|
-
`).filter(Boolean);if(s.length===0){b.info("No API keys found.");return}let o=s.map(a=>{let[c,d,p,u,l,m]=a.split("|");return{ID:c??"",Name:d??"",Type:p??"",Token:u??"",Created:l??"",Status:m==="active"?
|
|
371
|
-
`),process.exit(2));let i=r.baseUrl;if(!i){let d=await ue({message:"Store URL:",placeholder:"https://store.example.com",validate(p){if(!p)return"URL is required";if(!/^https?:\/\//.test(p))return"Must start with http:// or https://"}});D(d)&&(O("Cancelled."),process.exit(130)),i=d}i=i.replace(/\/$/,"");let n=await
|
|
372
|
-
`),"Logged in")}),t.command("status").description("Show which credentials `spree api` would use, and verify them").option("--profile <name>","check a specific profile").action(async r=>{let i;try{i=await
|
|
373
|
-
`),"Auth status"),
|
|
374
|
-
`),process.exit(2)}delete i.profiles[r.profile],i.defaultProfile===r.profile&&(i.defaultProfile=Object.keys(i.profiles)[0]),
|
|
375
|
-
`)),process.exit(1)),
|
|
369
|
+
`),vn(n)&&(process.exitCode=1)}catch(i){Ct(i,{baseUrl:r.baseUrl})}})}var Jm=U(Pr(),1),et=U(Y(),1);function Xm(e){let t=e.command("api-key").description("Manage API keys");t.command("create").description("Create an API key").option("--name <name>","key name").option("--type <type>","key type: publishable or secret").option("--scopes <scopes>","comma-separated scopes for secret keys (e.g. read_all or read_orders,write_products)").action(async r=>{let i=_(),n=r.name,s=r.type,o=r.scopes;if(!n){let m=await ue({message:"Key name:",placeholder:"My Storefront",validate(h){if(!h)return"Name is required"}});D(m)&&(O("Cancelled."),process.exit(0)),n=m}if(!s){let m=await ni({message:"Key type:",options:[{value:"publishable",label:"Publishable (for storefronts)"},{value:"secret",label:"Secret (for server-to-server)"}]});D(m)&&(O("Cancelled."),process.exit(0)),s=m}if(s!=="publishable"&&s!=="secret")throw new Error('Key type must be "publishable" or "secret".');if(s==="secret"&&!o){let m=await ue({message:"Scopes (comma-separated):",placeholder:"read_all",initialValue:"read_all",validate(h){if(!h)return"Secret keys require at least one scope"}});D(m)&&(O("Cancelled."),process.exit(0)),o=m}let a=E();a.start("Creating API key...");let c=await ie("spree:cli:create_api_key",i.projectDir,{NAME:n,KEY_TYPE:s,...s==="secret"&&o?{SCOPES:o}:{}}),d=s==="publishable"?"pk_":"sk_",p=c.match(new RegExp(`${d}[A-Za-z0-9_-]+`)),u=p?p[0]:c.trim();a.stop("API key created.");let l=[`${et.default.bold("Name:")} ${n}`,`${et.default.bold("Type:")} ${s}`,`${et.default.bold("Token:")} ${et.default.cyan(u)}`];s==="secret"&&(l.push(`${et.default.bold("Scopes:")} ${o}`),l.push(""),l.push(et.default.yellow("Save this token now \u2014 secret keys cannot be retrieved later."))),W(l.join(`
|
|
370
|
+
`),"API Key")}),t.command("list").description("List API keys").action(async()=>{let r=_(),i=E();i.start("Fetching API keys...");let n=await ie("spree:cli:list_api_keys",r.projectDir);i.stop("");let s=n.trim().split(`
|
|
371
|
+
`).filter(Boolean);if(s.length===0){b.info("No API keys found.");return}let o=s.map(a=>{let[c,d,p,u,l,m]=a.split("|");return{ID:c??"",Name:d??"",Type:p??"",Token:u??"",Created:l??"",Status:m==="active"?et.default.green(m):et.default.red(m??"")}});(0,Jm.printTable)(o)}),t.command("revoke").description("Revoke an API key").argument("<id>","ID of the key to revoke (from api-key list)").action(async r=>{let i=_(),n=E();n.start("Revoking API key...");let o=(await ie("spree:cli:revoke_api_key",i.projectDir,{ID:r})).trim();n.stop(`API key "${o}" revoked.`)})}var Zm=U(Pr(),1),re=U(Y(),1);function Qm(e){let t=e.command("auth").description("Manage Admin API credentials (profiles in ~/.config/spree)");t.command("login").description("Save a secret API key as a named profile").option("--profile <name>","profile name","default").option("--base-url <url>","store URL, e.g. https://store.example.com").action(async r=>{process.stdin.isTTY||(process.stderr.write(`${re.default.red("error:")} \`spree auth login\` is interactive. For non-interactive use, set SPREE_BASE_URL + SPREE_API_KEY (or pass --base-url/--api-key to \`spree api\`).
|
|
372
|
+
`),process.exit(2));let i=r.baseUrl;if(!i){let d=await ue({message:"Store URL:",placeholder:"https://store.example.com",validate(p){if(!p)return"URL is required";if(!/^https?:\/\//.test(p))return"Must start with http:// or https://"}});D(d)&&(O("Cancelled."),process.exit(130)),i=d}i=i.replace(/\/$/,"");let n=await ii({message:"Secret API key (sk_...):",validate(d){if(!d)return"Key is required";if(!d.startsWith("sk_"))return"Admin API keys start with sk_"}});D(n)&&(O("Cancelled."),process.exit(130));let s=n,o=E();o.start("Validating credentials...");let a=await Dr(i,s);a.status==="unauthorized"&&(o.stop(re.default.red("The server rejected this key (401). Check the key and try again.")),process.exit(2)),a.status==="unreachable"&&(o.stop(re.default.red(`Could not reach ${i}: ${a.message}`)),process.exit(2)),o.stop(a.storeName?`Connected to ${re.default.bold(a.storeName)}.`:"Credentials accepted (key lacks read_settings, so the store name is hidden \u2014 that is fine).");let c=Ir();c.profiles[r.profile]={baseUrl:i,token:s},c.defaultProfile||=r.profile,sa(c),W([`${re.default.bold("Profile:")} ${r.profile}${c.defaultProfile===r.profile?re.default.dim(" (default)"):""}`,`${re.default.bold("Base URL:")} ${i}`,`${re.default.bold("Key:")} ${kn(s)}${re.default.dim("\u2026")}`,"",re.default.dim(`Saved to ${At()}`)].join(`
|
|
373
|
+
`),"Logged in")}),t.command("status").description("Show which credentials `spree api` would use, and verify them").option("--profile <name>","check a specific profile").action(async r=>{let i;try{i=await Rr({profile:r.profile},{allowMint:!1})}catch(a){Ct(a)}let n=E();n.start("Checking server...");let s=await Dr(i.baseUrl,i.apiKey);n.stop("");let o=Sn(s);W([`${re.default.bold("Source:")} ${i.source}${i.profileName?` (${i.profileName})`:""}`,`${re.default.bold("Base URL:")} ${i.baseUrl}`,`${re.default.bold("Key:")} ${i.tokenPrefix}${re.default.dim("\u2026")}`,...i.scopes?[`${re.default.bold("Scopes:")} ${i.scopes.join(", ")}`]:[],`${re.default.bold("Server:")} ${o}`].join(`
|
|
374
|
+
`),"Auth status"),vn(s)&&(process.exitCode=1)}),t.command("logout").description("Remove a saved profile (or the project credentials)").option("--profile <name>","profile to remove","default").option("--project","remove .spree/credentials.json from the current project instead").action(async r=>{if(r.project){let n;try{n=_().projectDir}catch(o){Ct(o)}(await import("fs")).rmSync(Kt(n),{force:!0}),b.success("Removed project credentials. The next `spree api` call mints a fresh read-only key.");return}let i=Ir();if(!i.profiles[r.profile]){let n=Object.keys(i.profiles),s=n.length?` Saved profiles: ${n.join(", ")}.`:" No profiles are saved.";process.stderr.write(`${re.default.red("error:")} no profile named "${r.profile}".${s}
|
|
375
|
+
`),process.exit(2)}delete i.profiles[r.profile],i.defaultProfile===r.profile&&(i.defaultProfile=Object.keys(i.profiles)[0]),sa(i),b.success(`Removed profile "${r.profile}". The key itself stays active \u2014 revoke it with \`spree api-key revoke\` or in the admin.`)}),t.command("list").description("List saved profiles").action(()=>{let r=Ir(),i=Object.keys(r.profiles);if(i.length===0){b.info("No profiles saved. Run `spree auth login` to add one.");return}(0,Zm.printTable)(i.map(n=>({Profile:r.defaultProfile===n?`${n} *`:n,"Base URL":r.profiles[n].baseUrl,Key:`${kn(r.profiles[n].token)}\u2026`})))})}import Xt from"fs";import Zv from"os";import yt from"path";var oe=U(Y(),1);function eh(e){e.command("build").description("Rebuild the dev image (after Dockerfile / .ruby-version changes)").option("--reset-bundle","also wipe the bundle_cache volume to re-seed gems").option("--yes","skip confirmation prompts (for CI)").option("--production","build the production image instead \u2014 includes apps/dashboard when present").option("--tag <tag>","image tag for --production (default: <project>-spree:latest)").action(async t=>{if(t.production){await tS(_().projectDir,t.tag);return}await Qv(t)})}async function Qv(e){let t=_();if(Me(t.projectDir)&&(O(["This project uses SPREE_PATH for monorepo development.",`Use ${oe.default.bold("pnpm server:build")} from the monorepo root instead of ${oe.default.bold("spree build")}.`,"It builds against the edge compose overlay the running stack was started with."].join(`
|
|
376
|
+
`)),process.exit(1)),kr(t.projectDir)||(console.error(`
|
|
376
377
|
${oe.default.red("Error:")} docker-compose.yml has no \`build:\` section. Run ${oe.default.bold("spree eject")} first to switch to a build-from-source stack.
|
|
377
|
-
`),process.exit(1)),e.resetBundle){if(!e.yes){let i=await
|
|
378
|
+
`),process.exit(1)),e.resetBundle){if(!e.yes){let i=await Ke({message:"Wipe the bundle_cache volume? Any gems added via `spree bundle add` since the last image build will be lost.",initialValue:!1});(D(i)||!i)&&(O("Build cancelled."),process.exit(0))}let r=E();r.start("Wiping bundle_cache volume...");try{await Z(["down"],t.projectDir,{stdio:"ignore"});let n=`${await rS(t.projectDir)}_bundle_cache`;await iS(n,t.projectDir)?(await J("docker",["volume","rm",n],{cwd:t.projectDir,stdio:"ignore"}),r.stop("bundle_cache volume wiped.")):r.stop(`bundle_cache volume not present (looked for ${n}).`)}catch(i){throw r.stop("Failed to wipe bundle_cache volume."),i}}console.log(`
|
|
378
379
|
${oe.default.bold("Rebuilding dev image...")}
|
|
379
|
-
`),await
|
|
380
|
-
`),"Build complete")}function
|
|
380
|
+
`),await Z(["build","web","worker"],t.projectDir,{stdio:"inherit"}),W([`Image rebuilt. Start the stack with ${oe.default.bold("spree dev")}.`,e.resetBundle?`On next boot, gems will re-seed into a fresh ${oe.default.dim("bundle_cache")} volume.`:""].filter(Boolean).join(`
|
|
381
|
+
`),"Build complete")}function eS(e,t){let r=yt.join(e,"backend"),i=yt.join(r,"Dockerfile");if(!Xt.existsSync(i))throw new Error("No backend/Dockerfile found. Is this a create-spree-app project?");let n=t??`${yt.basename(e).toLowerCase().replace(/[^a-z0-9_-]/g,"")}-spree:latest`,s=["build",r,"-f",i,"-t",n],o=yt.join(e,"apps","dashboard");if(!Xt.existsSync(yt.join(o,"package.json")))return{args:s,imageTag:n,dashboard:"stock-or-none"};if(!Xt.readFileSync(i,"utf-8").includes("DASHBOARD_SOURCE"))return{args:s,imageTag:n,dashboard:"unsupported-dockerfile"};let a=Xt.mkdtempSync(yt.join(Zv.tmpdir(),"spree-dashboard-src-"));return Xt.cpSync(o,a,{recursive:!0,filter:c=>{let d=yt.basename(c);return d!=="node_modules"&&d!=="dist"&&d!==".tanstack"}}),s.push("--build-arg","DASHBOARD_SOURCE=custom","--build-context",`dashboard-src=${a}`),{args:s,imageTag:n,dashboard:"custom",stagedDashboardDir:a}}async function tS(e,t){let r;try{r=eS(e,t)}catch(i){console.error(`
|
|
381
382
|
${oe.default.red("Error:")} ${i instanceof Error?i.message:String(i)}
|
|
382
383
|
`),process.exit(1)}r.dashboard==="custom"?b.info(`Including your dashboard from ${oe.default.bold("apps/dashboard/")} (built in-image).`):r.dashboard==="unsupported-dockerfile"&&b.warn(`${oe.default.bold("apps/dashboard/")} exists, but ${oe.default.bold("backend/Dockerfile")} predates dashboard support (no DASHBOARD_SOURCE build arg) \u2014 the image will NOT include your dashboard. Update the Dockerfile from the spree-starter template to bake it in.`),console.log(`
|
|
383
384
|
${oe.default.bold(`Building production image ${r.imageTag}...`)}
|
|
384
|
-
`);try{await
|
|
385
|
-
`),"Production image built")}async function
|
|
385
|
+
`);try{await J("docker",r.args,{cwd:e,stdio:"inherit"})}finally{r.stagedDashboardDir&&Xt.rmSync(r.stagedDashboardDir,{recursive:!0,force:!0})}W([`Run it: ${oe.default.cyan(`docker run --rm -p 3000:3000 ${r.imageTag}`)}`,`Push it: ${oe.default.cyan(`docker tag ${r.imageTag} <registry>/<repo> && docker push <registry>/<repo>`)}`,r.dashboard!=="unsupported-dockerfile"?`Dashboard: served at ${oe.default.bold("/dashboard")} when the image includes one.`:""].filter(Boolean).join(`
|
|
386
|
+
`),"Production image built")}async function rS(e){try{let{stdout:t}=await J("docker",["compose","config","--format","json"],{cwd:e}),r=JSON.parse(t);if(r.name)return r.name}catch{}return yt.basename(e).toLowerCase().replace(/[^a-z0-9_-]/g,"")}async function iS(e,t){try{return await J("docker",["volume","inspect",e],{cwd:t,stdio:"ignore"}),!0}catch{return!1}}function th(e){e.command("bundle").description("Run a bundler command (`bundle \u2026`) inside the web container").argument("<args...>","arguments to pass to bundle").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await mt(["bundle",...t],r.projectDir,{edgeHint:"the edge stack heals gem drift on boot"})})}var rh=["/admin_users","/allowed_origins","/api_keys","/auth","/categories","/channels","/custom_field_definitions","/customer_groups","/customers","/exports","/gift_card_batches","/gift_cards","/imports","/invitations","/locales","/markets","/me","/option_types","/orders","/payment_methods","/price_lists","/prices","/products","/promotion_actions","/promotion_rules","/promotions","/roles","/stock_locations","/store","/store_credit_categories","/tags","/translatable_resources","/translations","/webhook_endpoints"];var ih=["bash","zsh","fish"],sS=["eq","not_eq","cont","not_cont","start","end","in","not_in","gt","gteq","lt","lteq","null","not_null","present","blank"],oS=["get","post","patch","delete","endpoints","schema","status"],aS=["read_all","write_all","read_orders","write_orders","read_products","write_products","read_promotions","write_promotions","read_customers","write_customers","read_payments","write_payments","read_fulfillments","write_fulfillments","read_refunds","write_refunds","read_gift_cards","write_gift_cards","read_store_credits","write_store_credits","read_stock","write_stock","read_categories","write_categories","read_settings","write_settings","read_webhooks","write_webhooks","read_api_keys","write_api_keys","read_dashboard"];function cS(e){let[t,r,...i]=e,n=e[e.length-1]??"",s=e[e.length-2]??"";if(e.length<=1)return $n(["api","auth",...pS],n);if((s==="-q"||s==="--query")&&n.includes("_")&&!n.includes("=")){let o=n.slice(0,n.lastIndexOf("_")+1);return sS.map(a=>`${o}${a}=`)}if(s==="--scopes"){let o=n.includes(",")?n.slice(n.lastIndexOf(",")+1):n,a=n.slice(0,n.length-o.length);return $n(aS,o).map(c=>a+c)}if(t==="api"){if(e.length===2)return $n(oS,n);if(["get","post","patch","delete","schema"].includes(r)&&i.length<=1)return $n(rh,n)}return[]}var pS=["api-key","dev","console","migrate"];function $n(e,t){return t?e.filter(r=>r.startsWith(t)):e}function dS(e){return e==="fish"?`# spree fish completion \u2014 eval "$(spree completion fish)"
|
|
386
387
|
function __spree_complete
|
|
387
388
|
set -l tokens (commandline -opc) (commandline -ct)
|
|
388
389
|
spree __complete $tokens[2..-1]
|
|
@@ -401,42 +402,42 @@ _spree() {
|
|
|
401
402
|
COMPREPLY=( $(spree __complete "\${words[@]}") )
|
|
402
403
|
}
|
|
403
404
|
complete -F _spree spree
|
|
404
|
-
`}function
|
|
405
|
-
`),process.exitCode=2;return}process.stdout.write(
|
|
406
|
-
`)})}function
|
|
407
|
-
`)),process.exit(1)};if(
|
|
408
|
-
`)[0])}`,"",`Run ${
|
|
409
|
-
`)[0])}`,"",`Run ${
|
|
410
|
-
`)),process.exit(1)}r||(O(["Postgres is not running.",`Start the stack with ${
|
|
411
|
-
`)),process.exit(1)),await F(["psql","-U","postgres","spree_development"],t.projectDir,{service:"postgres"})})}import
|
|
412
|
-
`)
|
|
413
|
-
`),"
|
|
414
|
-
`)
|
|
405
|
+
`}function nh(e){e.command("completion <shell>").description("Output a shell completion script (bash, zsh, or fish)").action(t=>{if(!ih.includes(t)){process.stderr.write(`Unsupported shell "${t}". Choose one of: ${ih.join(", ")}.
|
|
406
|
+
`),process.exitCode=2;return}process.stdout.write(dS(t))}),e.command("__complete",{hidden:!0}).allowUnknownOption().argument("[words...]").action(t=>{for(let r of cS(t??[]))process.stdout.write(`${r}
|
|
407
|
+
`)})}function sh(e){e.command("console").description("Open Rails console").action(async()=>{let t=_();await mt(["bin/rails","console"],t.projectDir,{edgeHint:"then open the console"})})}var Pe=U(Y(),1);var uS=["bin/rails","db:drop","db:create","spree:install:migrations","db:migrate","db:seed"];function oh(e){e.command("db:reset").description("Drop, create, migrate, and seed the dev database (destructive; self-heals a running stack)").option("--yes","skip the confirmation prompt (for CI)").action(async t=>{let r=_(),i=s=>{O(s.join(`
|
|
408
|
+
`)),process.exit(1)};if(Me(r.projectDir)&&i(["This is a monorepo edge project (SPREE_PATH set in .env).",`Reset the dev database from the monorepo root with ${Pe.default.bold("pnpm server:setup")}`,"(or the relevant `pnpm server:*` script) \u2014 the project-local compose is not the","running config here."]),!t.yes){let s=await Ke({message:"This will drop the spree_development database. Continue?",initialValue:!1});(D(s)||!s)&&(O("Cancelled."),process.exit(0))}let n;try{let[s,o]=await Promise.all([$t("web",r.projectDir),$t("worker",r.projectDir)]);n=s||o}catch(s){return i(["Could not inspect the Docker stack from this directory.",` ${Pe.default.dim(String(s.message).split(`
|
|
409
|
+
`)[0])}`,"",`Run ${Pe.default.bold("spree db:reset")} from your project root (the directory holding the`,".env with SECRET_KEY_BASE), and make sure Docker is running."])}if(n){let s=E();s.start("Stopping web + worker to release database connections..."),await Z(["stop","web","worker"],r.projectDir),s.stop("Stopped web + worker.")}try{await ra(uS,r.projectDir,{captureStderr:!0})}catch(s){let o=String(s.stderr??s.message??"");throw/being accessed by other users|55006/.test(o)&&i(["Could not drop spree_development \u2014 another client is still connected.",`A database client (TablePlus, DataGrip, psql) may be connected on port ${Pe.default.bold("5433")}.`,"Disconnect it, then re-run `spree db:reset`.",...n?["",`Bring the stack back up with ${Pe.default.bold("spree dev")}.`]:[]]),s}b.success("Database reset."),n&&W(`Bring the stack back up with ${Pe.default.bold("spree dev")}.`,"Done")}),e.command("db:console").description("Open a psql session against the dev database").action(async()=>{let t=_(),r;try{r=await $t("postgres",t.projectDir)}catch(i){O(["Could not inspect the Docker stack from this directory.",` ${Pe.default.dim(String(i.message).split(`
|
|
410
|
+
`)[0])}`,"",`Run ${Pe.default.bold("spree db:console")} from your project root, and make sure Docker is running.`].join(`
|
|
411
|
+
`)),process.exit(1)}r||(O(["Postgres is not running.",`Start the stack with ${Pe.default.bold("spree dev")}, then re-run ${Pe.default.bold("spree db:console")}.`].join(`
|
|
412
|
+
`)),process.exit(1)),await F(["psql","-U","postgres","spree_development"],t.projectDir,{service:"postgres"})})}import da from"fs";import bS from"path";var Ne=U(Y(),1);import Zt from"fs";import{platform as lS}from"os";import Qt from"path";var ge=U(Y(),1);var mS=3e3,ah=12e4;function ph(e){e.command("init").description("First-run setup: start services, configure API key, load sample data").option("--no-sample-data","skip loading sample data").option("--no-open","skip opening browser").action(async t=>{await pa(t)})}async function pa(e){let t=_(),r=e.sampleData&&(_n(t.projectDir)??!0);b.step("Pulling latest images..."),await Z(["pull"],t.projectDir,{stdio:"inherit"});let i=E();i.start("Starting Docker services..."),await lt(t.projectDir,{stdio:"ignore"}),await Z(["up","-d"],t.projectDir),i.stop("Docker services started."),i.start("Waiting for Spree to be ready..."),await hS(t.port),i.stop("Spree is ready."),i.start("Seeding database..."),await ie("db:seed",t.projectDir),i.stop("Database seeded."),i.start("Configuring API keys...");let n=await yS(t.projectDir);gS(t.projectDir,n);let s=await fS(t.projectDir,t.port);i.stop("API keys configured."),await ch(t.projectDir,"storefront"),await ch(t.projectDir,"dashboard"),r&&(i.start("Loading sample data..."),await ie("spree:load_sample_data",t.projectDir),i.stop("Sample data loaded.")),i.start("Indexing products for search..."),await ie("spree:search:reindex",t.projectDir),i.stop("Search index ready."),Rm(t.projectDir);let o=Qt.join(t.projectDir,"apps","dashboard"),a=vr(t.projectDir,o);W(["",ge.default.bold("Admin Dashboard"),` ${ge.default.cyan(`http://localhost:${t.port}/admin`)}`,` Email: ${yn}`,` Password: ${fn}`,"",ge.default.bold("Store API"),` ${ge.default.cyan(`http://localhost:${t.port}/api/v3/store`)}`,` Publishable key: ${ge.default.cyan(n)}`,"",ge.default.bold("Admin API"),` ${ge.default.cyan(`http://localhost:${t.port}/api/v3/admin`)}`,` Secret key: ${ge.default.cyan(s)}`,` ${ge.default.dim("Saved to .spree/credentials.json")}`,"",...Zt.existsSync(Qt.join(o,"package.json"))?[ge.default.bold("React Dashboard (Developer Preview)"),` ${ge.default.cyan(`cd apps/dashboard && ${a} run dev`)}`,""]:[]].join(`
|
|
413
|
+
`),"Your Spree store is ready!"),e.open&&await _S(`http://localhost:${t.port}/admin`),b.info(`Streaming logs (Ctrl+C to stop)...
|
|
414
|
+
`),await xn("web",t.projectDir)}async function ch(e,t){let r=Qt.join(e,"apps",t);if(!Zt.existsSync(Qt.join(r,"package.json"))||Zt.existsSync(Qt.join(r,"node_modules")))return;let i=vr(e,r),n=E();n.start(`Installing ${t} dependencies with ${i}...`);try{await J(i,["install"],{cwd:r}),n.stop(`${t==="dashboard"?"Dashboard":"Storefront"} dependencies installed.`)}catch(s){n.stop(ge.default.yellow(`${i} install failed \u2014 run it manually in apps/${t}/.`)),b.warn(s instanceof Error?s.message:String(s))}}async function hS(e){let t=`http://localhost:${e}/up`,r=Date.now();for(;Date.now()-r<ah;){try{if((await fetch(t)).ok)return}catch{}await new Promise(i=>setTimeout(i,mS))}throw new Error(`Spree did not become healthy within ${ah/1e3}s`)}async function yS(e){let t=await ie("spree:cli:ensure_api_key",e),r=t.match(/pk_[A-Za-z0-9_-]+/);if(!r)throw new Error(`Could not extract API key from Rails output: ${t}`);return r[0]}async function fS(e,t){let{token:r}=await aa(e,t,!0);return r}function gS(e,t){let r=Qt.join(e,"apps","storefront",".env.local");if(!Zt.existsSync(r))return;let i=Zt.readFileSync(r,"utf-8");Zt.writeFileSync(r,i.replace(/SPREE_PUBLISHABLE_KEY=.*/,`SPREE_PUBLISHABLE_KEY=${t}`))}async function _S(e){let t=lS(),r=t==="darwin"?"open":t==="win32"?"start":"xdg-open";try{await ct(`${r} ${e}`,{stdio:"ignore"})}catch{}}function dh(e){e.command("dev").description("Run the app in the foreground \u2014 streams web + worker logs; Ctrl+C stops them").action(async()=>{let t=_();if(Me(t.projectDir)&&(O(["This project uses SPREE_PATH for monorepo development.",`Use ${Ne.default.bold("pnpm server:dev")} from the monorepo root instead of ${Ne.default.bold("spree dev")}.`,"It loads the edge compose overlay and sets SPREE_PATH so the Spree gems resolve to the monorepo source."].join(`
|
|
415
|
+
`)),process.exit(1)),!kr(t.projectDir)&&!da.existsSync(oa(t.projectDir))&&!da.existsSync(Kt(t.projectDir))){let s=_n(t.projectDir)!==void 0;if(!s)try{s=!await Em(t.projectDir)}catch{}if(s){b.info("First run detected \u2014 completing setup automatically."),await pa({sampleData:!0,open:!0});return}}W(["",Ne.default.bold("Admin Dashboard"),` ${Ne.default.cyan(`http://localhost:${t.port}/admin`)}`,` Email: ${yn}`,` Password: ${fn}`,"",Ne.default.bold("Store API"),` ${Ne.default.cyan(`http://localhost:${t.port}/api/v3/store`)}`,""].join(`
|
|
416
|
+
`),"Spree Commerce"),b.info(`Starting services \u2014 web + worker logs stream below. ${Ne.default.bold("Ctrl+C")} stops them (databases keep running; ${Ne.default.bold("spree stop")} shuts everything down).
|
|
417
|
+
`);let r=()=>{};process.on("SIGINT",r);let i;try{if(await lt(t.projectDir),kr(t.projectDir)){let s=bS.join(t.projectDir,"backend/app/assets/builds/spree/admin/application.css");if(!da.existsSync(s)){let o=E();o.start("Compiling admin dashboard stylesheets...");try{await wn(t.projectDir),o.stop("Admin dashboard stylesheets compiled.")}catch{o.stop("Could not compile admin dashboard stylesheets \u2014 admin pages may 500.")}}try{await Pm(t.projectDir),b.info("Watching admin dashboard stylesheets \u2014 edits recompile live.")}catch{}}i=await Z(["up","web","worker"],t.projectDir,{stdio:"inherit",reject:!1})}finally{process.off("SIGINT",r)}let n=i.exitCode??0;n!==0&&n!==130&&(O(`docker compose exited with code ${n} \u2014 see the output above.`),process.exit(n)),Et(`Web + worker stopped. Databases keep running \u2014 ${Ne.default.bold("spree stop")} shuts everything down.`)})}import Lr from"fs";import ua from"path";var me=U(Y(),1);function uh(e){e.command("eject").description("Switch to the dev compose: bind-mount ./backend with hot reload").action(async()=>{let t=_(),r=ua.join(t.projectDir,"backend");Lr.existsSync(r)||(console.error(`
|
|
415
418
|
${me.default.red("Error:")} No backend/ directory found.
|
|
416
|
-
`),process.exit(1));let i=
|
|
419
|
+
`),process.exit(1));let i=ua.join(t.projectDir,"docker-compose.dev.yml");Lr.existsSync(i)||(console.error(`
|
|
417
420
|
${me.default.red("Error:")} No docker-compose.dev.yml found.
|
|
418
|
-
`),process.exit(1));let n=
|
|
421
|
+
`),process.exit(1));let n=Lr.readFileSync(i,"utf-8");n.includes("- .:/rails")&&(n=n.replace("- .:/rails","- ./backend:/rails"),Lr.writeFileSync(i,n)),Lr.writeFileSync(ua.join(t.projectDir,"docker-compose.yml"),n),console.log(`
|
|
419
422
|
${me.default.bold("Switching to dev compose (bind-mounts ./backend)...")}
|
|
420
|
-
`),await
|
|
423
|
+
`),await lt(t.projectDir),await Z(["up","-d"],t.projectDir,{stdio:"inherit"}),console.log(`
|
|
421
424
|
${me.default.bold("Preparing the development database...")}
|
|
422
425
|
`),await F(["bin/rails","db:prepare"],t.projectDir,{tty:!1}),console.log(`
|
|
423
426
|
${me.default.bold("Building admin dashboard stylesheets...")}
|
|
424
|
-
`),await
|
|
425
|
-
`),"Ejected!")})}function
|
|
426
|
-
|
|
427
|
-
`),await fn("web",r.projectDir)})}async function dS(e){let t=`http://localhost:${e}/up`,r=Date.now();for(;Date.now()-r<ih;){try{if((await fetch(t)).ok)return}catch{}await new Promise(i=>setTimeout(i,pS))}throw new Error(`Spree did not become healthy within ${ih/1e3}s`)}async function uS(e){let t=await ie("spree:cli:ensure_api_key",e),r=t.match(/pk_[A-Za-z0-9_-]+/);if(!r)throw new Error(`Could not extract API key from Rails output: ${t}`);return r[0]}async function lS(e,t){let{token:r}=await ra(e,t,!0);return r}function mS(e,t){let r=cS.join(e,"apps","storefront",".env.local");if(!sa.existsSync(r))return;let i=sa.readFileSync(r,"utf-8");sa.writeFileSync(r,i.replace(/SPREE_PUBLISHABLE_KEY=.*/,`SPREE_PUBLISHABLE_KEY=${t}`))}async function hS(e){let t=aS(),r=t==="darwin"?"open":t==="win32"?"start":"xdg-open";try{await at(`${r} ${e}`,{stdio:"ignore"})}catch{}}function sh(e){e.command("logs").description("Stream service logs").argument("[service]","service name (web or worker)","web").action(async t=>{let r=_();await fn(t,r.projectDir)})}var vn=U(Y(),1);function oh(e){e.command("migrate").description("Install pending Spree migrations from gems, then run them (`spree:install:migrations` + `db:migrate`)").argument("[args...]","extra args forwarded to db:migrate").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();console.log(`
|
|
428
|
-
|
|
429
|
-
${vn.default.bold("\u2192 Running db:migrate...")}`),await F(["bin/rails","db:migrate",...t],r.projectDir),W(`Run ${vn.default.bold("spree migrate:status")} to inspect the migration log.`,"Migrations up to date")}),e.command("migrate:rollback").description("Roll back the last migration (`STEP=n` to roll back n steps)").argument("[args...]","extra args forwarded to db:rollback (e.g. STEP=2)").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await F(["bin/rails","db:rollback",...t],r.projectDir)}),e.command("migrate:status").description("Show migration status (`bin/rails db:migrate:status`)").action(async()=>{let t=_();await F(["bin/rails","db:migrate:status"],t.projectDir)})}import{platform as yS}from"os";function ah(e){e.command("open").description("Open the admin dashboard in the browser").action(async()=>{let r=`http://localhost:${_().port}/admin`,i=yS();await at(`${i==="darwin"?"open":i==="win32"?"start":"xdg-open"} ${r}`)})}import aa from"fs";import Zt from"path";import{fileURLToPath as fS}from"url";var z=U(Y(),1);import et from"fs";import Sn from"path";function ph(e){let{src:t,dst:r,vars:i,skip:n,force:s}=e;if(!et.existsSync(t))throw new Error(`Template source not found: ${t}`);if(et.existsSync(r)){if(et.readdirSync(r).length>0&&!s)throw new Error(`Destination ${r} is not empty. Pass force=true to overwrite.`)}else et.mkdirSync(r,{recursive:!0});dh(t,r,"",i,n)}function dh(e,t,r,i,n){let s=Sn.join(e,r);for(let o of et.readdirSync(s,{withFileTypes:!0})){let a=r?`${r}/${o.name}`:o.name;if(n?.(a))continue;let c=uh(oa(o.name,i)),d=Sn.join(e,a);if(o.isDirectory()){let h=r?`${ch(r,i)}/${c}`:c,f=Sn.join(t,h);et.mkdirSync(f,{recursive:!0}),dh(e,t,a,i,n);continue}let p=c.endsWith(".tt"),u=p?c.slice(0,-3):c,l=r?`${ch(r,i)}/${u}`:u,m=Sn.join(t,l);if(p){let h=et.readFileSync(d,"utf8");et.writeFileSync(m,oa(h,i))}else et.copyFileSync(d,m)}}function oa(e,t){return e.replace(/\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g,(r,i)=>Object.hasOwn(t,i)?t[i]:r)}function ch(e,t){return e.split("/").map(r=>uh(oa(r,t))).join("/")}function uh(e){if(e.includes("/")||e.includes("\\")||e==="..")throw new Error(`Template variable produced an unsafe path segment: "${e}"`);return e}var gS="../../templates/plugin",qn=["MIT","Apache-2.0","BSD-3-Clause"];function mh(e){e.command("plugin").description("Scaffold and manage Spree plugins (dashboard + Rails engine)").command("new").description("Scaffold a new Spree plugin monorepo (dashboard plugin half today; Rails engine coming soon)").argument("[name]","Plugin name (e.g. brands). If omitted, you will be prompted.").option("--ruby-name <name>","Ruby gem name (default: spree_<name>)").option("--module-name <name>","Ruby module / TS namespace (default: PascalCase of the gem name)").option("--npm-scope <scope>","npm scope, e.g. @acme (default: unscoped)").option("--author <name>","Author name (default: git config user.name)").option("--author-email <email>","Author email (default: git config user.email)").option("--license <license>",`License: ${qn.join(", ")} (default: MIT)`).option("-y, --yes","Non-interactive: accept the default for every prompt not answered by a flag",!1).option("--no-dashboard","Skip the dashboard plugin half").option("--no-engine","Skip the Rails engine half (currently always skipped \u2014 engine support coming soon)").option("--no-install","Skip running pnpm install").option("--force","Overwrite a non-empty destination directory").action(async(r,i)=>{Xr(z.default.bgCyan(z.default.black(" Spree Plugin Scaffolder ")));let n=await _S(r,i);D(n)&&(O("Scaffolding cancelled."),process.exit(0));let s=Zt.resolve(process.cwd(),n.name);aa.existsSync(s)&&aa.readdirSync(s).length>0&&!i.force&&(O(`Destination ${z.default.bold(s)} is not empty. Choose a different name or rerun with ${z.default.cyan("--force")}.`),process.exit(1));let o=wS(n),a=qS(),c=P();c.start(`Scaffolding ${z.default.cyan(n.name)}...`);try{ph({src:a,dst:s,vars:o,skip:xS(n),force:i.force})}catch(d){c.stop("Scaffolding failed."),b.error(d instanceof Error?d.message:String(d)),process.exit(1)}c.stop(`Created ${z.default.cyan(s)}`),i.install?await kS(s,n):b.info(z.default.dim("Skipping dependency install \u2014 run them yourself when ready.")),vS(n,s,i.install),Ct("Happy hacking!")})}async function _S(e,t){let r=g=>{if(!g)return"Required";if(!/^[a-z][a-z0-9-]*$/.test(g))return'Use lowercase letters, digits, and dashes (e.g. "brands" or "loyalty-points")'};if(e!==void 0){let g=r(e);g&&(b.error(`Invalid plugin name ${z.default.bold(e)}: ${g}`),process.exit(2))}e===void 0&&t.yes&&(b.error("Pass the plugin name as an argument when using --yes: spree plugin new <name> -y"),process.exit(2));let i=e??await ue({message:"Plugin name",placeholder:"brands",validate:r});if(D(i))return i;let n=`spree_${i.replace(/-/g,"_")}`,s=await Xt({flag:"--ruby-name",flagValue:t.rubyName,fallback:n,yes:t.yes,validate:g=>g&&/^[a-z][a-z0-9_]*$/.test(g)?void 0:'Use lowercase letters, digits, and underscores (e.g. "spree_brands")',prompt:()=>ue({message:"Ruby gem name",placeholder:n,initialValue:n,validate:g=>g&&/^[a-z][a-z0-9_]*$/.test(g)?void 0:'Use lowercase letters, digits, and underscores (e.g. "spree_brands")'})});if(D(s))return s;let o=SS(s),a=await Xt({flag:"--module-name",flagValue:t.moduleName,fallback:o,yes:t.yes,validate:g=>g&&/^[A-Z][A-Za-z0-9]*$/.test(g)?void 0:'PascalCase (e.g. "SpreeBrands")',prompt:()=>ue({message:"Ruby module / TS namespace",placeholder:o,initialValue:o,validate:g=>g&&/^[A-Z][A-Za-z0-9]*$/.test(g)?void 0:'PascalCase (e.g. "SpreeBrands")'})});if(D(a))return a;let c=g=>!g||/^@[a-z0-9][a-z0-9-]*$/.test(g)?void 0:"Must start with @ and contain lowercase letters/digits/dashes",d=await Xt({flag:"--npm-scope",flagValue:t.npmScope,fallback:"",yes:t.yes,validate:c,prompt:()=>ue({message:"npm scope (optional, leave blank for unscoped)",placeholder:"@my-org",initialValue:"",validate:c})});if(D(d))return d;let p=t.author===void 0?await lh("user.name"):void 0,u=await Xt({flag:"--author",flagValue:t.author,fallback:p,yes:t.yes,validate:g=>g?void 0:"Required",prompt:()=>ue({message:"Author name",placeholder:"Jane Developer",initialValue:p??"",validate:g=>g?void 0:"Required"})});if(D(u))return u;let l=g=>g&&/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(g)?void 0:"Enter a valid email",m=t.authorEmail===void 0?await lh("user.email"):void 0,h=await Xt({flag:"--author-email",flagValue:t.authorEmail,fallback:m,yes:t.yes,validate:l,prompt:()=>ue({message:"Author email",placeholder:"jane@example.com",initialValue:m??"",validate:l})});if(D(h))return h;let f=g=>g&&qn.includes(g)?void 0:`Must be one of: ${qn.join(", ")}`,x=await Xt({flag:"--license",flagValue:t.license,fallback:"MIT",yes:t.yes,validate:f,prompt:()=>Qr({message:"License",options:qn.map(g=>({value:g,label:g})),initialValue:"MIT"})});if(D(x))return x;let w=t.dashboard===!1?!1:t.yes||await bS("Include dashboard plugin?",!0);if(D(w))return w;let S=!1;return t.engine!==!1&&b.warn("Rails engine generation is coming in a future release. For now, scaffold the dashboard half here and use `spree-extension create` for the Ruby side."),!w&&!S&&(O("Nothing to scaffold (dashboard half declined)."),process.exit(1)),{name:i,rubyName:s,moduleName:a,npmScope:d.trim(),authorName:u,authorEmail:h,license:x,includeDashboard:w,includeEngine:S}}async function bS(e,t){return await Ve({message:e,initialValue:t})}async function Xt(e){if(e.flagValue!==void 0){let t=e.validate(e.flagValue);return t&&(b.error(`Invalid value for ${z.default.cyan(e.flag)}: ${t}`),process.exit(2)),e.flagValue}if(e.yes){let t=e.validate(e.fallback);return(e.fallback===void 0||t)&&(b.error(`--yes could not resolve a default for ${z.default.cyan(e.flag)}`+(t?` (${t})`:"")+` \u2014 pass ${z.default.cyan(e.flag)} explicitly.`),process.exit(2)),e.fallback}return e.prompt()}async function lh(e){try{let{stdout:t}=await at(`git config --get ${e}`);return t.trim()||void 0}catch{return}}function wS(e){let t=e.npmScope?`${e.npmScope}/${e.name}`:e.name;return{name:e.name,plugin_name:e.name,ruby_name:e.rubyName,module_name:e.moduleName,npm_scope:e.npmScope,npm_package_name:t,npm_dashboard_package:e.npmScope?`${e.npmScope}/${e.name}-dashboard`:`${e.name}-dashboard`,author_name:e.authorName,author_email:e.authorEmail,license:e.license,year:String(new Date().getFullYear())}}function xS(e){let t=!e.includeDashboard,r=!e.includeEngine;return i=>!!(t&&(i==="packages/dashboard"||i.startsWith("packages/dashboard/"))||r&&(i==="engine"||i.startsWith("engine/")))}async function kS(e,t){let r=P();if(t.includeDashboard){r.start("Running pnpm install...");try{await at("pnpm install",{cwd:e,stdio:"pipe"}),r.stop("pnpm install complete.")}catch(i){r.stop(z.default.yellow("pnpm install failed \u2014 run it manually.")),b.warn(i instanceof Error?i.message:String(i))}}if(t.includeEngine){r.start("Running bundle install in engine/...");try{await at("bundle install",{cwd:Zt.join(e,"engine"),stdio:"pipe"}),r.stop("bundle install complete.")}catch(i){r.stop(z.default.yellow("bundle install failed \u2014 run it manually.")),b.warn(i instanceof Error?i.message:String(i))}}}function vS(e,t,r){let i=[""];i.push(z.default.bold("Next steps")),i.push(` ${z.default.dim("cd")} ${Zt.relative(process.cwd(),t)||"."}`),r||(e.includeDashboard&&i.push(` ${z.default.dim("pnpm")} install`),e.includeEngine&&i.push(` ${z.default.dim("cd engine && bundle")} install && ${z.default.dim("cd ..")}`)),e.includeDashboard&&(i.push(""),i.push(z.default.bold("Dashboard plugin")),i.push(` Edit ${z.default.cyan("packages/dashboard/src/index.tsx")} to register nav entries and slot widgets.`),i.push(` Add pages as file routes in ${z.default.cyan("packages/dashboard/src/routes/")} \u2014 compiled into the host's typed route tree.`),i.push(` See ${z.default.cyan("https://spreecommerce.org/docs/developer/dashboard/plugins/overview")}`)),e.includeEngine&&(i.push(""),i.push(z.default.bold("Rails engine")),i.push(` Edit ${z.default.cyan(`engine/app/controllers/spree/api/v3/admin/${e.rubyName}_controller.rb`)}`),i.push(` See ${z.default.cyan("https://spreecommerce.org/docs/developer/contributing/creating-an-extension")}`)),i.push(""),W(i.join(`
|
|
430
|
-
`),"Your plugin is scaffolded.")}function SS(e){return e.split(/[_-]/).filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join("")}function qS(){let e=Zt.dirname(fS(import.meta.url)),t=[Zt.resolve(e,gS),Zt.resolve(e,"templates/plugin")];for(let r of t)if(aa.existsSync(r))return r;throw new Error(`Plugin template not found. Looked in:
|
|
427
|
+
`),await wn(t.projectDir),W([`Backend is now bind-mounted from ${me.default.bold("./backend")} \u2014 edits are live.`,"",`The dev stack uses its own ${me.default.bold("spree_development")} database (just`,`created and seeded). Load demo products with ${me.default.bold("spree sample-data")}.`,"","You can now customize:",` ${me.default.dim("backend/app/")} \u2014 models, controllers, services (instant reload)`,` ${me.default.dim("backend/config/")} \u2014 Rails configuration (instant reload)`,` ${me.default.dim("backend/Gemfile")} \u2014 add gems via ${me.default.bold("spree bundle add <gem>")}`,"",`Rebuild only on Dockerfile / .ruby-version changes: ${me.default.bold("spree build")}`].join(`
|
|
428
|
+
`),"Ejected!")})}function lh(e){e.command("exec").description("Run an arbitrary command inside the web container").argument("<command...>","command and arguments to run").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await F(t,r.projectDir)})}var wS=new Set(["migration","controller","scaffold","scaffold_controller","mailer","job","channel","helper","resource","integration_test","system_test","task","generator","benchmark"]);function mh(e){e.command("generate").alias("g").description("Run a generator (Spree generators auto-prefixed; Rails built-ins forwarded as-is)").argument("<name>","generator name (`model`, `model_decorator`, `migration`, \u2026)").argument("[args...]","arguments to pass to the generator").allowUnknownOption(!0).passThroughOptions(!0).action(async(t,r)=>{let i=_(),n=t.includes(":")||wS.has(t)?t:`spree:${t}`;await F(["bin/rails","g",n,...r],i.projectDir)})}function hh(e){e.command("logs").description("Stream service logs").argument("[service]","service name (web or worker)","web").action(async t=>{let r=_();await xn(t,r.projectDir)})}var An=U(Y(),1);function yh(e){e.command("migrate").description("Install pending Spree migrations from gems, then run them (`spree:install:migrations` + `db:migrate`)").argument("[args...]","extra args forwarded to db:migrate").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();console.log(`
|
|
429
|
+
${An.default.bold("\u2192 Installing pending Spree migrations from gems...")}`),await F(["bin/rails","spree:install:migrations"],r.projectDir),console.log(`
|
|
430
|
+
${An.default.bold("\u2192 Running db:migrate...")}`),await F(["bin/rails","db:migrate",...t],r.projectDir),W(`Run ${An.default.bold("spree migrate:status")} to inspect the migration log.`,"Migrations up to date")}),e.command("migrate:rollback").description("Roll back the last migration (`STEP=n` to roll back n steps)").argument("[args...]","extra args forwarded to db:rollback (e.g. STEP=2)").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await F(["bin/rails","db:rollback",...t],r.projectDir)}),e.command("migrate:status").description("Show migration status (`bin/rails db:migrate:status`)").action(async()=>{let t=_();await F(["bin/rails","db:migrate:status"],t.projectDir)})}import{platform as xS}from"os";function fh(e){e.command("open").description("Open the admin dashboard in the browser").action(async()=>{let r=`http://localhost:${_().port}/admin`,i=xS();await ct(`${i==="darwin"?"open":i==="win32"?"start":"xdg-open"} ${r}`)})}import ma from"fs";import tr from"path";import{fileURLToPath as kS}from"url";var z=U(Y(),1);import tt from"fs";import Cn from"path";function _h(e){let{src:t,dst:r,vars:i,skip:n,force:s}=e;if(!tt.existsSync(t))throw new Error(`Template source not found: ${t}`);if(tt.existsSync(r)){if(tt.readdirSync(r).length>0&&!s)throw new Error(`Destination ${r} is not empty. Pass force=true to overwrite.`)}else tt.mkdirSync(r,{recursive:!0});bh(t,r,"",i,n)}function bh(e,t,r,i,n){let s=Cn.join(e,r);for(let o of tt.readdirSync(s,{withFileTypes:!0})){let a=r?`${r}/${o.name}`:o.name;if(n?.(a))continue;let c=wh(la(o.name,i)),d=Cn.join(e,a);if(o.isDirectory()){let h=r?`${gh(r,i)}/${c}`:c,f=Cn.join(t,h);tt.mkdirSync(f,{recursive:!0}),bh(e,t,a,i,n);continue}let p=c.endsWith(".tt"),u=p?c.slice(0,-3):c,l=r?`${gh(r,i)}/${u}`:u,m=Cn.join(t,l);if(p){let h=tt.readFileSync(d,"utf8");tt.writeFileSync(m,la(h,i))}else tt.copyFileSync(d,m)}}function la(e,t){return e.replace(/\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g,(r,i)=>Object.hasOwn(t,i)?t[i]:r)}function gh(e,t){return e.split("/").map(r=>wh(la(r,t))).join("/")}function wh(e){if(e.includes("/")||e.includes("\\")||e==="..")throw new Error(`Template variable produced an unsafe path segment: "${e}"`);return e}var vS="../../templates/plugin",En=["MIT","Apache-2.0","BSD-3-Clause"];function kh(e){e.command("plugin").description("Scaffold and manage Spree plugins (dashboard + Rails engine)").command("new").description("Scaffold a new Spree plugin monorepo (dashboard plugin half today; Rails engine coming soon)").argument("[name]","Plugin name (e.g. brands). If omitted, you will be prompted.").option("--ruby-name <name>","Ruby gem name (default: spree_<name>)").option("--module-name <name>","Ruby module / TS namespace (default: PascalCase of the gem name)").option("--npm-scope <scope>","npm scope, e.g. @acme (default: unscoped)").option("--author <name>","Author name (default: git config user.name)").option("--author-email <email>","Author email (default: git config user.email)").option("--license <license>",`License: ${En.join(", ")} (default: MIT)`).option("-y, --yes","Non-interactive: accept the default for every prompt not answered by a flag",!1).option("--no-dashboard","Skip the dashboard plugin half").option("--no-engine","Skip the Rails engine half (currently always skipped \u2014 engine support coming soon)").option("--no-install","Skip running pnpm install").option("--force","Overwrite a non-empty destination directory").action(async(r,i)=>{ri(z.default.bgCyan(z.default.black(" Spree Plugin Scaffolder ")));let n=await SS(r,i);D(n)&&(O("Scaffolding cancelled."),process.exit(0));let s=tr.resolve(process.cwd(),n.name);ma.existsSync(s)&&ma.readdirSync(s).length>0&&!i.force&&(O(`Destination ${z.default.bold(s)} is not empty. Choose a different name or rerun with ${z.default.cyan("--force")}.`),process.exit(1));let o=$S(n),a=TS(),c=E();c.start(`Scaffolding ${z.default.cyan(n.name)}...`);try{_h({src:a,dst:s,vars:o,skip:AS(n),force:i.force})}catch(d){c.stop("Scaffolding failed."),b.error(d instanceof Error?d.message:String(d)),process.exit(1)}c.stop(`Created ${z.default.cyan(s)}`),i.install?await CS(s,n):b.info(z.default.dim("Skipping dependency install \u2014 run them yourself when ready.")),ES(n,s,i.install),Et("Happy hacking!")})}async function SS(e,t){let r=g=>{if(!g)return"Required";if(!/^[a-z][a-z0-9-]*$/.test(g))return'Use lowercase letters, digits, and dashes (e.g. "brands" or "loyalty-points")'};if(e!==void 0){let g=r(e);g&&(b.error(`Invalid plugin name ${z.default.bold(e)}: ${g}`),process.exit(2))}e===void 0&&t.yes&&(b.error("Pass the plugin name as an argument when using --yes: spree plugin new <name> -y"),process.exit(2));let i=e??await ue({message:"Plugin name",placeholder:"brands",validate:r});if(D(i))return i;let n=`spree_${i.replace(/-/g,"_")}`,s=await er({flag:"--ruby-name",flagValue:t.rubyName,fallback:n,yes:t.yes,validate:g=>g&&/^[a-z][a-z0-9_]*$/.test(g)?void 0:'Use lowercase letters, digits, and underscores (e.g. "spree_brands")',prompt:()=>ue({message:"Ruby gem name",placeholder:n,initialValue:n,validate:g=>g&&/^[a-z][a-z0-9_]*$/.test(g)?void 0:'Use lowercase letters, digits, and underscores (e.g. "spree_brands")'})});if(D(s))return s;let o=PS(s),a=await er({flag:"--module-name",flagValue:t.moduleName,fallback:o,yes:t.yes,validate:g=>g&&/^[A-Z][A-Za-z0-9]*$/.test(g)?void 0:'PascalCase (e.g. "SpreeBrands")',prompt:()=>ue({message:"Ruby module / TS namespace",placeholder:o,initialValue:o,validate:g=>g&&/^[A-Z][A-Za-z0-9]*$/.test(g)?void 0:'PascalCase (e.g. "SpreeBrands")'})});if(D(a))return a;let c=g=>!g||/^@[a-z0-9][a-z0-9-]*$/.test(g)?void 0:"Must start with @ and contain lowercase letters/digits/dashes",d=await er({flag:"--npm-scope",flagValue:t.npmScope,fallback:"",yes:t.yes,validate:c,prompt:()=>ue({message:"npm scope (optional, leave blank for unscoped)",placeholder:"@my-org",initialValue:"",validate:c})});if(D(d))return d;let p=t.author===void 0?await xh("user.name"):void 0,u=await er({flag:"--author",flagValue:t.author,fallback:p,yes:t.yes,validate:g=>g?void 0:"Required",prompt:()=>ue({message:"Author name",placeholder:"Jane Developer",initialValue:p??"",validate:g=>g?void 0:"Required"})});if(D(u))return u;let l=g=>g&&/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(g)?void 0:"Enter a valid email",m=t.authorEmail===void 0?await xh("user.email"):void 0,h=await er({flag:"--author-email",flagValue:t.authorEmail,fallback:m,yes:t.yes,validate:l,prompt:()=>ue({message:"Author email",placeholder:"jane@example.com",initialValue:m??"",validate:l})});if(D(h))return h;let f=g=>g&&En.includes(g)?void 0:`Must be one of: ${En.join(", ")}`,x=await er({flag:"--license",flagValue:t.license,fallback:"MIT",yes:t.yes,validate:f,prompt:()=>ni({message:"License",options:En.map(g=>({value:g,label:g})),initialValue:"MIT"})});if(D(x))return x;let w=t.dashboard===!1?!1:t.yes||await qS("Include dashboard plugin?",!0);if(D(w))return w;let S=!1;return t.engine!==!1&&b.warn("Rails engine generation is coming in a future release. For now, scaffold the dashboard half here and use `spree-extension create` for the Ruby side."),!w&&!S&&(O("Nothing to scaffold (dashboard half declined)."),process.exit(1)),{name:i,rubyName:s,moduleName:a,npmScope:d.trim(),authorName:u,authorEmail:h,license:x,includeDashboard:w,includeEngine:S}}async function qS(e,t){return await Ke({message:e,initialValue:t})}async function er(e){if(e.flagValue!==void 0){let t=e.validate(e.flagValue);return t&&(b.error(`Invalid value for ${z.default.cyan(e.flag)}: ${t}`),process.exit(2)),e.flagValue}if(e.yes){let t=e.validate(e.fallback);return(e.fallback===void 0||t)&&(b.error(`--yes could not resolve a default for ${z.default.cyan(e.flag)}`+(t?` (${t})`:"")+` \u2014 pass ${z.default.cyan(e.flag)} explicitly.`),process.exit(2)),e.fallback}return e.prompt()}async function xh(e){try{let{stdout:t}=await ct(`git config --get ${e}`);return t.trim()||void 0}catch{return}}function $S(e){let t=e.npmScope?`${e.npmScope}/${e.name}`:e.name;return{name:e.name,plugin_name:e.name,ruby_name:e.rubyName,module_name:e.moduleName,npm_scope:e.npmScope,npm_package_name:t,npm_dashboard_package:e.npmScope?`${e.npmScope}/${e.name}-dashboard`:`${e.name}-dashboard`,author_name:e.authorName,author_email:e.authorEmail,license:e.license,year:String(new Date().getFullYear())}}function AS(e){let t=!e.includeDashboard,r=!e.includeEngine;return i=>!!(t&&(i==="packages/dashboard"||i.startsWith("packages/dashboard/"))||r&&(i==="engine"||i.startsWith("engine/")))}async function CS(e,t){let r=E();if(t.includeDashboard){r.start("Running pnpm install...");try{await ct("pnpm install",{cwd:e,stdio:"pipe"}),r.stop("pnpm install complete.")}catch(i){r.stop(z.default.yellow("pnpm install failed \u2014 run it manually.")),b.warn(i instanceof Error?i.message:String(i))}}if(t.includeEngine){r.start("Running bundle install in engine/...");try{await ct("bundle install",{cwd:tr.join(e,"engine"),stdio:"pipe"}),r.stop("bundle install complete.")}catch(i){r.stop(z.default.yellow("bundle install failed \u2014 run it manually.")),b.warn(i instanceof Error?i.message:String(i))}}}function ES(e,t,r){let i=[""];i.push(z.default.bold("Next steps")),i.push(` ${z.default.dim("cd")} ${tr.relative(process.cwd(),t)||"."}`),r||(e.includeDashboard&&i.push(` ${z.default.dim("pnpm")} install`),e.includeEngine&&i.push(` ${z.default.dim("cd engine && bundle")} install && ${z.default.dim("cd ..")}`)),e.includeDashboard&&(i.push(""),i.push(z.default.bold("Dashboard plugin")),i.push(` Edit ${z.default.cyan("packages/dashboard/src/index.tsx")} to register nav entries and slot widgets.`),i.push(` Add pages as file routes in ${z.default.cyan("packages/dashboard/src/routes/")} \u2014 compiled into the host's typed route tree.`),i.push(` See ${z.default.cyan("https://spreecommerce.org/docs/developer/dashboard/plugins/overview")}`)),e.includeEngine&&(i.push(""),i.push(z.default.bold("Rails engine")),i.push(` Edit ${z.default.cyan(`engine/app/controllers/spree/api/v3/admin/${e.rubyName}_controller.rb`)}`),i.push(` See ${z.default.cyan("https://spreecommerce.org/docs/developer/contributing/creating-an-extension")}`)),i.push(""),W(i.join(`
|
|
431
|
+
`),"Your plugin is scaffolded.")}function PS(e){return e.split(/[_-]/).filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join("")}function TS(){let e=tr.dirname(kS(import.meta.url)),t=[tr.resolve(e,vS),tr.resolve(e,"templates/plugin")];for(let r of t)if(ma.existsSync(r))return r;throw new Error(`Plugin template not found. Looked in:
|
|
431
432
|
${t.join(`
|
|
432
433
|
`)}
|
|
433
434
|
|
|
434
|
-
Reinstall @spree/cli to fix.`)}function
|
|
435
|
-
`)),process.exit(1)};
|
|
436
|
-
`)[0])}`,"",`Run ${pe.default.bold("spree upgrade")} from your project root (the directory holding the`,".env with SECRET_KEY_BASE), and make sure Docker is running."])}r||t(["The web container is not running.",`Upgrade runs migrations and the ${pe.default.bold("spree:upgrade")} rake against your live`,`database, so the stack must be up. Start it with ${pe.default.bold("spree dev")}, then`,"re-run `spree upgrade`."])}async function
|
|
435
|
+
Reinstall @spree/cli to fix.`)}function vh(e){e.command("rails").description("Run a Rails command (`bin/rails \u2026`) inside the web container").argument("<args...>","arguments to pass to bin/rails").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await F(["bin/rails",...t],r.projectDir)})}function Sh(e){e.command("rake").description("Run a rake task (`bin/rake \u2026`) inside the web container").argument("<args...>","task name and arguments").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await F(["bin/rake",...t],r.projectDir)})}function qh(e){e.command("restart").description("Restart web + worker in place (does not reload Gemfile or compose changes)").action(async()=>{let t=_(),r=E();r.start("Restarting web + worker...");try{await Z(["restart","web","worker"],t.projectDir),r.stop("Services restarted.")}catch(i){throw r.stop("Restart failed."),i}})}function $h(e){e.command("routes").description("Show Rails routes (`bin/rails routes`)").argument("[args...]","arguments to pass to bin/rails routes").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await F(["bin/rails","routes",...t],r.projectDir)})}function Ah(e){e.command("rspec").description("Run RSpec tests (`bundle exec rspec \u2026`) inside the web container").argument("[args...]","files, line numbers, and flags to pass to rspec").allowUnknownOption(!0).passThroughOptions(!0).action(async t=>{let r=_();await mt(["bundle","exec","rspec",...t],r.projectDir,{env:{RAILS_ENV:"test"},edgeHint:"then re-run spree rspec"})})}function Ch(e){e.command("sample-data").description("Load sample data (products, categories, images)").action(async()=>{let t=_(),r=E();r.start("Loading sample data..."),await ie("spree:load_sample_data",t.projectDir),r.stop("Sample data loaded.")})}function Eh(e){e.command("seed").description("Seed the database").action(async()=>{let t=_(),r=E();r.start("Seeding database..."),await ie("db:seed",t.projectDir),r.stop("Database seeded.")})}function Ph(e){e.command("shell").alias("bash").description("Open an interactive bash shell inside the web container").action(async()=>{let t=_();await mt(["bash"],t.projectDir,{edgeHint:"then open the shell"})})}function Th(e){e.command("stop").description("Stop services").action(async()=>{let t=_(),r=E();r.start("Stopping services..."),await Z(["stop"],t.projectDir),r.stop("Services stopped.")})}function Ih(e){e.command("task").description("Run a Spree rake task (auto-prefixes `spree:`)").argument("<name>","task name (without `spree:` prefix)").argument("[args...]","arguments to pass to the task").allowUnknownOption(!0).passThroughOptions(!0).action(async(t,r)=>{let i=_();await F(["bin/rake",`spree:${t}`,...r],i.projectDir)})}function Rh(e){e.command("update").description("Pull latest image and recreate containers").action(async()=>{let t=_();b.step("Pulling latest images..."),await Z(["pull"],t.projectDir,{stdio:"inherit"});let r=E();r.start("Recreating containers..."),await lt(t.projectDir,{stdio:"ignore"}),await Z(["up","-d"],t.projectDir),r.stop("Containers recreated."),b.success("Update complete! Migrations will run automatically on startup."),b.info("Run `spree logs` to follow the startup progress.")})}import Oh from"fs";import IS from"path";var pe=U(Y(),1);function jh(e){e.command("upgrade").description("Walk through a Spree version upgrade (bundle + migrate + spree:upgrade)").option("--plan","print the plan via spree:upgrade DRY_RUN=1; skip bundle + migrate").option("--step <id>","run a single rake step by id (skips bundle + migrate)").option("--to <version>","explicit target version (auto-detected from installed gem otherwise)").option("--yes","skip prompts on automated steps").action(async t=>{let r=_();await RS(r.projectDir),t.plan||t.step||(await OS(r.projectDir,t),await DS(r.projectDir,t)),await LS(r.projectDir,t),t.plan||FS(r.projectDir)})}async function RS(e){let t=i=>{O(i.join(`
|
|
436
|
+
`)),process.exit(1)};Me(e)&&t(["This is a monorepo edge project (SPREE_PATH set in .env).",`Run the upgrade from the monorepo root with ${pe.default.bold("pnpm server:*")} \u2014 the`,"project-local docker-compose.yml is not the running config here."]);let r;try{r=await $t("web",e)}catch(i){return t(["Could not inspect the Docker stack from this directory.",` ${pe.default.dim(String(i.message).split(`
|
|
437
|
+
`)[0])}`,"",`Run ${pe.default.bold("spree upgrade")} from your project root (the directory holding the`,".env with SECRET_KEY_BASE), and make sure Docker is running."])}r||t(["The web container is not running.",`Upgrade runs migrations and the ${pe.default.bold("spree:upgrade")} rake against your live`,`database, so the stack must be up. Start it with ${pe.default.bold("spree dev")}, then`,"re-run `spree upgrade`."])}async function OS(e,t){if(!t.yes){let i=await Ke({message:"Run `bundle update` to bump Spree gems?",initialValue:!0});if(D(i)&&(O("Upgrade aborted."),process.exit(0)),!i){b.info("Skipping `bundle update`.");return}}let r=await jS(e);if(r.length===0)throw new Error('No Spree gems detected in Gemfile.lock. Confirm the project has `gem "spree"` (or `spree_core`/`spree_admin`) in its Gemfile.');b.step(pe.default.bold(`bundle update ${r.join(" ")}`)),await F(["bundle","update",...r],e)}async function jS(e){try{let{stdout:t}=await J("docker",["compose","exec","-T","web","sh","-c","bundle list --name-only | grep '^spree'"],{cwd:e});return t.split(`
|
|
437
438
|
`).map(r=>r.trim()).filter(r=>r.length>0&&r.startsWith("spree"))}catch(t){let r=t;if(r.exitCode===1&&!r.stderr?.trim())return[];throw new Error("Could not list gems in the web container \u2014 the bundle looks out of sync.\nRun `spree bundle install` first, then re-run `spree upgrade`."+(r.stderr?.trim()?`
|
|
438
439
|
|
|
439
|
-
${r.stderr.trim()}`:""))}}async function
|
|
440
|
-
`),"Next steps")}var
|
|
441
|
-
${
|
|
442
|
-
`),process.exit(t)}}
|
|
440
|
+
${r.stderr.trim()}`:""))}}async function DS(e,t){if(!t.yes){let r=await Ke({message:"Install + run pending migrations?",initialValue:!0});if(D(r)&&(O("Upgrade aborted."),process.exit(0)),!r){b.info("Skipping migrations.");return}}b.step(pe.default.bold("spree:install:migrations + db:migrate")),await F(["bin/rails","spree:install:migrations","db:migrate"],e)}async function LS(e,t){let r={};t.plan&&(r.DRY_RUN="1"),t.step&&(r.STEP=t.step),t.to&&(r.TO=t.to),b.step(pe.default.bold("spree:upgrade")),await F(["bin/rake","spree:upgrade"],e,{env:r})}function MS(e){let t="Update @spree/sdk in any storefront or integration consuming the API",r=IS.join(e,"apps","storefront","package.json");if(!Oh.existsSync(r))return t;try{let i=JSON.parse(Oh.readFileSync(r,"utf-8")),n=i.dependencies?.["@spree/sdk"]??i.devDependencies?.["@spree/sdk"];return n?`Update @spree/sdk in apps/storefront (currently ${n}) to the release matching the new Spree version`:t}catch{return t}}function FS(e){W([`The manifest only ran ${pe.default.bold("rake-automatable")} steps.`,"","Don't forget the manual parts from the upgrade doc:",` ${pe.default.dim("- Schedule Spree::StockReservations::ExpireJob (cron)")}`,` ${pe.default.dim(`- ${MS(e)}`)}`,` ${pe.default.dim("- Review behavior changes (cart, availability, payment-method types)")}`,` ${pe.default.dim("- Audit custom decorators against renamed APIs")}`,"",`Full checklist: ${pe.default.cyan("https://spreecommerce.org/docs/developer/upgrades")}`].join(`
|
|
441
|
+
`),"Next steps")}var Dh=U(Y(),1);function Lh(e){e.command("user").description("Manage admin users").command("create").description("Create an admin user").option("--email <email>","admin email").option("--password <password>","admin password").action(async r=>{let i=_(),n=r.email,s=r.password;if(!n){let a=await ue({message:"Admin email:",placeholder:"admin@example.com",validate(c){if(!c)return"Email is required";if(!c.includes("@"))return"Invalid email"}});D(a)&&(O("Cancelled."),process.exit(0)),n=a}if(!s){let a=await ii({message:"Admin password:",validate(c){if(!c||c.length<6)return"Password must be at least 6 characters"}});D(a)&&(O("Cancelled."),process.exit(0)),s=a}let o=E();o.start("Creating admin user..."),await ie("spree:cli:create_admin",i.projectDir,{EMAIL:n,PASSWORD:s}),o.stop("Admin user created."),b.success(`Email: ${Dh.default.cyan(n)}`)})}import{createRequire as BS}from"module";var US=BS(import.meta.url),Mh=US("../package.json").version;var T=new Ca().name("spree").description("CLI for managing Spree Commerce projects").version(Mh).enablePositionalOptions().showSuggestionAfterError(!0).showHelpAfterError("(run `spree --help` for usage)").exitOverride(e=>{(e.code.startsWith("commander.help")||e.code==="commander.version")&&process.exit(0),process.exit(2)});ph(T);sm(T);dh(T);Th(T);qh(T);Rh(T);hh(T);uh(T);eh(T);mh(T);yh(T);oh(T);$h(T);jh(T);lh(T);vh(T);th(T);Sh(T);Ih(T);Ah(T);sh(T);Ph(T);Lh(T);Xm(T);fh(T);Eh(T);Ch(T);kh(T);Ym(T);Qm(T);nh(T);async function NS(){try{await T.parseAsync()}catch(e){e instanceof Error&&"code"in e&&(e.code==="commander.helpDisplayed"||e.code==="commander.version")&&process.exit(0),e instanceof Error&&"code"in e&&String(e.code).startsWith("commander.")&&process.exit(2);let t=e instanceof Error&&e.constructor.name==="CredentialError"?2:1,r=e instanceof Error?e.message:"An unexpected error occurred.";console.error(`
|
|
442
|
+
${Fh.default.red("Error:")} ${r}
|
|
443
|
+
`),process.exit(t)}}NS();
|