@pixpilot/scaffoldfy 0.38.0 → 0.40.0

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.
@@ -1,26 +0,0 @@
1
- const e=require(`./chunk-DjWAcSYV.cjs`),t=require(`./config-inheritance-CtSb5haE.cjs`),n=require(`./config-CQ-mWBG5.cjs`);let r=require(`node:fs`);r=e.t(r);let i=require(`node:path`);i=e.t(i);let a=require(`node:process`);a=e.t(a);let o=require(`node:util`);o=e.t(o);let s=require(`node:child_process`);s=e.t(s);let c=require(`@inquirer/prompts`);c=e.t(c);let l=require(`case-anything`);l=e.t(l);var u=class e extends t.M{constructor(e,t){super(e,`TASK_NOT_FOUND`),this.taskId=t,this.name=`TaskNotFoundError`}static forId(t){return new e(`Task not found: ${t}`,t)}},d=class e extends t.M{constructor(e,t,n){super(e,`PROMPT_VALIDATION_ERROR`),this.promptId=t,this.reason=n,this.name=`PromptValidationError`}static required(t){return new e(`Prompt "${t}" is required`,t,`required`)}static unknownType(t){return new e(`Unknown prompt type: ${t}`,t,`unknown_type`)}},f=class e extends t.M{constructor(e,t,n){super(e,`PLUGIN_CONFIGURATION_ERROR`),this.pluginType=t,this.configIssue=n,this.name=`PluginConfigurationError`}static templateMissingTemplateOrFile(){return new e(`Template task requires either "template" (inline) or "templateFile" (file path) to be specified`,`template`,`missing_template_or_file`)}static templateHasBothTemplateAndFile(){return new e(`Template task cannot have both "template" and "templateFile" specified. Use one or the other.`,`template`,`both_template_and_file`)}static createMissingTemplateOrFile(){return new e(`Create task requires either "template" (inline) or "templateFile" (file path) to be specified`,`create`,`missing_template_or_file`)}static createHasBothTemplateAndFile(){return new e(`Create task cannot have both "template" and "templateFile" specified. Use one or the other.`,`create`,`both_template_and_file`)}},p=class e extends t.M{constructor(e,t,n){super(e,`TRANSFORMER_ERROR`),this.transformerId=t,this.reason=n,this.name=`TransformerError`}static notFound(t){return new e(`Transformer "${t}" not found`,t,`not_found`)}static executionFailed(t,n){return new e(`Transformer "${t}" execution failed: ${n}`,t,`execution_failed`)}static invalidType(t,n){return new e(`Invalid transformer type "${n}" for transformer "${t}"`,t,`invalid_type`)}};function m(e){return e.template!=null&&e.template!==``}function h(e){return e.templateFile!=null&&e.templateFile!==``}function g(e){return e.endsWith(`.hbs`)}function _(e){let t=m(e),n=h(e);return!t&&!n?{isValid:!1,hasInlineTemplate:t,hasTemplateFile:n,error:`Template configuration requires either "template" (inline) or "templateFile" (file path) to be specified`}:t&&n?{isValid:!1,hasInlineTemplate:t,hasTemplateFile:n,error:`Template configuration cannot have both "template" and "templateFile" specified. Use one or the other.`}:{isValid:!0,hasInlineTemplate:t,hasTemplateFile:n}}async function v(e,n,r,i={}){let{enableHandlebars:a=!0,sourceUrl:o=r?.$sourceUrl}=i,s=m(e),c=h(e);if(s)return t.s(e.template,n);if(c){let r=e.templateFile,i=a&&g(r),s=await t.n(t.f(r,o));return i?(await import(`handlebars`)).default.compile(s)(n):t.s(s,n)}throw Error(`No template content available`)}function ee(e){return m(e)?`inline template`:h(e)?`template file: ${e.templateFile}`:`no template source`}const y=(0,o.promisify)(r.default.readFile),te=2,ne=10,re=55,b={reset:`\x1B[0m`,red:`\x1B[31m`,green:`\x1B[32m`,yellow:`\x1B[33m`,blue:`\x1B[34m`,cyan:`\x1B[36m`,gray:`\x1B[90m`};function x(e,t){switch(t){case`add`:return`${b.green}+ ${e}${b.reset}`;case`remove`:return`${b.red}- ${e}${b.reset}`;case`context`:return`${b.gray} ${e}${b.reset}`;default:return e}}function S(e,t){let n=e.split(`
2
- `),r=t.split(`
3
- `),i=[],a=Math.max(n.length,r.length);for(let e=0;e<a;e++){let t=n[e],a=r[e];t===a?t!==void 0&&i.push(x(t,`context`)):(t!==void 0&&i.push(x(t,`remove`)),a!==void 0&&i.push(x(a,`add`)))}return i}async function C(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=i.default.join(a.default.cwd(),e.file);if(!r.default.existsSync(o))return`${b.red}✗ File not found: ${e.file}${b.reset}`;try{let r=await y(o,`utf-8`),i=JSON.parse(r),a={...i};function s(e){if(typeof e==`string`)return t.s(e,n);if(Array.isArray(e))return e.map(e=>s(e));if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e))t[n]=s(r);return t}return e}for(let[n,r]of Object.entries(e.updates)){let e=s(r);n.includes(`.`)?t.m(i,n,e):i[n]=e}let c=JSON.stringify(a,null,2),l=JSON.stringify(i,null,2);if(c===l)return`${b.cyan}→ No changes${b.reset}`;let u=S(c,l);return`${b.blue}File: ${e.file}${b.reset}\n${u.join(`
4
- `)}`}catch(e){return`${b.red}✗ Error: ${e instanceof Error?e.message:String(e)}${b.reset}`}}async function ie(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;if(e.template==null||e.template===``)return`${b.red}✗ No template content provided for file: ${e.file}${b.reset}`;let o=i.default.join(a.default.cwd(),e.file),s=t.s(e.template,n);if(!r.default.existsSync(o)){let t=s.split(`
5
- `).slice(0,10).join(`
6
- `),n=s.split(`
7
- `).length>10;return`${b.blue}File: ${e.file}${b.reset}\n${b.green}+ New file would be created${b.reset}\n${b.gray}Content preview:${b.reset}\n${t}${n?`
8
- ...`:``}`}try{let t=await y(o,`utf-8`);if(t===s)return`${b.cyan}→ No changes${b.reset}`;let n=S(t,s);return`${b.blue}File: ${e.file}${b.reset}\n${n.join(`
9
- `)}`}catch(e){return`${b.red}✗ Error: ${e instanceof Error?e.message:String(e)}${b.reset}`}}async function ae(e,n,o){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let s=i.default.join(a.default.cwd(),e.file);if(r.default.existsSync(s))return`${b.cyan}→ File already exists, would be skipped: ${e.file}${b.reset}`;try{if(m(e)){let t=await v(e,n,o),r=t.split(`
10
- `).slice(0,10).join(`
11
- `),i=t.split(`
12
- `).length>10;return`${b.blue}File: ${e.file}${b.reset}\n${b.green}+ New file would be created${b.reset}\n${b.gray}Content preview:${b.reset}\n${r}${i?`
13
- ...`:``}`}let t=ee(e);return`${b.blue}File: ${e.file}${b.reset}\n${b.green}+ New file would be created from ${t}${b.reset}`}catch(e){return`${b.red}✗ Error: ${e instanceof Error?e.message:String(e)}${b.reset}`}}async function w(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=i.default.join(a.default.cwd(),e.file);if(!r.default.existsSync(o))return`${b.red}✗ File not found: ${e.file}${b.reset}`;try{let r=await y(o,`utf-8`),i=new RegExp(e.pattern,e.flags??`g`),a=t.s(e.replacement,n),s=r.replace(i,a);if(r===s)return`${b.cyan}→ No matches found${b.reset}`;let c=S(r,s);return`${b.blue}File: ${e.file}${b.reset}\n${c.join(`
14
- `)}`}catch(e){return`${b.red}✗ Error: ${e instanceof Error?e.message:String(e)}${b.reset}`}}async function T(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=i.default.join(a.default.cwd(),e.file);if(!r.default.existsSync(o))return`${b.red}✗ File not found: ${e.file}${b.reset}`;try{let r=await y(o,`utf-8`),i=r;for(let{find:i,replace:a}of e.replacements){let e=t.s(i,n),o=t.s(a,n);r=r.replace(e,o)}if(i===r)return`${b.cyan}→ No changes${b.reset}`;let a=S(i,r);return`${b.blue}File: ${e.file}${b.reset}\n${a.join(`
15
- `)}`}catch(e){return`${b.red}✗ Error: ${e instanceof Error?e.message:String(e)}${b.reset}`}}function E(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=e.paths.map(e=>t.s(e,n)).filter(e=>r.default.existsSync(i.default.join(a.default.cwd(),e)));return o.length===0?`${b.cyan}→ No files/directories to delete${b.reset}`:`${b.red}Would delete:${b.reset}\n${o.map(e=>`${b.red} - ${e}${b.reset}`).join(`
16
- `)}`}function D(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=t.s(e.from,n),s=t.s(e.to,n),c=i.default.join(a.default.cwd(),o),l=i.default.join(a.default.cwd(),s);return r.default.existsSync(c)?r.default.existsSync(l)?`${b.yellow}⚠ Destination already exists: ${s}${b.reset}\n${b.cyan}Would rename: ${o} → ${s}${b.reset}`:`${b.cyan}Would rename: ${o} → ${s}${b.reset}`:`${b.red}✗ Source not found: ${o}${b.reset}`}function oe(e){if(e.condition!=null&&e.condition!==``)return`${b.yellow}⊘ Condition check skipped in dry-run${b.reset}`;let t=i.default.join(a.default.cwd(),`.git`),n=r.default.existsSync(t),o=[];if(e.removeExisting&&n&&o.push(`${b.red}Would remove existing .git directory${b.reset}`),o.push(`${b.green}Would initialize git repository${b.reset}`),e.initialCommit){let t=e.message??`Initial commit`;o.push(`${b.green}Would create initial commit: "${t}"${b.reset}`)}return o.join(`
17
- `)}function O(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let r=t.s(e.command,n),i=e.cwd==null?a.default.cwd():t.s(e.cwd,n);return`${b.yellow}Would execute:${b.reset}\n${b.cyan} Command: ${r}${b.reset}\n${b.cyan} Working directory: ${i}${b.reset}`}function se(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=t.s(e.from,n),s=t.s(e.to,n),c=i.default.join(a.default.cwd(),o),l=i.default.join(a.default.cwd(),s);return r.default.existsSync(c)?r.default.existsSync(l)?`${b.yellow}⚠ Destination already exists: ${s}${b.reset}\n${b.cyan}Would move: ${o} → ${s}${b.reset}`:`${b.cyan}Would move: ${o} → ${s}${b.reset}`:`${b.red}✗ Source not found: ${o}${b.reset}`}function ce(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=t.s(e.from,n),s=t.s(e.to,n),c=i.default.join(a.default.cwd(),o),l=i.default.join(a.default.cwd(),s);if(!r.default.existsSync(c))return`${b.red}✗ Source not found: ${o}${b.reset}`;let u=r.default.statSync(c).isDirectory()?`directory`:`file`;return r.default.existsSync(l)?`${b.yellow}⚠ Destination already exists: ${s}${b.reset}\n${b.cyan}Would copy ${u}: ${o} → ${s}${b.reset}`:`${b.cyan}Would copy ${u}: ${o} → ${s}${b.reset}`}async function le(e,n,o){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let s=i.default.join(a.default.cwd(),e.file),c={};e.content==null?e.template!=null&&(c.template=e.template):c.template=e.content,e.templateFile!=null&&(c.templateFile=e.templateFile);try{let t=await v(c,n,o),i=t.split(`
18
- `).slice(0,10).join(`
19
- `),a=t.split(`
20
- `).length>10;return r.default.existsSync(s)?`${b.blue}File: ${e.file}${b.reset}\n${b.green}+ Would append content${b.reset}\n${b.gray}Content preview:${b.reset}\n${i}${a?`
21
- ...`:``}`:`${b.blue}File: ${e.file}${b.reset}\n${b.green}+ New file would be created with content${b.reset}\n${b.gray}Content preview:${b.reset}\n${i}${a?`
22
- ...`:``}`}catch(e){return`${b.red}✗ Error: ${e instanceof Error?e.message:String(e)}${b.reset}`}}function ue(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n))return`${b.yellow}⊘ Condition not met - task would be skipped${b.reset}`;let o=t.s(e.path,n),s=i.default.join(a.default.cwd(),o);return r.default.existsSync(s)?`${b.cyan}→ Directory already exists: ${o}${b.reset}`:`${b.green}+ Would create directory: ${o}${b.reset}`}async function k(e,t){try{switch(e.type){case`update-json`:return await C(e.config,t);case`write`:return await ie(e.config,t);case`create`:return await ae(e.config,t,e);case`regex-replace`:return await w(e.config,t);case`replace-in-file`:return await T(e.config,t);case`delete`:return E(e.config,t);case`rename`:return D(e.config,t);case`move`:return se(e.config,t);case`copy`:return ce(e.config,t);case`append`:return await le(e.config,t,e);case`mkdir`:return ue(e.config,t);case`git-init`:return oe(e.config);case`exec`:return O(e.config,t);case`exec-file`:return O(e.config,t);default:{let t=e.type;return`${b.yellow}⚠ Diff not available for task type: ${t}${b.reset}`}}}catch(e){return`${b.red}✗ Error generating diff: ${e instanceof Error?e.message:String(e)}${b.reset}`}}async function A(e,t){console.log(`${b.blue}═══════════════════════════════════════════════════════${b.reset}`),console.log(`${b.blue} DRY RUN - Preview of changes${b.reset}`),console.log(`${b.blue}═══════════════════════════════════════════════════════${b.reset}`);for(let n of e){console.log(`${b.cyan}▶ Task: ${n.name}${b.reset}`),n.description!=null&&n.description!==``&&console.log(`${b.gray} ${n.description}${b.reset}`);let e=await k(n,t);console.log(e),console.log(`${b.gray}${`─`.repeat(55)}${b.reset}`)}console.log(`${b.blue}═══════════════════════════════════════════════════════${b.reset}`),console.log(`${b.yellow} No changes were applied (dry-run mode)${b.reset}`),console.log(`${b.blue}═══════════════════════════════════════════════════════${b.reset}`)}const j=new Map,M={},N=new Map;function P(e){if(e.name==null||e.name===``)throw TypeError(`Plugin name is required`);if(!Array.isArray(e.taskTypes)||e.taskTypes.length===0)throw TypeError(`Plugin ${e.name} must define at least one task type`);if(typeof e.execute!=`function`)throw TypeError(`Plugin ${e.name} must provide an execute function`);if(j.has(e.name))throw TypeError(`Plugin ${e.name} is already registered`);for(let t of e.taskTypes)if(N.has(t)){let e=N.get(t);throw TypeError(`Task type "${t}" is already registered by plugin "${e}"`)}j.set(e.name,e);for(let t of e.taskTypes)N.set(t,e.name);t.T(`Registered plugin: ${e.name}${e.version==null?``:` v${e.version}`}`)}function de(e){let t=j.get(e);if(t!=null){for(let e of t.taskTypes)N.delete(e);j.delete(e)}}function fe(e){return j.get(e)}function F(e){let t=N.get(e);if(t!=null)return j.get(t)}function I(e){return N.has(e)}function pe(){return Array.from(j.keys())}function me(){j.clear(),N.clear()}function he(e){e.beforeAll!=null&&(M.beforeAll=e.beforeAll),e.afterAll!=null&&(M.afterAll=e.afterAll),e.beforeTask!=null&&(M.beforeTask=e.beforeTask),e.afterTask!=null&&(M.afterTask=e.afterTask),e.onError!=null&&(M.onError=e.onError)}async function L(e,...n){let r=M[e];if(r!=null)try{e===`beforeAll`||e===`afterAll`?await r(n[0]):(e===`beforeTask`||e===`afterTask`||e===`onError`)&&await r(n[0],n[1])}catch(n){t.O(`Error in ${e} hook: ${n instanceof Error?n.message:String(n)}`,`error`)}}async function R(e,t,n){let r=F(e.type);if(r==null)throw TypeError(`No plugin found for task type: ${e.type}`);await r.execute(e,t,n)}function ge(e,t,n,r){return{name:e,...r?.version!=null&&{version:r.version},taskTypes:[t],execute:n,...r?.getDiff!=null&&{getDiff:r.getDiff},...r?.validate!=null&&{validate:r.validate}}}var _e=class{transformers=new Map;constructor(){this.registerBuiltInTransformers()}registerBuiltInTransformers(){for(let e of[{id:`lowercase`,type:`lowercase`},{id:`uppercase`,type:`uppercase`},{id:`trim`,type:`trim`},{id:`slugify`,type:`slugify`},{id:`capitalize`,type:`capitalize`},{id:`titlecase`,type:`titlecase`},{id:`camelcase`,type:`camelcase`},{id:`pascalcase`,type:`pascalcase`},{id:`snakecase`,type:`snakecase`},{id:`kebabcase`,type:`kebabcase`},{id:`constantcase`,type:`constantcase`},{id:`alphanumeric`,type:`alphanumeric`},{id:`collapse-spaces`,type:`collapse-spaces`},{id:`remove-spaces`,type:`remove-spaces`},{id:`urlencode`,type:`urlencode`},{id:`dasherize`,type:`dasherize`},{id:`underscore`,type:`underscore`}])this.transformers.set(e.id,e)}register(e){this.transformers.has(e.id)&&t.O(`Transformer with id "${e.id}" is already registered. Overwriting.`,`warn`),this.transformers.set(e.id,e)}registerAll(e){for(let t of e)this.register(t)}get(e){return this.transformers.get(e)}has(e){return this.transformers.has(e)}async execute(e,t,n={}){let r=this.transformers.get(e);if(!r)throw p.notFound(e);try{return await this.executeTransformer(r,t,n)}catch(t){throw t instanceof p?t:p.executionFailed(e,t instanceof Error?t.message:String(t))}}async executeChain(e,t,n={}){let r=t;for(let t of e)r=await this.execute(t,r,n);return r}async apply(e,t,n={}){return e===void 0?t:this.executeChain(e,t,n)}validate(e){if(e===void 0)return[];let t=e,n=[];for(let e of t)this.has(e)||n.push(`Transformer "${e}" not found`);return n}async executeTransformer(e,t,n){switch(e.type){case`regex`:return this.executeRegex(e,t);case`computed`:return this.executeComputed(e,t,n);case`lowercase`:return this.executeLowercase(t);case`uppercase`:return this.executeUppercase(t);case`trim`:return this.executeTrim(t);case`slugify`:return this.executeSlugify(t);case`capitalize`:return this.executeCapitalize(t);case`titlecase`:return this.executeTitlecase(t);case`camelcase`:return this.executeCamelcase(t);case`pascalcase`:return this.executePascalcase(t);case`snakecase`:return this.executeSnakecase(t);case`kebabcase`:return this.executeKebabcase(t);case`constantcase`:return this.executeConstantcase(t);case`alphanumeric`:return this.executeAlphanumeric(t);case`collapse-spaces`:return this.executeCollapseSpaces(t);case`remove-spaces`:return this.executeRemoveSpaces(t);case`urlencode`:return this.executeUrlencode(t);case`dasherize`:return this.executeDasherize(t);case`underscore`:return this.executeUnderscore(t);case`custom`:return this.executeCustom(e,t,n);case`chain`:return this.executeChainTransformer(e,t,n);default:{let t=e;throw p.invalidType(t.id,t.type)}}}executeRegex(e,t){let n=String(t),{pattern:r,flags:i,replacement:a}=e.config;try{let e=new RegExp(r,i);return n.replace(e,a)}catch(t){throw p.executionFailed(e.id,`Invalid regex pattern: ${t instanceof Error?t.message:String(t)}`)}}executeComputed(e,t,n){let{expression:r}=e.config;try{return Function(`value`,`context`,...Object.keys(n),`return ${r}`)(t,n,...Object.values(n))}catch(t){throw p.executionFailed(e.id,`Expression evaluation failed: ${t instanceof Error?t.message:String(t)}`)}}executeLowercase(e){return(0,l.lowerCase)(String(e))}executeUppercase(e){return(0,l.upperCase)(String(e))}executeTrim(e){return String(e).trim()}executeSlugify(e){return String(e).toLowerCase().trim().replace(/[\s_]+/gu,`-`).replace(/[^\w-]+/gu,``).replace(/-{2,}/gu,`-`).replace(/^-+/u,``).replace(/-+$/u,``)}async executeCustom(e,t,n){let{handler:r}=e.config;if(typeof r==`function`)return r(t,n);throw p.executionFailed(e.id,`String-based custom handlers are not yet supported. Please use function handlers.`)}async executeChainTransformer(e,t,n){let{transformers:r}=e.config;if(r.length===0)throw p.executionFailed(e.id,`Chain transformer must have at least one transformer`);return this.executeChain(r,t,n)}executeCapitalize(e){return(0,l.capitalCase)(String(e))}executeTitlecase(e){return(0,l.capitalCase)(String(e))}executeCamelcase(e){return(0,l.camelCase)(String(e))}executePascalcase(e){return(0,l.pascalCase)(String(e))}executeSnakecase(e){return(0,l.snakeCase)(String(e))}executeKebabcase(e){return(0,l.kebabCase)(String(e))}executeConstantcase(e){return(0,l.constantCase)(String(e))}executeAlphanumeric(e){return String(e).replace(/[^a-zA-Z0-9]/gu,``)}executeCollapseSpaces(e){return String(e).replace(/\s+/gu,` `)}executeRemoveSpaces(e){return String(e).replace(/\s/gu,``)}executeUrlencode(e){return encodeURIComponent(String(e))}executeDasherize(e){return(0,l.kebabCase)(String(e))}executeUnderscore(e){return(0,l.snakeCase)(String(e))}clear(){this.transformers.clear()}getIds(){return Array.from(this.transformers.keys())}};const z=new _e;async function B(e,n,r,i){if(e!==void 0)return t.c(e,{id:n,contextType:`Prompt`,...r!=null&&{context:r},...i?.$sourceUrl!=null&&{sourceUrl:i.$sourceUrl}})}async function V(e,n=new Map,r={}){let i={};if(e.length===0)return i;for(let a of e){if(a.$configEnabled!=null&&!await t.C(a.$configEnabled,{...r,...i}))continue;let e={...r,...i};if(await t.C(a.enabled,e))try{let r,o=n.get(a.id);switch(a.default!==void 0&&(o=await B(a.default,a.id,e,a)),a.type){case`input`:{let n={message:a.message};o!==void 0&&(n.default=String(o));let i=await t.x(a.required,e);if(i!==void 0&&(n.required=i),r=await(0,c.input)(n),i&&(r==null||typeof r==`string`&&r.trim()===``))throw t.O(`${a.message} is required`,`error`),d.required(a.id);break}case`password`:if(r=await(0,c.password)({message:a.message,mask:`*`}),await t.x(a.required,e)&&(r==null||typeof r==`string`&&r.trim()===``))throw t.O(`${a.message} is required`,`error`),d.required(a.id);break;case`number`:{let n={message:a.message};o!==void 0&&(n.default=Number(o));let i=await t.x(a.required,e);if(i!==void 0&&(n.required=i),a.min!==void 0&&(n.min=a.min),a.max!==void 0&&(n.max=a.max),r=await(0,c.number)(n),i&&r==null)throw t.O(`${a.message} is required`,`error`),d.required(a.id);break}case`select`:{let e={message:a.message,choices:a.choices.map(e=>({name:e.name,value:e.value}))};o!==void 0&&(e.default=o),r=await(0,c.select)(e);break}case`confirm`:{let e=o===void 0?!1:!!o;r=await(0,c.confirm)({message:a.message,default:e});break}default:throw t.O(`Unknown prompt type: ${a.type}`,`error`),d.unknownType(a.type)}a.transformers!==void 0&&(r=await z.apply(a.transformers,r,{...e,...i})),i[a.id]=r}catch(e){throw e instanceof Error&&t.O(`Failed to collect prompt "${a.id}": ${e.message}`,`error`),e}}return i}async function H(e,t){let n=new Map,r=e.map(async e=>{if(e.default!==void 0){let r=await B(e.default,e.id,t,e);r!==void 0&&n.set(e.id,r)}});return await Promise.all(r),n}function U(e){let t=[],n=new Set;for(let r of e){if(n.has(r.id)&&t.push(`Duplicate prompt ID: ${r.id}`),n.add(r.id),/^[a-zA-Z_$][a-zA-Z0-9_$]*$/u.test(r.id)||t.push(`Invalid prompt ID "${r.id}": must be a valid JavaScript identifier (start with letter, underscore, or $, followed by letters, digits, underscores, or $)`),(!r.message||r.message.trim()===``)&&t.push(`Prompt "${r.id}" must have a non-empty message`),r.type===`select`){r.choices.length===0&&t.push(`Select prompt "${r.id}" must have at least one choice`);for(let e of r.choices)(!e.name||e.name.trim()===``)&&t.push(`Select prompt "${r.id}" has a choice with empty name`),e.value===void 0&&t.push(`Select prompt "${r.id}" has a choice with undefined value`)}r.type===`number`&&r.min!==void 0&&r.max!==void 0&&r.min>r.max&&t.push(`Number prompt "${r.id}" has min greater than max`)}return t}const W=(0,o.promisify)(r.default.appendFile),ve=(0,o.promisify)(r.default.readFile),ye=(0,o.promisify)(r.default.stat);async function be(e,n,r){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping append task`,`info`);return}let o=i.default.join(a.default.cwd(),e.file),s={};e.content==null?e.template!=null&&(s.template=e.template):s.template=e.content,e.templateFile!=null&&(s.templateFile=e.templateFile);let c=_(s);if(!c.isValid)throw c.error?.includes(`cannot have both`)?f.templateHasBothTemplateAndFile():f.templateMissingTemplateOrFile();let l=await v(s,n,r),u=!1,d=!1;try{await ye(o),u=!0;let t=await ve(o,`utf-8`);t.length>0&&!t.endsWith(`
23
- `)&&(d=e.newline!==!1)}catch{}u&&d?await W(o,`\n${l}`):await W(o,l),t.O(`Appended content to ${e.file}`,`success`)}const xe={name:`append`,version:`1.0.0`,taskTypes:[`append`],execute:async(e,t,n)=>{n.dryRun||await be(e.config,t,e)}},G=(0,o.promisify)(r.default.copyFile),Se=(0,o.promisify)(r.default.stat),K=(0,o.promisify)(r.default.mkdir),Ce=(0,o.promisify)(r.default.readdir);async function q(e,t){await K(t,{recursive:!0});let n=await Ce(e,{withFileTypes:!0});await Promise.all(n.map(async n=>{let r=i.default.join(e,n.name),a=i.default.join(t,n.name);n.isDirectory()?await q(r,a):await G(r,a)}))}async function we(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping copy task`,`info`);return}let r=i.default.join(a.default.cwd(),e.from),o=i.default.join(a.default.cwd(),e.to),s;try{s=await Se(r)}catch{t.O(`Source path does not exist: ${r}`,`warn`);return}await K(i.default.dirname(o),{recursive:!0}),s.isDirectory()?(await q(r,o),t.O(`Copied directory ${e.from} to ${e.to}`,`success`)):(await G(r,o),t.O(`Copied file ${e.from} to ${e.to}`,`success`))}const Te={name:`copy`,version:`1.0.0`,taskTypes:[`copy`],execute:async(e,t,n)=>{n.dryRun||await we(e.config,t)}},Ee=(0,o.promisify)(r.default.writeFile);async function De(e,n,o){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping create task`,`info`);return}let s=i.default.join(a.default.cwd(),e.file);if(r.default.existsSync(s)){t.O(`File already exists, skipping: ${e.file}`,`info`);return}let c=_(e);if(!c.isValid)throw c.error?.includes(`cannot have both`)?f.createHasBothTemplateAndFile():f.createMissingTemplateOrFile();let l=await v(e,n,o),u=i.default.dirname(s);r.default.existsSync(u)||r.default.mkdirSync(u,{recursive:!0}),await Ee(s,l),t.O(`Created file: ${e.file}`,`success`)}const Oe={name:`create`,version:`1.0.0`,taskTypes:[`create`],execute:async(e,t,n)=>{n.dryRun||await De(e.config,t,e)}};async function ke(e,n){let{paths:o,condition:s}=e;if(s!=null&&s!==``){if(!n){t.O(`Condition specified but no config provided, skipping deletion`,`warn`);return}if(!t.w(s,n)){t.O(`Condition not met, skipping deletion`,`info`);return}}for(let e of o){let t=i.default.join(a.default.cwd(),e);r.default.existsSync(t)&&r.default.rmSync(t,{recursive:!0,force:!0})}}const Ae={name:`delete`,version:`1.0.0`,taskTypes:[`delete`],execute:async(e,t,n)=>{n.dryRun||await ke(e.config,t)}};async function je(e,n,r){e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)||await t.l({file:e.file,...e.runtime&&{runtime:e.runtime},...e.args&&{args:e.args},...e.parameters&&{parameters:e.parameters},...e.cwd!=null&&e.cwd.trim()!==``&&{cwd:e.cwd},...r?.$sourceUrl!=null&&r.$sourceUrl.trim()!==``&&{sourceUrl:r.$sourceUrl},captureOutput:!1},n)}const Me={name:`exec-file`,version:`1.0.0`,taskTypes:[`exec-file`],execute:async(e,t,n)=>{n.dryRun||await je(e.config,t,e)}};async function Ne(e,n){if(e.condition!=null&&e.condition!==``){if(!n){t.O(`Condition specified but no config provided, skipping exec`,`warn`);return}if(!t.w(e.condition,n)){t.O(`Condition not met, skipping exec task`,`info`);return}}let r=e.cwd==null?a.default.cwd():i.default.join(a.default.cwd(),e.cwd);(0,s.execSync)(e.command,{cwd:r,stdio:`inherit`})}const Pe={name:`exec`,version:`1.0.0`,taskTypes:[`exec`],execute:async(e,t,n)=>{n.dryRun||await Ne(e.config,t)}};async function Fe(e,n){if(e.condition!=null&&e.condition!==``){if(!n){t.O(`Condition specified but no config provided, skipping git-init`,`warn`);return}if(!t.w(e.condition,n)){t.O(`Condition not met, skipping git-init task`,`info`);return}}if(e.removeExisting){let e=i.default.join(a.default.cwd(),`.git`);r.default.existsSync(e)&&r.default.rmSync(e,{recursive:!0,force:!0})}if((0,s.execSync)(`git init`,{stdio:`inherit`}),e.initialCommit){let t=e.message??`Initial commit`;(0,s.execSync)(`git add .`,{stdio:`inherit`}),(0,s.execSync)(`git commit -m "${t}"`,{stdio:`inherit`})}}const Ie={name:`git-init`,version:`1.0.0`,taskTypes:[`git-init`],execute:async(e,t,n)=>{n.dryRun||await Fe(e.config,t)}},Le=(0,o.promisify)(r.default.mkdir);async function Re(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping mkdir task`,`info`);return}await Le(i.default.join(a.default.cwd(),e.path),{recursive:!0}),t.O(`Created directory: ${e.path}`,`success`)}const ze={name:`mkdir`,version:`1.0.0`,taskTypes:[`mkdir`],execute:async(e,t,n)=>{n.dryRun||await Re(e.config,t)}},Be=(0,o.promisify)(r.default.rename),Ve=(0,o.promisify)(r.default.stat),He=(0,o.promisify)(r.default.mkdir);async function Ue(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping move task`,`info`);return}let r=i.default.join(a.default.cwd(),e.from),o=i.default.join(a.default.cwd(),e.to);try{await Ve(r)}catch{t.O(`Source path does not exist: ${r}`,`warn`);return}await He(i.default.dirname(o),{recursive:!0}),await Be(r,o),t.O(`Moved ${e.from} to ${e.to}`,`success`)}const We={name:`move`,version:`1.0.0`,taskTypes:[`move`],execute:async(e,t,n)=>{n.dryRun||await Ue(e.config,t)}},Ge=(0,o.promisify)(r.default.readFile),Ke=(0,o.promisify)(r.default.writeFile);async function qe(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping regex-replace task`,`info`);return}let r=i.default.join(a.default.cwd(),e.file),{pattern:o}=e,s=e.flags??``,c=e.replacement||``,l=await Ge(r,`utf-8`),u=new RegExp(o,s);l=l.replace(u,t.s(c,n)),await Ke(r,l)}const Je={name:`regex-replace`,version:`1.0.0`,taskTypes:[`regex-replace`],execute:async(e,t,n)=>{n.dryRun||await qe(e.config,t)}},Ye=(0,o.promisify)(r.default.rename);async function Xe(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping rename task`,`info`);return}let o=i.default.join(a.default.cwd(),t.s(e.from,n)),s=i.default.join(a.default.cwd(),t.s(e.to,n));if(!r.default.existsSync(o)){t.O(`Source path does not exist: ${o}`,`warn`);return}await Ye(o,s)}const Ze={name:`rename`,version:`1.0.0`,taskTypes:[`rename`],execute:async(e,t,n)=>{n.dryRun||await Xe(e.config,t)}},Qe=(0,o.promisify)(r.default.readFile),$e=(0,o.promisify)(r.default.writeFile);async function et(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping replace-in-file task`,`info`);return}let o=i.default.join(a.default.cwd(),e.file),{replacements:s}=e;if(!r.default.existsSync(o)){t.O(`File not found: ${o}, skipping`,`warn`);return}let c=await Qe(o,`utf-8`);for(let{find:e,replace:r}of s){let i=t.s(r,n);c=c.replace(new RegExp(e,`gu`),i)}await $e(o,c)}const tt={name:`replace-in-file`,version:`1.0.0`,taskTypes:[`replace-in-file`],execute:async(e,t,n)=>{n.dryRun||await et(e.config,t)}},nt=(0,o.promisify)(r.default.readFile),rt=(0,o.promisify)(r.default.writeFile),it=2;async function at(e,n){if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping update-json task`,`info`);return}let r=i.default.join(a.default.cwd(),e.file),{updates:o}=e,s=await nt(r,`utf-8`),c=JSON.parse(s);function l(e){if(typeof e==`string`)return t.s(e,n);if(Array.isArray(e))return e.map(e=>l(e));if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e))t[n]=l(r);return t}return e}for(let[e,n]of Object.entries(o)){let r=l(n);e.includes(`.`)?t.m(c,e,r):c[e]=r}await rt(r,`${JSON.stringify(c,null,2)}\n`)}const ot={name:`update-json`,version:`1.0.0`,taskTypes:[`update-json`],execute:async(e,t,n)=>{n.dryRun||await at(e.config,t)}},st=(0,o.promisify)(r.default.writeFile);async function ct(e,n,o){let{allowCreate:s=!0}=e;if(e.condition!=null&&e.condition!==``&&!t.w(e.condition,n)){t.O(`Condition not met, skipping write task`,`info`);return}let c=i.default.join(a.default.cwd(),e.file);if(!r.default.existsSync(c)){if(s===!1)throw Error(`Write task failed: file does not exist (${e.file})`);t.O(`File not found, creating new file: ${e.file}`,`info`)}let l=_(e);if(!l.isValid)throw l.error?.includes(`cannot have both`)?f.templateHasBothTemplateAndFile():f.templateMissingTemplateOrFile();let u=await v(e,n,o),d=i.default.dirname(c);r.default.existsSync(d)||r.default.mkdirSync(d,{recursive:!0}),await st(c,u)}const lt={name:`write`,version:`1.0.0`,taskTypes:[`write`],execute:async(e,t,n)=>{n.dryRun||await ct(e.config,t,e)}};function J(){I(`update-json`)||(P(ot),P(lt),P(Oe),P(Je),P(tt),P(Ae),P(Ze),P(Ie),P(Pe),P(Me),P(We),P(Te),P(xe),P(ze))}async function ut(e,n,r=!1){if(J(),r){t.O(`[DRY RUN] Would execute: ${e.name}`,`info`);return}if(I(e.type)){await R(e,n,{dryRun:r});return}throw TypeError(`Unknown task type: ${e.type}`)}async function Y(e,n,r,i,o=!1){try{return t.O(`[${r}/${i}] Running: ${e.name}...`,`info`),await ut(e,n,o),t.O(`[${r}/${i}] Completed: ${e.name}...`,`success`),!0}catch(n){return t.O(`Failed: ${e.name}`,`error`),n instanceof Error&&(t.O(` Reason: ${n.message}`,`error`),n.stack!=null&&a.default.env.DEBUG!=null&&console.error(n.stack)),!1}}function X(e){let n=[],r=new Set,i=new Set,a=new Map(e.map(e=>[e.id,e]));function o(e){if(r.has(e))return;if(i.has(e))throw t.j.forTaskDependency(e);i.add(e);let s=a.get(e);if(!s)throw u.forId(e);if(s.dependencies)for(let e of s.dependencies)o(e);i.delete(e),r.add(e),n.push(s)}for(let t of e)r.has(t.id)||o(t.id);return n}function dt(e){let t=[];for(let n of e)if(!I(n.type))t.push(`Task "${n.id}" (${n.name}): Unknown task type "${n.type}"`);else if(n.type===`write`){let e=ft(n);t.push(...e)}return t}function ft(e){let t=[],n=e.config,r=typeof n.template==`string`?n.template:void 0,i=typeof n.templateFile==`string`?n.templateFile:void 0,a=_({...r!==void 0&&{template:r},...i!==void 0&&{templateFile:i}});return!a.isValid&&a.error!=null&&a.error!==``&&t.push(`Task "${e.id}" (${e.name}): ${a.error}`),(n.file==null||n.file===``)&&t.push(`Task "${e.id}" (${e.name}): Write task requires "file" property to specify the output file path`),t}function pt(e){t.O(`❌ Template validation failed:`,`error`),t.O(``,`error`);for(let n of e)t.O(` • ${n}`,`error`);t.O(``,`error`),t.O(`Please fix these errors before continuing.`,`error`)}async function Z(e,t=new Map,n={}){let r={};for(let i of e){let e=t.get(i.id);e!==void 0&&(i.transformers!==void 0&&(e=await z.apply(i.transformers,e,{...n,...r})),r[i.id]=e)}return r}async function Q(e,n,r){let i=new Map;for(let a of e){if(r?.skipConditional===!0&&typeof a.value==`object`&&a.value!==null&&!Array.isArray(a.value)&&a.value.type===`conditional`)continue;if(a.$configEnabled!=null){let e={...n};for(let[t,n]of i.entries())e[t]=n;if(!await t.C(a.$configEnabled,e))continue}let e={...n};for(let[t,n]of i.entries())e[t]=n;let o=await t.c(a.value,{id:a.id,contextType:`Variable`,context:e,...a.$sourceUrl!=null&&{sourceUrl:a.$sourceUrl}});o!==void 0&&i.set(a.id,o)}return i}function $(e){let t=[],n=new Set;for(let r of e)n.has(r.id)&&t.push(`Duplicate variable ID: "${r.id}"`),n.add(r.id);return t}async function mt(e,r){let i=n.t();if(!await t.C(r.configEnabled,i,{lazy:!0})){t._(`⊘ Template is disabled - skipping all execution`);return}r.transformers!==void 0&&r.transformers.length>0&&(t.g(`Registering ${r.transformers.length} transformer(s)...`),z.registerAll(r.transformers)),t.g(`Registering built-in plugins...`),J(),t.g(`Validating task configurations...`);let o=dt(e);o.length>0&&(pt(o),a.default.exit(1)),t.g(`All tasks validated successfully`);let s=e.filter(e=>t.S(e.enabled,n.t(),{lazy:!0}));t.g(`Resolving task dependencies...`);let c=X(s);t.g(`Sorted ${c.length} task(s) by dependencies`),t._(`Welcome! Let's execute your tasks.`),r.dryRun&&t.b(`🔍 DRY RUN MODE - No changes will be made`),t._(`This will execute your project tasks based on the defined configuration.`);let l=i,u=[...r.variables??[]];if(u.length>0){let e=$(u);e.length>0&&(t.O(`❌ Variable validation errors:`,`error`),e.forEach(e=>t.O(` - ${e}`,`error`)),a.default.exit(1)),t.g(`Resolving variable values...`);let n=await Z(u,await Q(u,l,{skipConditional:!0}),l);Object.assign(l,n),Object.keys(n).length>0&&(t.g(`Resolved ${Object.keys(n).length} variable(s)`),t.g(`Variable values: ${JSON.stringify(n)}`))}let d=r.prompts??[],f=[...d];if(f.length>0){let e=U(f);e.length>0&&(t.O(`❌ Prompt validation errors:`,`error`),e.forEach(e=>t.O(` - ${e}`,`error`)),a.default.exit(1)),t.g(`Resolving prompt default values...`);let n=await H(f,l);if(d.length>0){t._(`📋 Collecting prompts (available to all tasks):`);let e=await V(d,n,l);Object.assign(l,e)}}if(u.length>0){let e=u.filter(e=>typeof e.value==`object`&&e.value!==null&&!Array.isArray(e.value)?e.value.type===`conditional`:!1);if(e.length>0){t.g(`Re-resolving conditional variables with prompt values...`);let n=await Z(e,await Q(e,l),l);Object.assign(l,n),Object.keys(n).length>0&&t.g(`Resolved ${Object.keys(n).length} conditional variable(s)`)}}if(!await t.C(r.configEnabled,l)){t._(`⊘ Template is disabled after variable resolution - skipping all execution`);return}let p=[];for(let e of c)e.$configEnabled!=null&&!await t.C(e.$configEnabled,l)||await t.C(e.enabled,l)&&p.push(e);if(t.O(`${p.length} of ${c.length} task(s) enabled for execution`,`info`),r.dryRun){await A(p,l),t._(`🔍 Dry run completed - no changes were made`),t._(`Run without --dry-run to apply changes`);return}t.g(`Calling beforeAll hook...`),await L(`beforeAll`,l);let m=p.length,h=0,g=0,_=[],v=[];for(let e=0;e<p.length;e++){let n=p[e];n!=null&&(t.g(`Calling beforeTask hook for task: ${n.name}`),await L(`beforeTask`,n,l),await Y(n,l,e+1,m,r.dryRun)?(h++,_.push(n.id),t.g(`Calling afterTask hook for task: ${n.name}`),await L(`afterTask`,n,l)):(await t.x(n.required,l)&&(g++,v.push(n.name)),t.g(`Calling onError hook for task: ${n.name}`),await L(`onError`,Error(`Task ${n.name} failed`),n),t.b(`⚠️ Task "${n.name}" failed, continuing with remaining tasks...`)))}g>0&&(t.O(`\n❌ Task execution completed with ${g} error(s)`,`error`),t.O(`Completed: ${h}/${m} tasks`,`info`),t.O(`Failed tasks: ${v.join(`, `)}`,`error`),a.default.exit(1)),t.g(`Calling afterAll hook...`),await L(`afterAll`,l),t.y(`✅ All tasks completed successfully!`),t.y(` Completed: ${h}/${m} tasks`)}async function ht(e,n,r={}){t.g(`Running templates with sequential variable/prompt resolution...`),t.g(`Total templates to process: ${e.length}`),t.g(`Registering built-in plugins...`),J();let i=[];console.log(``),t._(`📋 Collecting input...`),console.log(``);for(let n=0;n<e.length;n++){let o=e[n];if(o==null)continue;let s=`=`.repeat(60);if(t.g(`\n${s}`),t.g(`Processing template ${n+1}/${e.length}: "${o.name}"`),t.g(s),t.g(`Current config keys: ${Object.keys(r).join(`, `)}`),!await t.C(o.enabled,r)){t._(`⊘ Template "${o.name}" is disabled - skipping`),t.g(` Enabled condition: ${JSON.stringify(o.enabled)}`);continue}let c=o.variables??[];if(c.length>0){t.g(`Processing ${c.length} variable(s) for template "${o.name}"...`);let e=$(c);e.length>0&&(t.O(`❌ Variable validation errors:`,`error`),e.forEach(e=>t.O(` - ${e}`,`error`)),a.default.exit(1));let n=await Z(c,await Q(c,r,{skipConditional:!0}),r);Object.assign(r,n);let i=c.filter(e=>typeof e.value==`object`&&e.value!==null&&!Array.isArray(e.value)?e.value.type===`conditional`:!1),s=0;if(i.length>0){let e=await Z(i,await Q(i,r),r);if(s=Object.keys(e).length,Object.assign(r,e),s>0){t.g(`Resolved ${s} conditional variable(s)`);for(let[n,r]of Object.entries(e))t.g(` ${n} = ${JSON.stringify(r)}`)}}let l=Object.keys(n).length+s;if(l>0){t.g(`Total variables resolved for template: ${l}`);for(let[e,r]of Object.entries(n))t.g(` ${e} = ${JSON.stringify(r)}`)}}let l=o.prompts??[];if(l.length>0){t.g(`Processing ${l.length} prompt(s) for template "${o.name}"...`);let e=U(l);e.length>0&&(t.O(`❌ Prompt validation errors:`,`error`),e.forEach(e=>t.O(` - ${e}`,`error`)),a.default.exit(1));let n=await V(l,await H(l,r),r);Object.assign(r,n),t.g(`Collected ${Object.keys(n).length} prompt answer(s)`)}if(!await t.C(o.enabled,r)){t._(`⊘ Template "${o.name}" became disabled after variable/prompt resolution - skipping tasks`);continue}let u=o.tasks??[];u.length>0&&(t.g(`Found ${u.length} task(s) in template "${o.name}" (will execute later)`),i.push(...u))}if(t.g(`
24
- 🔧 Validating and filtering all collected tasks...`),i.length===0){t.O(`No tasks found in any template`,`info`);return}let o=dt(i);o.length>0&&(pt(o),a.default.exit(1)),console.log(``),t.O(`🛠️ Preparing tasks...`,`info`);let s=[];for(let e of i)await t.C(e.enabled,r)&&s.push(e);if(console.log(``),t.O(`Found ${i.length} tasks (${s.length} enabled)`,`info`),t.O(`All tasks validated successfully`,`success`),s.length===0){t.O(`No enabled tasks to execute`,`info`);return}let c=X(s);if(n.dryRun){t.O(`
25
- 🔍 Dry run - showing task changes...`,`info`),await A(c,r),t.O(`
26
- 🔍 Dry run completed - no changes were made`,`info`),t.O(`Run without --dry-run to apply changes`,`info`);return}console.log(``),t.D(`⚙️ Executing tasks...`),console.log(``),await L(`beforeAll`,r);let l=0,u=0,d=[];for(let e=0;e<c.length;e++){let i=c[e];i!=null&&(await L(`beforeTask`,i,r),await Y(i,r,e+1,c.length,n.dryRun)?(l++,await L(`afterTask`,i,r)):(await t.x(i.required,r)&&(u++,d.push(i.name)),await L(`onError`,Error(`Task ${i.name} failed`),i),t.b(`⚠️ Task "${i.name}" failed, continuing with remaining tasks...`)))}await L(`afterAll`,r),u>0&&(t.O(`\n❌ Task execution completed with ${u} error(s)`,`error`),t.O(`Completed: ${l}/${c.length} tasks`,`info`),t.O(`Failed tasks: ${d.join(`, `)}`,`error`),a.default.exit(1)),t.O(`Completed: ${l}/${c.length} tasks`,`success`)}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return T}});
@@ -1 +0,0 @@
1
- import"./config-inheritance-DLd3amMI.js";import{n as e,t}from"./run-tasks-C0IZQ4SX.js";import"./config-nfiOxhDM.js";export{t as runTasks,e as runTemplatesSequentially};
@@ -1 +0,0 @@
1
- const e=require(`./chunk-DjWAcSYV.cjs`),t=require(`./config-inheritance-CtSb5haE.cjs`),n=require(`./run-tasks-CgFJyU4i.cjs`);let r=require(`node:process`);r=e.t(r);const i=r.default.argv.includes(`--dry-run`),a=r.default.argv.includes(`--force`);async function o(e,o){try{await n.t(e,{dryRun:o?.dryRun??i,force:o?.force??a,configFilePath:o?.configFilePath??void 0,...o?.variables!=null&&{variables:o.variables},...o?.prompts!=null&&{prompts:o.prompts},...o?.configEnabled!=null&&{configEnabled:o.configEnabled},...o?.transformers!=null&&{transformers:o.transformers}})}catch(e){t.O(`❌ Task execution failed`,`error`),e instanceof Error?(t.O(`Error: ${e.message}`,`error`),r.default.env.DEBUG!=null&&console.error(e.stack)):console.error(e),r.default.exit(1)}}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
@@ -1 +0,0 @@
1
- import{O as e}from"./config-inheritance-DLd3amMI.js";import{t}from"./run-tasks-C0IZQ4SX.js";import n from"node:process";const r=n.argv.includes(`--dry-run`),i=n.argv.includes(`--force`);async function a(a,o){try{await t(a,{dryRun:o?.dryRun??r,force:o?.force??i,configFilePath:o?.configFilePath??void 0,...o?.variables!=null&&{variables:o.variables},...o?.prompts!=null&&{prompts:o.prompts},...o?.configEnabled!=null&&{configEnabled:o.configEnabled},...o?.transformers!=null&&{transformers:o.transformers}})}catch(t){e(`❌ Task execution failed`,`error`),t instanceof Error?(e(`Error: ${t.message}`,`error`),n.env.DEBUG!=null&&console.error(t.stack)):console.error(t),n.exit(1)}}export{a as t};
@@ -1 +0,0 @@
1
- const e=require(`./config-inheritance-CtSb5haE.cjs`);exports.cleanupTempFile=e.u,exports.debug=e.T,exports.error=e.E,exports.logError=e.E,exports.evaluateCondition=e.w,exports.evaluateEnabled=e.S,exports.evaluateEnabledAsync=e.C,exports.evaluateRequiredAsync=e.x,exports.getNestedProperty=e.p,exports.info=e.D,exports.logInfo=e.D,exports.interpolateTemplate=e.s,exports.isUrl=e.h,exports.log=e.O,exports.logSuccess=e.k,exports.success=e.k,exports.logWarn=e.A,exports.warn=e.A,exports.resolveAndFetchFile=e.d,exports.resolveFilePath=e.f,exports.resolveValue=e.c,exports.setNestedProperty=e.m;
@@ -1 +0,0 @@
1
- import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,c as s,d as c,f as l,h as u,k as d,m as f,p,s as m,u as h,w as g,x as _}from"./config-inheritance-DLd3amMI.js";export{h as cleanupTempFile,o as debug,r as error,r as logError,g as evaluateCondition,a as evaluateEnabled,t as evaluateEnabledAsync,_ as evaluateRequiredAsync,p as getNestedProperty,n as info,n as logInfo,m as interpolateTemplate,u as isUrl,i as log,d as logSuccess,d as success,e as logWarn,e as warn,c as resolveAndFetchFile,l as resolveFilePath,s as resolveValue,f as setNestedProperty};