@pixpilot/scaffoldfy 0.30.0 → 0.32.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.
- package/dist/cli.cjs +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +33 -24
- package/dist/index.d.ts +33 -24
- package/dist/index.js +1 -1
- package/dist/run-tasks-A6tQe8q1.js +1 -0
- package/dist/{run-tasks-D5KLV8Tk.js → run-tasks-BsR0t7C5.js} +5 -5
- package/dist/run-tasks-CSR8df5O.cjs +26 -0
- package/dist/run-tasks-CcH22QWc.cjs +1 -0
- package/dist/scaffoldfy-config-json-validator/cli.cjs +3 -0
- package/dist/scaffoldfy-config-json-validator/cli.d.cts +1 -0
- package/dist/scaffoldfy-config-json-validator/cli.d.ts +1 -0
- package/dist/scaffoldfy-config-json-validator/cli.js +3 -0
- package/dist/scaffoldfy-config-json-validator/index.cjs +1 -0
- package/dist/scaffoldfy-config-json-validator/index.d.cts +3 -0
- package/dist/scaffoldfy-config-json-validator/index.d.ts +3 -0
- package/dist/scaffoldfy-config-json-validator/index.js +1 -0
- package/dist/scaffoldfy-config-json-validator/validate-scaffoldfy-json.cjs +1 -0
- package/dist/scaffoldfy-config-json-validator/validate-scaffoldfy-json.d.cts +2 -0
- package/dist/scaffoldfy-config-json-validator/validate-scaffoldfy-json.d.ts +2 -0
- package/dist/scaffoldfy-config-json-validator/validate-scaffoldfy-json.js +1 -0
- package/dist/scaffoldfy-config-json-validator-CpEXHRsI.cjs +0 -0
- package/dist/scaffoldfy-config-json-validator-DP8-e4Yy.js +1 -0
- package/dist/{src-DbtBS6he.js → src-CaQ2gXYF.js} +1 -1
- package/dist/{src-CmBriDDR.cjs → src-IYqxnNOO.cjs} +1 -1
- package/dist/{utils-Bn-L1Fmr.cjs → utils-B6BwGcug.cjs} +1 -1
- package/dist/{utils-Dsr6AHpq.js → utils-B6WSsvMT.js} +1 -1
- package/dist/utils-Bz23aLK_.cjs +1 -0
- package/dist/{utils-CmYva5oB.js → utils-CrJkuEEG.js} +1 -1
- package/dist/validate-scaffoldfy-json-Cfq-nQjy.js +1 -0
- package/dist/validate-scaffoldfy-json-Dkaz9ueq.cjs +1 -0
- package/dist/validate-scaffoldfy-json-bRhG4eG3.d.cts +10 -0
- package/dist/validate-scaffoldfy-json-vYYlnkxk.d.ts +10 -0
- package/package.json +4 -4
- package/schema/scaffoldfy.schema.json +157 -222
- package/dist/run-tasks-BZwbB2B0.cjs +0 -1
- package/dist/run-tasks-C6Bkzhq7.cjs +0 -26
- package/dist/run-tasks-DhVlAr4C.js +0 -1
- package/dist/utils-DjBGLPnu.cjs +0 -1
- package/dist/validate-scaffoldfy-json.cjs +0 -3
- package/dist/validate-scaffoldfy-json.js +0 -3
- /package/dist/{validate-scaffoldfy-json.d.cts → index-BoGG5KAY.d.ts} +0 -0
- /package/dist/{validate-scaffoldfy-json.d.ts → index-BtBZHVmz.d.cts} +0 -0
package/dist/utils-DjBGLPnu.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-DjWAcSYV.cjs`);let t=require(`node:fs`);t=e.t(t);let n=require(`node:path`);n=e.t(n);let r=require(`node:process`);r=e.t(r);let i=require(`node:child_process`);i=e.t(i);let a=require(`node:readline`);a=e.t(a),require(`handlebars`);var o=class extends Error{constructor(e,t){super(e),this.code=t,this.name=this.constructor.name}},s=class e extends o{constructor(e,t,n){super(e,`CIRCULAR_DEPENDENCY`),this.dependencyChain=t,this.resolvedPath=n,this.name=`CircularDependencyError`}static forTemplateInheritance(t,n){let r=Array.from(t);return new e(`Circular dependency detected: ${r.join(` -> `)} -> ${n}`,r,n)}static forTaskDependency(t){return new e(`Circular dependency detected involving task: ${t}`,[t])}static forTemplateDependencies(t,n){let r=[...t,n];return new e(`Circular dependency detected in template dependencies: ${r.join(` -> `)}`,r)}},c=class e extends o{constructor(e,t){super(e,`TEMPLATE_FILE_NOT_FOUND`),this.filePath=t,this.name=`TemplateFileNotFoundError`}static forPath(t){return new e(`Template file not found: ${t}`,t)}},l=class e extends o{constructor(e,t,n){super(e,`TEMPLATE_RESOLUTION_ERROR`),this.templateFilePath=t,this.sourceUrl=n,this.name=`TemplateResolutionError`}static forRemoteTemplate(t,n){return new e(`Failed to resolve templateFile "${t}" relative to remote template "${n}"`,t,n)}},u=class e extends o{constructor(e,t,n){super(e,`TEMPLATE_FETCH_ERROR`),this.url=t,this.originalError=n,this.name=`TemplateFetchError`}static forUrl(t,n,r){return typeof n==`number`?new e(`Failed to fetch template from ${t}: ${n} ${r??``}`.trim(),t):new e(`Failed to fetch template from ${t}: ${n?.message??String(n??`Unknown error`)}`,t,n)}},d=class e extends o{constructor(e,t,n){super(e,`TEMPLATE_PARSE_ERROR`),this.filePath=t,this.originalError=n,this.name=`TemplateParseError`}static forFile(t,n){return new e(`Failed to parse template file ${t}: ${n.message}`,t,n)}},f=class e extends o{constructor(e,t){super(e,`INVALID_TEMPLATE`),this.filePath=t,this.name=`InvalidTemplateError`}static forFile(t,n){return new e(`Invalid template file ${t}: ${n}`,t)}static tasksNotArray(t){return new e(`Invalid template file ${t}: 'tasks' must be an array if provided`,t)}static missingName(t){return new e(`Invalid template file ${t}: 'name' field is required`,t)}static invalidNameFormat(t,n){return new e(`Invalid template file ${t}: 'name' field "${n}" must contain only lowercase letters, digits, and hyphens. It cannot start or end with a hyphen, and cannot contain consecutive hyphens.`,t)}};let p=!1;function m(e){p=e}const h={debug:`🐛`,info:`ℹ`,success:`✓`,warn:`⚠`,error:`✗`},g={debug:`\x1B[35m`,info:`\x1B[36m`,success:`\x1B[32m`,warn:`\x1B[33m`,error:`\x1B[31m`},_=`\x1B[0m`;function v(e){p&&console.log(`${g.debug}${h.debug} ${e}${_}`)}function y(e){console.log(`${g.info}${h.info} ${e}${_}`)}function b(e){console.log(`${g.success}${h.success} ${e}${_}`)}function x(e){console.log(`${g.warn}${h.warn} ${e}${_}`)}function S(e,t,n){return e===void 0?!0:typeof e==`boolean`?e:typeof e==`string`?j(e,t,n?.lazy===!0?{lazy:!0}:void 0):typeof e==`object`&&`type`in e&&e.type===`exec`?n?.lazy===!0:typeof e==`object`&&`condition`in e?j(e.condition,t,n?.lazy===!0?{lazy:!0}:void 0):!1}async function C(e,t,n){if(e===void 0)return!0;if(typeof e==`boolean`)return e;if(typeof e==`string`)return j(e,t,n?.lazy===!0?{lazy:!0}:void 0);if(typeof e==`object`&&`type`in e&&e.type===`exec`)try{let{execSync:n}=await import(`node:child_process`),{interpolateTemplate:r}=await Promise.resolve().then(()=>require(`./utils-Bn-L1Fmr.cjs`)),i=n(r(e.value,t),{encoding:`utf-8`}).trim();if(i===``||i===`0`)return!1;let a=i.toLowerCase();return!(a===`false`||a===`no`)}catch(t){let{log:n}=await Promise.resolve().then(()=>require(`./utils-Bn-L1Fmr.cjs`));return n(`Failed to execute enabled command: ${e.value}`,`warn`),t instanceof Error&&n(` Error: ${t.message}`,`warn`),!1}return typeof e==`object`&&`condition`in e?j(e.condition,t,n?.lazy===!0?{lazy:!0}:void 0):!1}function w(){try{let e=(0,i.execSync)(`git remote get-url origin`,{encoding:`utf-8`}).trim(),t=e.match(/github\.com[:/](?<owner>[^/]+)\/(?<name>[^/]+)$/u);if(t?.groups){let{owner:n,name:r}=t.groups,i=r;return i.endsWith(`.git`)&&(i=i.slice(0,-4)),{owner:n,name:i,url:e}}return null}catch{return null}}async function T(e,t){let n=a.default.createInterface({input:r.default.stdin,output:r.default.stdout});return new Promise(r=>{let i;i=t==null?`${e}: `:`${e} (${t}): `,n.question(i,e=>{n.close(),r(e.trim()||(t??``))})})}async function E(e,t=!1){return T(`${e} (${t?`Y/n`:`y/N`})`,t?`y`:`n`).then(e=>e.toLowerCase()===`y`||e.toLowerCase()===`yes`)}function D(e,t=`info`){console.log(`${{info:`\x1B[36m`,success:`\x1B[32m`,error:`\x1B[31m`,warn:`\x1B[33m`}[t]}${{info:`ℹ`,success:`✓`,error:`✗`,warn:`⚠`}[t]} ${e}[0m`)}function O(e,t){return e.replace(/\{\{(?<key>[\w.]+)\}\}/gu,(e,n)=>A(t,n)?.toString()??``)}function k(e,t,n){let r=t.split(`.`),i=e;for(let e=0;e<r.length-1;e++){let t=r[e];t!=null&&t!==``&&((!(t in i)||typeof i[t]!=`object`||i[t]===null)&&(i[t]={}),i=i[t])}let a=r[r.length-1];a!=null&&a!==``&&(i[a]=n)}function A(e,t){let n=t.split(`.`),r=e;for(let e of n)if(e!==``&&typeof r==`object`&&r)r=r[e];else return;return r}function j(e,t,n){try{let n={...t};return Function(...Object.keys(n),`'use strict'; return (${e})`)(...Object.values(n))}catch(t){return n?.lazy===!0&&t instanceof ReferenceError?!0:(n?.silent!==!0&&(D(`Failed to evaluate condition: ${e}`,`warn`),t instanceof Error&&D(` Error: ${t.message}`,`warn`)),!1)}}Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return d}});
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const e=require(`./chunk-DjWAcSYV.cjs`);let t=require(`node:fs`);t=e.t(t);let n=require(`node:path`);n=e.t(n);let r=require(`node:process`);r=e.t(r);let i=require(`commander`);i=e.t(i);let a=require(`node:url`);a=e.t(a);let o=require(`ajv`);o=e.t(o);const s=(0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href),c=n.default.dirname(s);function l(){return new o.default({allErrors:!0,verbose:!0,strict:!1,discriminator:!0})}function u(e){try{let n=t.default.readFileSync(e,`utf-8`);return JSON.parse(n)}catch(t){throw Error(`Failed to load schema from ${e}: ${t instanceof Error?t.message:String(t)}`)}}function d(e){try{let r=t.default.readFileSync(e,`utf-8`),i=JSON.parse(r);if(!i||typeof i!=`object`||!(`$schema`in i))return{valid:!0};let a=i.$schema;if(typeof a!=`string`)return{valid:!0};let o;if(a.startsWith(`http`))if(a.includes(`scaffoldfy/schema`))o=n.default.join(c,`..`,`schema`,`scaffoldfy.schema.json`);else return{valid:!0};else o=a.startsWith(`../`)||a.startsWith(`./`)?n.default.resolve(n.default.dirname(e),a):a;if(!t.default.existsSync(o))return console.warn(`Schema file not found: ${o}`),{valid:!0};let s=u(o),d=l().compile(s);return d(i)?{valid:!0}:{valid:!1,errors:d.errors?.map(e=>`${e.instancePath||`root`}: ${e.message}`)||[]}}catch(t){return{valid:!1,errors:[`Failed to parse JSON file ${e}: ${t instanceof Error?t.message:String(t)}`]}}}function f(e){let r=[];function i(e){let a=t.default.readdirSync(e,{withFileTypes:!0});for(let t of a){let a=n.default.join(e,t.name);t.isDirectory()?t.name!==`node_modules`&&t.name!==`.git`&&!t.name.startsWith(`.`)&&i(a):t.isFile()&&t.name.endsWith(`.json`)&&r.push(a)}}return i(e),r}function p(){let e=new i.Command;e.name(`validate-scaffoldfy-json`).description(`Validate scaffoldfy JSON files against their schemas`).version(`1.0.0`).option(`-f, --file <path>`,`Path to a JSON file to validate`).option(`-d, --dir <path>`,`Path to a directory to scan for JSON files`).parse(r.default.argv);let t=e.opts(),n=[];t.file!==void 0&&t.file!==``?n=[t.file]:t.dir!==void 0&&t.dir!==``?(console.log(`Scanning directory: ${t.dir}`),n=f(t.dir),console.log(`Found ${n.length} JSON file(s)\n`)):(console.error(`Error: Please provide either --file or --dir option`),e.help());let a=!1;for(let e of n){console.log(`Validating ${e}...`);let t=d(e);if(t.valid)console.log(`✅ ${e} is valid`);else if(a=!0,console.error(`❌ ${e} validation failed:`),t.errors)for(let e of t.errors)console.error(` ${e}`)}a&&r.default.exit(1),console.log(`
|
|
3
|
-
✅ All files validated successfully!`)}p();
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import e from"node:path";import{fileURLToPath as t}from"node:url";import n from"node:fs";import r from"node:process";import{Command as i}from"commander";import a from"ajv";const o=t(import.meta.url),s=e.dirname(o);function c(){return new a({allErrors:!0,verbose:!0,strict:!1,discriminator:!0})}function l(e){try{let t=n.readFileSync(e,`utf-8`);return JSON.parse(t)}catch(t){throw Error(`Failed to load schema from ${e}: ${t instanceof Error?t.message:String(t)}`)}}function u(t){try{let r=n.readFileSync(t,`utf-8`),i=JSON.parse(r);if(!i||typeof i!=`object`||!(`$schema`in i))return{valid:!0};let a=i.$schema;if(typeof a!=`string`)return{valid:!0};let o;if(a.startsWith(`http`))if(a.includes(`scaffoldfy/schema`))o=e.join(s,`..`,`schema`,`scaffoldfy.schema.json`);else return{valid:!0};else o=a.startsWith(`../`)||a.startsWith(`./`)?e.resolve(e.dirname(t),a):a;if(!n.existsSync(o))return console.warn(`Schema file not found: ${o}`),{valid:!0};let u=l(o),d=c().compile(u);return d(i)?{valid:!0}:{valid:!1,errors:d.errors?.map(e=>`${e.instancePath||`root`}: ${e.message}`)||[]}}catch(e){return{valid:!1,errors:[`Failed to parse JSON file ${t}: ${e instanceof Error?e.message:String(e)}`]}}}function d(t){let r=[];function i(t){let a=n.readdirSync(t,{withFileTypes:!0});for(let n of a){let a=e.join(t,n.name);n.isDirectory()?n.name!==`node_modules`&&n.name!==`.git`&&!n.name.startsWith(`.`)&&i(a):n.isFile()&&n.name.endsWith(`.json`)&&r.push(a)}}return i(t),r}function f(){let e=new i;e.name(`validate-scaffoldfy-json`).description(`Validate scaffoldfy JSON files against their schemas`).version(`1.0.0`).option(`-f, --file <path>`,`Path to a JSON file to validate`).option(`-d, --dir <path>`,`Path to a directory to scan for JSON files`).parse(r.argv);let t=e.opts(),n=[];t.file!==void 0&&t.file!==``?n=[t.file]:t.dir!==void 0&&t.dir!==``?(console.log(`Scanning directory: ${t.dir}`),n=d(t.dir),console.log(`Found ${n.length} JSON file(s)\n`)):(console.error(`Error: Please provide either --file or --dir option`),e.help());let a=!1;for(let e of n){console.log(`Validating ${e}...`);let t=u(e);if(t.valid)console.log(`✅ ${e} is valid`);else if(a=!0,console.error(`❌ ${e} validation failed:`),t.errors)for(let e of t.errors)console.error(` ${e}`)}a&&r.exit(1),console.log(`
|
|
3
|
-
✅ All files validated successfully!`)}f();export{};
|
|
File without changes
|
|
File without changes
|