@promakeai/cli 0.2.8 → 0.2.9
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 +1 -1
- package/package.json +1 -1
- package/template/index.html +101 -153
- package/template/src/lang/en/about.json +0 -4
- package/template/src/lang/en/contact.json +0 -39
- package/template/src/lang/en/cookies.json +0 -4
- package/template/src/lang/en/footer.json +0 -12
- package/template/src/lang/en/forgotPassword.json +0 -37
- package/template/src/lang/en/header.json +0 -10
- package/template/src/lang/en/hero.json +0 -8
- package/template/src/lang/en/index.json +0 -3
- package/template/src/lang/en/login.json +0 -18
- package/template/src/lang/en/privacy.json +0 -4
- package/template/src/lang/en/register.json +0 -25
- package/template/src/lang/en/terms.json +0 -4
- package/template/src/lang/tr/about.json +0 -4
- package/template/src/lang/tr/contact.json +0 -39
- package/template/src/lang/tr/cookies.json +0 -4
- package/template/src/lang/tr/footer.json +0 -12
- package/template/src/lang/tr/forgotPassword.json +0 -37
- package/template/src/lang/tr/header.json +0 -10
- package/template/src/lang/tr/hero.json +0 -8
- package/template/src/lang/tr/index.json +0 -3
- package/template/src/lang/tr/login.json +0 -18
- package/template/src/lang/tr/privacy.json +0 -4
- package/template/src/lang/tr/register.json +0 -25
- package/template/src/lang/tr/terms.json +0 -4
package/dist/index.js
CHANGED
|
@@ -492,7 +492,7 @@ constants.json (full)`)),console.log(C.dim(JSON.stringify(U.constantsConfig,null
|
|
|
492
492
|
`)),e8("promake create <name>","Create new project"),e8("promake add <modules...>","Add modules"),e8("promake add <page> --module-name <name>","Add page with custom name"),e8("promake remove <modules...>","Remove modules"),e8("promake sync","Sync from promake.json"),e8("promake theme --list","List theme options"),e8("promake theme --preset <name>","Apply color preset"),e8("promake list","List available modules"),e8("promake doctor","Check project health"),e8("promake doctor --runtime","Include runtime checks"),e8("promake discover --json","Project info for AI"),e8("promake seo","Sync SEO meta tags"),e8("promake usage","Show this guide"),e8("promake <command> --help","Command-specific help"),console.log()}var Rr=new $5("info").description("Show detailed information about a module").argument("<module>","Module name").option("--json","Output as JSON").action(async(D,X)=>{let Z=E2(`Fetching ${D}...`).start();try{let J=await R4(D);if(Z.stop(),!J)console.error(C.red(`Module not found: ${D}`)),process.exit(1);if(X.json){console.log(JSON.stringify(J,null,2));return}if(console.log(""),console.log(C.bold.cyan(J.name)),console.log(C.dim("─".repeat(J.name.length+4))),J.title)console.log(`${C.gray("Title:")} ${J.title}`);if(console.log(`${C.gray("Type:")} ${J.type.replace("registry:","")}`),J.description)console.log(`${C.gray("Description:")} ${J.description}`);if(J.registryDependencies?.length)console.log(""),console.log(C.gray("Dependencies:")),J.registryDependencies.forEach((Y)=>{let $=!Y.includes("-")||["button","card","input","badge","dialog","sheet","dropdown-menu","accordion","tabs","select","checkbox","slider","separator","avatar","tooltip","popover","navigation-menu","scroll-area"].includes(Y)?C.dim("(shadcn)"):"";console.log(` ${C.yellow("•")} ${Y} ${$}`)});if(J.dependencies?.length)console.log(""),console.log(C.gray("NPM Packages:")),J.dependencies.forEach((Y)=>{console.log(` ${C.blue("•")} ${Y}`)});if(J.files?.length)console.log(""),console.log(C.gray("Files:")),J.files.forEach((Y)=>{console.log(` ${C.dim("•")} ${Y.path}`)});if(J.exports){if(console.log(""),console.log(C.gray("Exports:")),J.exports.types?.length)console.log(` ${C.magenta("Types:")} ${J.exports.types.join(", ")}`);if(J.exports.variables?.length)console.log(` ${C.green("Components:")} ${J.exports.variables.join(", ")}`)}if(J.route)console.log(""),console.log(C.gray("Route:")),console.log(` ${C.cyan("Path:")} ${J.route.path}`),console.log(` ${C.cyan("Component:")} ${J.route.componentName}`);if(J.usage)console.log(""),console.log(C.gray("Usage:")),console.log(C.dim("─".repeat(40))),console.log(J.usage);console.log("")}catch(J){if(Z.fail("Failed to fetch module info"),J instanceof Error)console.error(C.red(J.message));process.exit(1)}});import F91 from"path";var kK=b1(o8(),1);import{execSync as dh0}from"child_process";import wq from"path";async function cE(D,X=!1){let Z=Date.now(),J=[],Y=wq.join(D,"tsconfig.json");if(!await kK.default.pathExists(Y))return{name:"TypeScript",status:"skip",severity:"info",duration:Date.now()-Z,items:[],summary:"No tsconfig.json found"};let Q=wq.join(D,"package.json"),$=!1;if(await kK.default.pathExists(Q))$=!!(await kK.default.readJson(Q)).scripts?.check;let K=tQ(D),G=K==="npm"?"npm run":`${K} run`;try{let F=$?`${G} check 2>&1`:"npx tsc --noEmit 2>&1";if(!X)console.log(C.dim(` $ ${$?`${G} check`:"tsc --noEmit"}`));let W=dh0(F,{cwd:D,encoding:"utf-8",stdio:"pipe"});if(!X&&W.trim())console.log(C.dim(W));return{name:"TypeScript",status:"pass",severity:"error",duration:Date.now()-Z,items:[],summary:"No type errors"}}catch(F){let W=F.stdout||F.stderr||F.message||"";if(W.includes("This is not the tsc command")||W.includes("typescript"))return{name:"TypeScript",status:"skip",severity:"info",duration:Date.now()-Z,items:[],summary:"TypeScript not installed"};if(!X&&W.trim())console.log(C.dim(W));return J.push(...lh0(W,D)),{name:"TypeScript",status:"fail",severity:"error",duration:Date.now()-Z,items:J,summary:`${J.length} type error(s)`}}}function lh0(D,X){let Z=[],J=/^(.+)\((\d+),(\d+)\):\s*(error|warning)\s*(TS\d+):\s*(.+)$/gm,Y=/^(.+):(\d+):(\d+)\s*-\s*(error|warning)\s*(TS\d+):\s*(.+)$/gm;for(let $ of[J,Y]){let K;while((K=$.exec(D))!==null){let G=K[1].trim();Z.push({file:wq.isAbsolute(G)?wq.relative(X,G):G,line:parseInt(K[2]),column:parseInt(K[3]),code:K[5],message:K[6]})}}let Q=new Set;return Z.filter(($)=>{let K=`${$.file}:${$.line}:${$.column}:${$.message}`;if(Q.has(K))return!1;return Q.add(K),!0})}var pD=b1(o8(),1);import{execSync as ph0}from"child_process";import hK from"path";var ih0=["eslint.config.js","eslint.config.mjs","eslint.config.cjs",".eslintrc.js",".eslintrc.cjs",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc"];async function nh0(D){for(let Z of ih0)if(await pD.default.pathExists(hK.join(D,Z)))return!0;let X=hK.join(D,"package.json");if(await pD.default.pathExists(X))try{if((await pD.default.readJson(X)).eslintConfig)return!0}catch{}return!1}async function dE(D,X=!1,Z=!1){let J=Date.now();if(!await nh0(D))return{name:"ESLint",status:"skip",severity:"warning",duration:Date.now()-J,items:[],summary:"No ESLint config found"};let Y=hK.join(D,"package.json"),Q=!1;if(await pD.default.pathExists(Y))Q=!!(await pD.default.readJson(Y)).scripts?.lint;let $=tQ(D),K=$==="npm"?"npm run":`${$} run`,G=X?" -- --fix":"";try{let F=Q?`${K} lint${G} 2>&1`:`npx eslint .${X?" --fix":""} 2>&1`;if(!Z)console.log(C.dim(` $ ${Q?`${K} lint${G}`:`eslint .${X?" --fix":""}`}`));let W=ph0(F,{cwd:D,encoding:"utf-8",stdio:"pipe",maxBuffer:10485760});if(!Z&&W.trim())console.log(C.dim(W));return{name:"ESLint",status:"pass",severity:"warning",duration:Date.now()-J,items:[],summary:"No linting issues"}}catch(F){let W=F.stdout||F.stderr||F.message||"";if(W.includes("eslint: not found")||W.includes("'eslint' is not recognized"))return{name:"ESLint",status:"skip",severity:"info",duration:Date.now()-J,items:[],summary:"ESLint not installed"};if(!Z&&W.trim())console.log(C.dim(W));let V=oh0(W,D);if(V.length===0&&W.includes("error"))return{name:"ESLint",status:"fail",severity:"warning",duration:Date.now()-J,items:[{message:"ESLint encountered an error"}],summary:"ESLint error"};return{name:"ESLint",status:V.length>0?"fail":"pass",severity:"warning",duration:Date.now()-J,items:V,summary:V.length>0?`${V.length} linting issue(s)`:"No linting issues"}}}function oh0(D,X){let Z=[],J=/^([^\s].*\.(ts|tsx|js|jsx))$/gm,Y=/^\s+(\d+):(\d+)\s+(error|warning)\s+(.+?)\s{2,}(\S+)?$/gm,Q=null,$=D.split(`
|
|
493
493
|
`);for(let K of $){let G=K.match(/^([^\s].*\.(ts|tsx|js|jsx))$/);if(G){Q=G[1];continue}let F=K.match(/^\s+(\d+):(\d+)\s+(error|warning)\s+(.+?)\s{2,}(\S+)?$/);if(F&&Q)Z.push({file:hK.isAbsolute(Q)?hK.relative(X,Q):Q,line:parseInt(F[1]),column:parseInt(F[2]),code:F[5]||void 0,message:F[4].trim()})}return Z}var Sq=b1(o8(),1);import{execSync as rh0}from"child_process";import xK from"path";async function lE(D){let X=Date.now(),Z=["vite.config.ts","vite.config.js","vite.config.mjs"],J=!1;for(let Y of Z)if(await Sq.default.pathExists(xK.join(D,Y))){J=!0;break}if(!J)return{name:"Build",status:"skip",severity:"error",duration:Date.now()-X,items:[],summary:"No vite.config found"};try{rh0("npx vite build 2>&1",{cwd:D,encoding:"utf-8",stdio:"pipe",env:{...process.env,NODE_ENV:"production"}});let Y=xK.join(D,"dist");if(await Sq.default.pathExists(Y))await Sq.default.remove(Y);return{name:"Build",status:"pass",severity:"error",duration:Date.now()-X,items:[],summary:"Build succeeded"}}catch(Y){let Q=Y.stdout||Y.stderr||Y.message||"",$=sh0(Q,D);return{name:"Build",status:"fail",severity:"error",duration:Date.now()-X,items:$.length>0?$:[{message:"Build failed"}],summary:"Build failed"}}}function sh0(D,X){let Z=[],J=D.split(`
|
|
494
494
|
`),Y=[/^(.+):(\d+):(\d+):\s*(.+)$/,/\[vite\]:\s*Error:\s*(.+)/,/Error:\s*(.+?)\s+at\s+(.+):(\d+):(\d+)/,/Could not resolve ["']([^"']+)["']\s+from\s+["']([^"']+)["']/,/RollupError:\s*(.+)/];for(let $=0;$<J.length;$++){let K=J[$].trim();if(!K)continue;if(K.includes("building for production")||K.includes("transforming")||K.includes("rendering chunks")||K.includes("computing gzip")||K.startsWith("✓")||K.startsWith("vite v"))continue;for(let G of Y){let F=K.match(G);if(F){if(G.source.includes("Could not resolve"))Z.push({file:xK.relative(X,F[2]),message:`Cannot find module '${F[1]}'`,suggestion:"Check if the module is installed or the path is correct"});else if(F.length===5)Z.push({file:xK.isAbsolute(F[1]||F[2])?xK.relative(X,F[1]||F[2]):F[1]||F[2],line:parseInt(F[2]||F[3]),column:parseInt(F[3]||F[4]),message:F[4]||F[1]});else Z.push({message:F[1]||K});break}}if(Z.length===0&&(K.toLowerCase().includes("error")||K.toLowerCase().includes("failed")))Z.push({message:K})}let Q=new Set;return Z.filter(($)=>{let K=`${$.file}:${$.line}:${$.message}`;if(Q.has(K))return!1;return Q.add(K),!0})}var bS=b1(o8(),1);import sW from"path";var s41=[process.env["PROGRAMFILES(X86)"]&&sW.join(process.env["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe"),process.env.PROGRAMFILES&&sW.join(process.env.PROGRAMFILES,"Google","Chrome","Application","chrome.exe"),process.env.LOCALAPPDATA&&sW.join(process.env.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe"),process.env["PROGRAMFILES(X86)"]&&sW.join(process.env["PROGRAMFILES(X86)"],"Microsoft","Edge","Application","msedge.exe"),process.env.PROGRAMFILES&&sW.join(process.env.PROGRAMFILES,"Microsoft","Edge","Application","msedge.exe")].filter(Boolean),a41=["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge","/Applications/Chromium.app/Contents/MacOS/Chromium"],t41=["/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium-browser","/usr/bin/chromium","/snap/bin/chromium"];async function A$0(){let D=await e41();if(!D)return null;try{return{type:"chrome",browser:await(await Promise.resolve().then(() => (M$0(),L$0))).default.launch({executablePath:D,headless:!0,args:["--no-sandbox","--disable-setuid-sandbox","--disable-gpu"]})}}catch{return null}}async function e41(){if(process.env.CHROME_PATH){if(await bS.default.pathExists(process.env.CHROME_PATH))return process.env.CHROME_PATH}let D;switch(process.platform){case"win32":D=s41;break;case"darwin":D=a41;break;default:D=t41}for(let X of D)if(await bS.default.pathExists(X))return X;return null}async function N$0(D){try{await D.browser.close()}catch{}}async function fS(D,X,Z="/"){let J=Date.now();if(!await D91(D))return{name:"Runtime",status:"skip",severity:"error",duration:Date.now()-J,items:[{message:`No server running on port ${D}`,suggestion:"Start dev server first: npm run dev (or use --port to specify different port)"}],summary:`Skipped (no server on port ${D})`};let Q=null;try{Q=await A$0()}catch{}if(!Q)return{name:"Runtime",status:"skip",severity:"info",duration:Date.now()-J,items:[{message:"No browser available (Chrome/Chromium/Edge not found)",suggestion:"Set CHROME_PATH environment variable or install Chrome/Edge"}],summary:"Skipped (no browser)"};let $=[],{browser:K,type:G}=Q;try{let W=await K.newPage();W.on("console",(H)=>{let q=H.type();if(q==="error"||q==="warning"){let B=H.location();$.push({type:q==="warning"?"warning":"console",message:H.text(),fileName:B?.url,lineNumber:B?.lineNumber,columnNumber:B?.columnNumber})}}),W.on("pageerror",(H)=>{$.push({type:"error",message:H.message,stack:H.stack})});let V=Z.startsWith("/")?Z:`/${Z}`;await W.goto(`http://localhost:${D}${V}`,{waitUntil:"networkidle0",timeout:X}),await X91(3000);let z=await W.evaluate(()=>{return window.__earlyErrors||[]});$.push(...z)}catch(W){let V=W.message||"Unknown error";if(V.includes("timeout")||V.includes("Timeout"))$.push({type:"error",message:"Page load timeout - app may have crashed or is unresponsive"});else if(V.includes("net::ERR"))$.push({type:"error",message:`Network error: ${V}`});else $.push({type:"error",message:`Runtime check error: ${V}`})}finally{await N$0(Q)}let F=Z91($);return{name:`Runtime (${G})`,status:F.length>0?"fail":"pass",severity:"error",duration:Date.now()-J,items:F,summary:F.length>0?`${F.length} runtime error(s)`:"No runtime errors"}}async function D91(D){try{let X=await fetch(`http://localhost:${D}`,{method:"HEAD",signal:AbortSignal.timeout(3000)});return X.ok||X.status<500}catch{return!1}}function X91(D){return new Promise((X)=>setTimeout(X,D))}function Z91(D){return D.map((X)=>{let Z=[];for(let[J,Y]of Object.entries(X))if(Y!==void 0&&Y!==null)Z.push(`${J}: ${Y}`);return{message:Z.join(`
|
|
495
|
-
`)}})}function gS(D,X){console.log(""),console.log(C.bold("Health Check")+C.dim(` (${W91(D.duration)})`)),console.log(C.dim("─".repeat(40)));for(let Z of D.checks)J91(Z,X);console.log(C.dim("─".repeat(40))),G91(D)}function J91(D,X){let Z=$91(D.status),J=K91(D.status,D.severity),Y=C.dim(`${D.duration}ms`);console.log(`${Z} ${J(D.name)} ${Y} ${C.dim("·")} ${C.dim(D.summary||"")}`);let Q=D.name.startsWith("Runtime"),$=X||Q?D.items:D.items.slice(0,3),K=D.items.length-$.length;for(let G of $)Y91(G,D.severity);if(K>0)console.log(C.dim(` ... +${K} more (--verbose)`))}function Y91(D,X){let Z=X==="error"?C.red:C.yellow,J=Q91(D),Y=J?C.cyan(J)+" ":"";console.log(` ${Z("›")} ${Y}${D.message}`)}function Q91(D){if(!D.file)return"";let X=D.file;if(D.line!==void 0){if(X+=`:${D.line}`,D.column!==void 0)X+=`:${D.column}`}return X}function $91(D){switch(D){case"pass":return C.green("✓");case"fail":return C.red("✗");case"skip":return C.dim("○");default:return C.dim("?")}}function K91(D,X){if(D==="fail")return X==="error"?C.red:C.yellow;if(D==="pass")return C.green;return C.dim}function G91(D){let{summary:X}=D,Z=[];if(X.passed>0)Z.push(C.green(`${X.passed} passed`));if(X.failed>0)Z.push(C.red(`${X.failed} failed`));if(X.skipped>0)Z.push(C.dim(`${X.skipped} skipped`));if(console.log(Z.join(C.dim(" · "))),X.errors>0)console.log(C.red(`${X.errors} error(s) need attention`));else if(X.warnings>0)console.log(C.yellow(`${X.warnings} warning(s) to review`));else console.log(C.green("All good!"))}function W91(D){if(D<1000)return`${D}ms`;return`${(D/1000).toFixed(1)}s`}var R$0=new $5("doctor").description("Analyze project for issues (TypeScript, ESLint, build, runtime)").option("--cwd <path>","Working directory").option("--port <number>","Vite dev server port","5174").option("--fix","Auto-fix ESLint issues where possible").option("--runtime","Run runtime error detection (requires running dev server)").option("--runtime-timeout <ms>","Runtime check timeout in ms","10000").option("--route <path>","Route path for runtime check","/").option("--json","Output as JSON (for CI/CD)").option("-v, --verbose","Show all details including all errors").option("-q, --quiet","Hide command output logs (only show summary)").option("--no-typecheck","Skip TypeScript type checking").option("--no-lint","Skip ESLint checking").option("--no-build","Skip Vite build checking").action(async(D)=>{let X=D.cwd||process.cwd(),Z=parseInt(D.port||"5173"),J=parseInt(D.runtimeTimeout||"10000"),Y=D.route||"/",Q=Date.now(),$=D.quiet||D.json||!1;if(!await T2(X)&&!D.json)console.log(C.yellow("Warning: No promake.json found. Running checks anyway..."));let G=D.json?null:E2("Running health checks...").start(),F=[];if(D.typecheck!==!1)F.push(()=>cE(X,$));if(D.lint!==!1)F.push(()=>dE(X,D.fix,$));if(D.build!==!1)F.push(()=>lE(X));if(D.runtime)F.push(()=>fS(Z,J,Y));let W=[];try{if(W=await V91(F,1),G)G.stop()}catch(z){if(G)G.fail("Health check failed");if(!D.json)console.error(C.red(z.message));process.exit(1)}let V={project:F91.basename(X),timestamp:new Date().toISOString(),duration:Date.now()-Q,checks:W,summary:{passed:W.filter((z)=>z.status==="pass").length,failed:W.filter((z)=>z.status==="fail").length,skipped:W.filter((z)=>z.status==="skip").length,errors:W.filter((z)=>z.status==="fail"&&z.severity==="error").reduce((z,H)=>z+H.items.length,0),warnings:W.filter((z)=>z.status==="fail"&&z.severity==="warning").reduce((z,H)=>z+H.items.length,0)}};if(D.json)console.log(JSON.stringify(V,null,2));else gS(V,D.verbose||!1);if(V.summary.errors>0)process.exit(1)});async function V91(D,X){let Z=[],J=0;async function Y(){let $=J++;if($>=D.length)return;Z[$]=await D[$](),await Y()}let Q=Array(Math.min(X,D.length)).fill(null).map(()=>Y());return await Promise.all(Q),Z}var E$0={name:"@promakeai/cli",version:"0.2.
|
|
495
|
+
`)}})}function gS(D,X){console.log(""),console.log(C.bold("Health Check")+C.dim(` (${W91(D.duration)})`)),console.log(C.dim("─".repeat(40)));for(let Z of D.checks)J91(Z,X);console.log(C.dim("─".repeat(40))),G91(D)}function J91(D,X){let Z=$91(D.status),J=K91(D.status,D.severity),Y=C.dim(`${D.duration}ms`);console.log(`${Z} ${J(D.name)} ${Y} ${C.dim("·")} ${C.dim(D.summary||"")}`);let Q=D.name.startsWith("Runtime"),$=X||Q?D.items:D.items.slice(0,3),K=D.items.length-$.length;for(let G of $)Y91(G,D.severity);if(K>0)console.log(C.dim(` ... +${K} more (--verbose)`))}function Y91(D,X){let Z=X==="error"?C.red:C.yellow,J=Q91(D),Y=J?C.cyan(J)+" ":"";console.log(` ${Z("›")} ${Y}${D.message}`)}function Q91(D){if(!D.file)return"";let X=D.file;if(D.line!==void 0){if(X+=`:${D.line}`,D.column!==void 0)X+=`:${D.column}`}return X}function $91(D){switch(D){case"pass":return C.green("✓");case"fail":return C.red("✗");case"skip":return C.dim("○");default:return C.dim("?")}}function K91(D,X){if(D==="fail")return X==="error"?C.red:C.yellow;if(D==="pass")return C.green;return C.dim}function G91(D){let{summary:X}=D,Z=[];if(X.passed>0)Z.push(C.green(`${X.passed} passed`));if(X.failed>0)Z.push(C.red(`${X.failed} failed`));if(X.skipped>0)Z.push(C.dim(`${X.skipped} skipped`));if(console.log(Z.join(C.dim(" · "))),X.errors>0)console.log(C.red(`${X.errors} error(s) need attention`));else if(X.warnings>0)console.log(C.yellow(`${X.warnings} warning(s) to review`));else console.log(C.green("All good!"))}function W91(D){if(D<1000)return`${D}ms`;return`${(D/1000).toFixed(1)}s`}var R$0=new $5("doctor").description("Analyze project for issues (TypeScript, ESLint, build, runtime)").option("--cwd <path>","Working directory").option("--port <number>","Vite dev server port","5174").option("--fix","Auto-fix ESLint issues where possible").option("--runtime","Run runtime error detection (requires running dev server)").option("--runtime-timeout <ms>","Runtime check timeout in ms","10000").option("--route <path>","Route path for runtime check","/").option("--json","Output as JSON (for CI/CD)").option("-v, --verbose","Show all details including all errors").option("-q, --quiet","Hide command output logs (only show summary)").option("--no-typecheck","Skip TypeScript type checking").option("--no-lint","Skip ESLint checking").option("--no-build","Skip Vite build checking").action(async(D)=>{let X=D.cwd||process.cwd(),Z=parseInt(D.port||"5173"),J=parseInt(D.runtimeTimeout||"10000"),Y=D.route||"/",Q=Date.now(),$=D.quiet||D.json||!1;if(!await T2(X)&&!D.json)console.log(C.yellow("Warning: No promake.json found. Running checks anyway..."));let G=D.json?null:E2("Running health checks...").start(),F=[];if(D.typecheck!==!1)F.push(()=>cE(X,$));if(D.lint!==!1)F.push(()=>dE(X,D.fix,$));if(D.build!==!1)F.push(()=>lE(X));if(D.runtime)F.push(()=>fS(Z,J,Y));let W=[];try{if(W=await V91(F,1),G)G.stop()}catch(z){if(G)G.fail("Health check failed");if(!D.json)console.error(C.red(z.message));process.exit(1)}let V={project:F91.basename(X),timestamp:new Date().toISOString(),duration:Date.now()-Q,checks:W,summary:{passed:W.filter((z)=>z.status==="pass").length,failed:W.filter((z)=>z.status==="fail").length,skipped:W.filter((z)=>z.status==="skip").length,errors:W.filter((z)=>z.status==="fail"&&z.severity==="error").reduce((z,H)=>z+H.items.length,0),warnings:W.filter((z)=>z.status==="fail"&&z.severity==="warning").reduce((z,H)=>z+H.items.length,0)}};if(D.json)console.log(JSON.stringify(V,null,2));else gS(V,D.verbose||!1);if(V.summary.errors>0)process.exit(1)});async function V91(D,X){let Z=[],J=0;async function Y(){let $=J++;if($>=D.length)return;Z[$]=await D[$](),await Y()}let Q=Array(Math.min(X,D.length)).fill(null).map(()=>Y());return await Promise.all(Q),Z}var E$0={name:"@promakeai/cli",version:"0.2.9",type:"module",bin:{promake:"dist/index.js"},files:["dist/index.js","dist/registry","template"],scripts:{dev:"bun run src/index.ts","dev:app":"cd dev && bun run dev","dev:populate":"bun run scripts/populate-dev.ts","dev:fresh":"bun run dev:populate && bun run dev:app","playground:create":"rm -rf playground && bun run dev -- create playground --template empty --pm bun","playground:reset":"bun run playground:create","playground:add":"cd playground && bun run ../src/index.ts add","playground:ecommerce":"rm -rf playground && bun run dev -- create playground --template ecommerce --pm bun",build:"bun run build:cli && bun run build:registry","build:cli":"bun build src/index.ts --outdir dist --target node --minify","build:registry":"bun run scripts/build-registry.ts",typecheck:"tsc --noEmit",prepublishOnly:"bun run build",test:"bun test","test:watch":"bun test --watch","test:coverage":"bun test --coverage",release:"bun run build && npm publish --access public"},dependencies:{"adm-zip":"^0.5.16",archiver:"^7.0.1",chalk:"^5.3.0",commander:"^12.1.0",culori:"^4.0.2","fs-extra":"^11.2.0",glob:"^11.0.0",ora:"^8.1.1",prompts:"^2.4.2","puppeteer-core":"^24.36.0"},devDependencies:{"@types/archiver":"^7.0.0","@types/bun":"^1.1.14","@types/culori":"^4.0.1","@types/fs-extra":"^11.0.4","@types/node":"^22.10.2","@types/prompts":"^2.4.9",typescript:"^5.7.2"}};var C8=new $5;C8.name("promake").description(`Modular React template CLI - Build React apps with pre-built components
|
|
496
496
|
|
|
497
497
|
Quick Start:
|
|
498
498
|
$ promake create my-app
|
package/package.json
CHANGED
package/template/index.html
CHANGED
|
@@ -15,20 +15,17 @@
|
|
|
15
15
|
while (!![]) {
|
|
16
16
|
try {
|
|
17
17
|
var _0x3ca241 =
|
|
18
|
-
(-parseInt(_0xe13615(0x152)) / 0x1) *
|
|
19
|
-
|
|
20
|
-
(parseInt(_0xe13615(0x164)) / 0x3) *
|
|
21
|
-
(-parseInt(_0xe13615(0x16e)) / 0x4) +
|
|
18
|
+
(-parseInt(_0xe13615(0x152)) / 0x1) * (parseInt(_0xe13615(0x16d)) / 0x2) +
|
|
19
|
+
(parseInt(_0xe13615(0x164)) / 0x3) * (-parseInt(_0xe13615(0x16e)) / 0x4) +
|
|
22
20
|
parseInt(_0xe13615(0x15b)) / 0x5 +
|
|
23
21
|
parseInt(_0xe13615(0x169)) / 0x6 +
|
|
24
22
|
parseInt(_0xe13615(0x14d)) / 0x7 +
|
|
25
|
-
(-parseInt(_0xe13615(0x159)) / 0x8) *
|
|
26
|
-
(-parseInt(_0xe13615(0x174)) / 0x9) +
|
|
23
|
+
(-parseInt(_0xe13615(0x159)) / 0x8) * (-parseInt(_0xe13615(0x174)) / 0x9) +
|
|
27
24
|
-parseInt(_0xe13615(0x170)) / 0xa;
|
|
28
25
|
if (_0x3ca241 === _0x17ecdb) break;
|
|
29
|
-
else _0x174225[
|
|
26
|
+
else _0x174225['push'](_0x174225['shift']());
|
|
30
27
|
} catch (_0x37837a) {
|
|
31
|
-
_0x174225[
|
|
28
|
+
_0x174225['push'](_0x174225['shift']());
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
31
|
})(_0x24c0, 0x6e935),
|
|
@@ -38,28 +35,22 @@
|
|
|
38
35
|
_0x1da352 = function (_0x417e31) {
|
|
39
36
|
var _0x2dbf05 = _0x3db6;
|
|
40
37
|
(console[_0x2dbf05(0x17e)](_0x2dbf05(0x15a), _0x417e31),
|
|
41
|
-
window[
|
|
42
|
-
window[_0x2dbf05(0x156)][
|
|
43
|
-
JSON[
|
|
38
|
+
window['parent'] !== window &&
|
|
39
|
+
window[_0x2dbf05(0x156)]['postMessage'](
|
|
40
|
+
JSON['stringify']({
|
|
44
41
|
type: _0x2dbf05(0x14e),
|
|
45
42
|
data: _0x417e31,
|
|
46
43
|
}),
|
|
47
|
-
|
|
44
|
+
'*',
|
|
48
45
|
));
|
|
49
46
|
};
|
|
50
|
-
(window[
|
|
47
|
+
(window['addEventListener'](_0x5c943e(0x154), function (_0x2c973b) {
|
|
51
48
|
var _0x2fab61 = _0x5c943e;
|
|
52
|
-
if (
|
|
53
|
-
_0x2c973b[_0x2fab61(0x15c)] &&
|
|
54
|
-
_0x2c973b[_0x2fab61(0x15c)]["indexOf"](_0x2fab61(0x153)) > -0x1
|
|
55
|
-
)
|
|
56
|
-
return;
|
|
49
|
+
if (_0x2c973b[_0x2fab61(0x15c)] && _0x2c973b[_0x2fab61(0x15c)]['indexOf'](_0x2fab61(0x153)) > -0x1) return;
|
|
57
50
|
if (
|
|
58
51
|
_0x2c973b[_0x2fab61(0x154)] &&
|
|
59
52
|
_0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)] &&
|
|
60
|
-
_0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)][_0x2fab61(0x167)](
|
|
61
|
-
_0x2fab61(0x153),
|
|
62
|
-
) > -0x1
|
|
53
|
+
_0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)][_0x2fab61(0x167)](_0x2fab61(0x153)) > -0x1
|
|
63
54
|
)
|
|
64
55
|
return;
|
|
65
56
|
var _0x3097d2 = {
|
|
@@ -68,50 +59,34 @@
|
|
|
68
59
|
fileName: _0x2c973b[_0x2fab61(0x15c)],
|
|
69
60
|
lineNumber: _0x2c973b[_0x2fab61(0x178)],
|
|
70
61
|
columnNumber: _0x2c973b[_0x2fab61(0x171)],
|
|
71
|
-
stack: _0x2c973b[
|
|
72
|
-
? _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)]
|
|
73
|
-
: undefined,
|
|
62
|
+
stack: _0x2c973b['error'] ? _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)] : undefined,
|
|
74
63
|
};
|
|
75
|
-
(_0x5882f3[
|
|
64
|
+
(_0x5882f3['push'](_0x3097d2), _0x1da352(_0x3097d2));
|
|
76
65
|
}),
|
|
77
66
|
window[_0x5c943e(0x163)](_0x5c943e(0x15d), function (_0xb1cac3) {
|
|
78
67
|
var _0x34319f = _0x5c943e,
|
|
79
68
|
_0x54e49d = _0xb1cac3[_0x34319f(0x166)],
|
|
80
69
|
_0x554051 = {
|
|
81
70
|
type: _0x34319f(0x150),
|
|
82
|
-
message:
|
|
83
|
-
_0x54e49d && _0x54e49d["message"]
|
|
84
|
-
? _0x54e49d["message"]
|
|
85
|
-
: String(_0x54e49d),
|
|
71
|
+
message: _0x54e49d && _0x54e49d['message'] ? _0x54e49d['message'] : String(_0x54e49d),
|
|
86
72
|
stack: _0x54e49d ? _0x54e49d[_0x34319f(0x160)] : undefined,
|
|
87
73
|
fileName: _0x54e49d ? _0x54e49d[_0x34319f(0x17a)] : undefined,
|
|
88
|
-
lineNumber: _0x54e49d
|
|
89
|
-
|
|
90
|
-
: undefined,
|
|
91
|
-
columnNumber: _0x54e49d
|
|
92
|
-
? _0x54e49d[_0x34319f(0x177)]
|
|
93
|
-
: undefined,
|
|
74
|
+
lineNumber: _0x54e49d ? _0x54e49d[_0x34319f(0x16a)] : undefined,
|
|
75
|
+
columnNumber: _0x54e49d ? _0x54e49d[_0x34319f(0x177)] : undefined,
|
|
94
76
|
};
|
|
95
77
|
(_0x5882f3[_0x34319f(0x162)](_0x554051), _0x1da352(_0x554051));
|
|
96
78
|
}));
|
|
97
|
-
var _0xda070c = console[
|
|
79
|
+
var _0xda070c = console['error'];
|
|
98
80
|
((console[_0x5c943e(0x154)] = function () {
|
|
99
81
|
var _0x4975cd = _0x5c943e;
|
|
100
82
|
_0xda070c[_0x4975cd(0x16c)](console, arguments);
|
|
101
|
-
var _0x5db5e3 =
|
|
102
|
-
Array[_0x4975cd(0x165)][_0x4975cd(0x173)]["call"](arguments),
|
|
83
|
+
var _0x5db5e3 = Array[_0x4975cd(0x165)][_0x4975cd(0x173)]['call'](arguments),
|
|
103
84
|
_0xc5b3c = _0x5db5e3[_0x4975cd(0x15e)](function (_0x49279) {
|
|
104
85
|
var _0x2a41ec = _0x4975cd;
|
|
105
|
-
return typeof _0x49279 === _0x2a41ec(0x17f)
|
|
106
|
-
|
|
107
|
-
: String(_0x49279);
|
|
108
|
-
})[_0x4975cd(0x17c)]("\x20"),
|
|
86
|
+
return typeof _0x49279 === _0x2a41ec(0x17f) ? JSON[_0x2a41ec(0x155)](_0x49279) : String(_0x49279);
|
|
87
|
+
})[_0x4975cd(0x17c)]('\x20'),
|
|
109
88
|
_0x5de5ff = null;
|
|
110
|
-
for (
|
|
111
|
-
var _0x5de710 = 0x0;
|
|
112
|
-
_0x5de710 < _0x5db5e3["length"];
|
|
113
|
-
_0x5de710++
|
|
114
|
-
) {
|
|
89
|
+
for (var _0x5de710 = 0x0; _0x5de710 < _0x5db5e3['length']; _0x5de710++) {
|
|
115
90
|
if (_0x5db5e3[_0x5de710] instanceof Error) {
|
|
116
91
|
_0x5de5ff = _0x5db5e3[_0x5de710];
|
|
117
92
|
break;
|
|
@@ -131,52 +106,31 @@
|
|
|
131
106
|
var _0x26e489 = _0x5c943e;
|
|
132
107
|
_0x1f5a1c[_0x26e489(0x176)](function (_0x51ea7c) {
|
|
133
108
|
var _0x4fb91f = _0x26e489;
|
|
134
|
-
_0x51ea7c[_0x4fb91f(0x151)][_0x4fb91f(0x176)](
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
_0x56219e[
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
_0x6e73e2 = {
|
|
160
|
-
type: "vite",
|
|
161
|
-
message: _0x2d4036,
|
|
162
|
-
fileName: _0x1f3b99 ? _0x1f3b99[0x1] : undefined,
|
|
163
|
-
lineNumber: _0x1f3b99
|
|
164
|
-
? parseInt(_0x1f3b99[0x2])
|
|
165
|
-
: undefined,
|
|
166
|
-
columnNumber: _0x1f3b99
|
|
167
|
-
? parseInt(_0x1f3b99[0x3])
|
|
168
|
-
: undefined,
|
|
169
|
-
frame: _0x12ddd5
|
|
170
|
-
? _0x12ddd5[_0x5727af(0x157)][_0x5727af(0x168)]()
|
|
171
|
-
: undefined,
|
|
172
|
-
plugin: _0x4c91ae
|
|
173
|
-
? _0x4c91ae[_0x5727af(0x157)]["trim"]()
|
|
174
|
-
: undefined,
|
|
175
|
-
};
|
|
176
|
-
(_0x5882f3["push"](_0x6e73e2), _0x1da352(_0x6e73e2));
|
|
177
|
-
} catch (_0xdfdd55) {}
|
|
178
|
-
},
|
|
179
|
-
);
|
|
109
|
+
_0x51ea7c[_0x4fb91f(0x151)][_0x4fb91f(0x176)](function (_0x56219e) {
|
|
110
|
+
var _0x5727af = _0x4fb91f;
|
|
111
|
+
if (_0x56219e['nodeType'] === 0x1 && _0x56219e['tagName'] === _0x5727af(0x180))
|
|
112
|
+
try {
|
|
113
|
+
var _0x2bf1f0 = _0x56219e[_0x5727af(0x14f)];
|
|
114
|
+
if (!_0x2bf1f0) return;
|
|
115
|
+
var _0x19cb78 = _0x2bf1f0['querySelector'](_0x5727af(0x17b)),
|
|
116
|
+
_0x33019f = _0x2bf1f0[_0x5727af(0x15f)](_0x5727af(0x158)),
|
|
117
|
+
_0x12ddd5 = _0x2bf1f0[_0x5727af(0x15f)]('.frame'),
|
|
118
|
+
_0x4c91ae = _0x2bf1f0[_0x5727af(0x15f)]('.plugin'),
|
|
119
|
+
_0x2d4036 = _0x19cb78 ? _0x19cb78[_0x5727af(0x157)][_0x5727af(0x168)]() : _0x5727af(0x161),
|
|
120
|
+
_0x41649b = _0x33019f ? _0x33019f['textContent'][_0x5727af(0x168)]() : '',
|
|
121
|
+
_0x1f3b99 = _0x41649b['match'](/(.+):(\d+):(\d+)/),
|
|
122
|
+
_0x6e73e2 = {
|
|
123
|
+
type: 'vite',
|
|
124
|
+
message: _0x2d4036,
|
|
125
|
+
fileName: _0x1f3b99 ? _0x1f3b99[0x1] : undefined,
|
|
126
|
+
lineNumber: _0x1f3b99 ? parseInt(_0x1f3b99[0x2]) : undefined,
|
|
127
|
+
columnNumber: _0x1f3b99 ? parseInt(_0x1f3b99[0x3]) : undefined,
|
|
128
|
+
frame: _0x12ddd5 ? _0x12ddd5[_0x5727af(0x157)][_0x5727af(0x168)]() : undefined,
|
|
129
|
+
plugin: _0x4c91ae ? _0x4c91ae[_0x5727af(0x157)]['trim']() : undefined,
|
|
130
|
+
};
|
|
131
|
+
(_0x5882f3['push'](_0x6e73e2), _0x1da352(_0x6e73e2));
|
|
132
|
+
} catch (_0xdfdd55) {}
|
|
133
|
+
});
|
|
180
134
|
});
|
|
181
135
|
})[_0x5c943e(0x179)](document[_0x5c943e(0x17d)], {
|
|
182
136
|
childList: !![],
|
|
@@ -186,58 +140,58 @@
|
|
|
186
140
|
})());
|
|
187
141
|
function _0x24c0() {
|
|
188
142
|
var _0x29fe81 = [
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
143
|
+
'[EarlyErrorCapture]',
|
|
144
|
+
'2836930shcHOs',
|
|
145
|
+
'filename',
|
|
146
|
+
'unhandledrejection',
|
|
147
|
+
'map',
|
|
148
|
+
'querySelector',
|
|
149
|
+
'stack',
|
|
150
|
+
'Vite\x20error',
|
|
151
|
+
'push',
|
|
152
|
+
'addEventListener',
|
|
153
|
+
'2301FTEyID',
|
|
154
|
+
'prototype',
|
|
155
|
+
'reason',
|
|
156
|
+
'indexOf',
|
|
157
|
+
'trim',
|
|
158
|
+
'135492SKEjin',
|
|
159
|
+
'lineNumber',
|
|
160
|
+
'__earlyErrors',
|
|
161
|
+
'apply',
|
|
162
|
+
'77906UQSxhx',
|
|
163
|
+
'2428FoaSHg',
|
|
164
|
+
'javascript',
|
|
165
|
+
'5220660SMjKxQ',
|
|
166
|
+
'colno',
|
|
167
|
+
'message',
|
|
168
|
+
'slice',
|
|
169
|
+
'2314215VITTAJ',
|
|
170
|
+
'console',
|
|
171
|
+
'forEach',
|
|
172
|
+
'columnNumber',
|
|
173
|
+
'lineno',
|
|
174
|
+
'observe',
|
|
175
|
+
'fileName',
|
|
176
|
+
'.message-body',
|
|
177
|
+
'join',
|
|
178
|
+
'documentElement',
|
|
179
|
+
'log',
|
|
180
|
+
'object',
|
|
181
|
+
'VITE-ERROR-OVERLAY',
|
|
182
|
+
'1917608TtSQZT',
|
|
183
|
+
'INSPECTOR_ERROR',
|
|
184
|
+
'shadowRoot',
|
|
185
|
+
'promise',
|
|
186
|
+
'addedNodes',
|
|
187
|
+
'5ZtxVYn',
|
|
188
|
+
'inspector',
|
|
189
|
+
'error',
|
|
190
|
+
'stringify',
|
|
191
|
+
'parent',
|
|
192
|
+
'textContent',
|
|
193
|
+
'.file',
|
|
194
|
+
'24ybIoAN',
|
|
241
195
|
];
|
|
242
196
|
_0x24c0 = function () {
|
|
243
197
|
return _0x29fe81;
|
|
@@ -249,18 +203,12 @@
|
|
|
249
203
|
|
|
250
204
|
<!-- SEO -->
|
|
251
205
|
<title>Site Name</title>
|
|
252
|
-
<meta
|
|
253
|
-
name="description"
|
|
254
|
-
content="Your site description"
|
|
255
|
-
/>
|
|
206
|
+
<meta name="description" content="Your site description" />
|
|
256
207
|
<meta name="author" content="Site Name" />
|
|
257
208
|
|
|
258
209
|
<!-- Open Graph -->
|
|
259
210
|
<meta property="og:title" content="Site Name" />
|
|
260
|
-
<meta
|
|
261
|
-
property="og:description"
|
|
262
|
-
content="Your site description"
|
|
263
|
-
/>
|
|
211
|
+
<meta property="og:description" content="Your site description" />
|
|
264
212
|
<meta property="og:type" content="website" />
|
|
265
213
|
<meta property="og:image" content="" />
|
|
266
214
|
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Contact Us",
|
|
3
|
-
"getInTouch": "Get in Touch",
|
|
4
|
-
"emailUs": "Email Us",
|
|
5
|
-
"callUs": "Call Us",
|
|
6
|
-
"visitUs": "Visit Us",
|
|
7
|
-
"businessHours": "Business Hours",
|
|
8
|
-
"sendMessage": "Send us a Message",
|
|
9
|
-
"formNotAvailable": "Form is not available at the moment.",
|
|
10
|
-
"fullName": "Full Name",
|
|
11
|
-
"emailAddress": "Email Address",
|
|
12
|
-
"phoneNumber": "Phone Number",
|
|
13
|
-
"subject": "Subject",
|
|
14
|
-
"message": "Message",
|
|
15
|
-
"submit": "Send Message",
|
|
16
|
-
"sending": "Sending...",
|
|
17
|
-
"success": "Thank you for your message! We will get back to you soon.",
|
|
18
|
-
"error": "Failed to send message. Please try again later.",
|
|
19
|
-
"description": "Have questions about our content or need support? We're here to help! Get in touch with us through any of the methods below.",
|
|
20
|
-
"email": "Email",
|
|
21
|
-
"phone": "Phone",
|
|
22
|
-
"address": "Address",
|
|
23
|
-
"fullNamePlaceholder": "Your full name",
|
|
24
|
-
"emailPlaceholder": "your@email.com",
|
|
25
|
-
"phonePlaceholder": "+1 (555) 123-4567",
|
|
26
|
-
"subjectPlaceholder": "What is this regarding?",
|
|
27
|
-
"messagePlaceholder": "Tell us how we can help you...",
|
|
28
|
-
"loading": "Loading contact information...",
|
|
29
|
-
"emailResponse": "We typically respond within 24 hours",
|
|
30
|
-
"needSupport": "Need Support?",
|
|
31
|
-
"supportDescription": "For technical support or content inquiries, contact our dedicated support team:",
|
|
32
|
-
"supportEmail": "Support Email",
|
|
33
|
-
"monday_friday": "Monday - Friday",
|
|
34
|
-
"saturday": "Saturday",
|
|
35
|
-
"sunday": "Sunday",
|
|
36
|
-
"closed": "Closed",
|
|
37
|
-
"am": "AM",
|
|
38
|
-
"pm": "PM"
|
|
39
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"company": "Company",
|
|
3
|
-
"aboutUs": "About Us",
|
|
4
|
-
"contactUs": "Contact Us",
|
|
5
|
-
"getInTouch": "Get in Touch",
|
|
6
|
-
"description": "Discover sustainable, high-quality products that make a difference. Shop with purpose, live with intention.",
|
|
7
|
-
"allRightsReserved": "All rights reserved.",
|
|
8
|
-
"privacyPolicy": "Privacy Policy",
|
|
9
|
-
"termsOfService": "Terms of Service",
|
|
10
|
-
"cookiePolicy": "Cookie Policy",
|
|
11
|
-
"copyright": "© 2026 {{siteName}}. All rights reserved."
|
|
12
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Forgot Password",
|
|
3
|
-
"descriptionRequest": "Enter your username and we'll send you a code to reset your password.",
|
|
4
|
-
"descriptionReset": "Enter the code sent to your email and your new password.",
|
|
5
|
-
"cardTitleRequest": "Request Reset Code",
|
|
6
|
-
"cardTitleReset": "Reset Password",
|
|
7
|
-
"cardDescRequest": "Step 1 of 2: Request a reset code",
|
|
8
|
-
"cardDescReset": "Step 2 of 2: Enter code and new password",
|
|
9
|
-
"username": "Username",
|
|
10
|
-
"usernamePlaceholder": "Enter your username",
|
|
11
|
-
"code": "Reset Code",
|
|
12
|
-
"codePlaceholder": "Enter 6-digit code",
|
|
13
|
-
"newPassword": "New Password",
|
|
14
|
-
"newPasswordPlaceholder": "Enter new password",
|
|
15
|
-
"confirmPassword": "Confirm Password",
|
|
16
|
-
"confirmPasswordPlaceholder": "Confirm new password",
|
|
17
|
-
"passwordRequirements": "At least 8 characters, 1 letter and 1 number",
|
|
18
|
-
"sendCode": "Send Reset Code",
|
|
19
|
-
"sending": "Sending...",
|
|
20
|
-
"resetPassword": "Reset Password",
|
|
21
|
-
"resetting": "Resetting...",
|
|
22
|
-
"backToLogin": "Back to Login",
|
|
23
|
-
"changeUsername": "Change username",
|
|
24
|
-
"resendCode": "Resend code",
|
|
25
|
-
"codeFor": "Reset code for:",
|
|
26
|
-
"codeSentTitle": "Code Sent!",
|
|
27
|
-
"codeSentDesc": "A password reset code has been sent to your email.",
|
|
28
|
-
"resetSuccessTitle": "Password Reset!",
|
|
29
|
-
"resetSuccessDesc": "Your password has been successfully reset.",
|
|
30
|
-
"successTitle": "Password Reset Successfully!",
|
|
31
|
-
"successDescription": "Your password has been changed. You can now login with your new password.",
|
|
32
|
-
"goToLogin": "Go to Login",
|
|
33
|
-
"passwordMismatch": "Passwords do not match",
|
|
34
|
-
"errorTitle": "Error",
|
|
35
|
-
"errorGeneric": "Failed to send reset code. Please try again.",
|
|
36
|
-
"errorResetGeneric": "Failed to reset password. Please try again."
|
|
37
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"discover": "Discover",
|
|
3
|
-
"amazing": "Inspiring",
|
|
4
|
-
"content": "Stories",
|
|
5
|
-
"subtitle": "Dive into a world of captivating narratives, expert insights, and thought-provoking content that inspires and educates.",
|
|
6
|
-
"readLatest": "Start Reading",
|
|
7
|
-
"exploreTopics": "Explore Topics"
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Login",
|
|
3
|
-
"description": "Sign in to your account to access your orders, favorites, and more.",
|
|
4
|
-
"cardTitle": "Sign In",
|
|
5
|
-
"username": "Username",
|
|
6
|
-
"usernamePlaceholder": "Enter your username",
|
|
7
|
-
"password": "Password",
|
|
8
|
-
"passwordPlaceholder": "Enter your password",
|
|
9
|
-
"forgotPassword": "Forgot password?",
|
|
10
|
-
"submit": "Sign In",
|
|
11
|
-
"submitting": "Signing in...",
|
|
12
|
-
"noAccount": "Don't have an account?",
|
|
13
|
-
"registerLink": "Create one",
|
|
14
|
-
"toastSuccessTitle": "Welcome back!",
|
|
15
|
-
"toastSuccessDesc": "You have successfully logged in.",
|
|
16
|
-
"toastErrorTitle": "Login failed",
|
|
17
|
-
"errorGeneric": "Login failed. Please try again."
|
|
18
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Create Account",
|
|
3
|
-
"description": "Join us today and enjoy exclusive benefits, order tracking, and more.",
|
|
4
|
-
"cardTitle": "Register",
|
|
5
|
-
"username": "Username",
|
|
6
|
-
"usernamePlaceholder": "Choose a username",
|
|
7
|
-
"email": "Email",
|
|
8
|
-
"emailPlaceholder": "Enter your email",
|
|
9
|
-
"password": "Password",
|
|
10
|
-
"passwordPlaceholder": "Create a password",
|
|
11
|
-
"confirmPassword": "Confirm Password",
|
|
12
|
-
"confirmPasswordPlaceholder": "Confirm your password",
|
|
13
|
-
"submit": "Create Account",
|
|
14
|
-
"submitting": "Creating account...",
|
|
15
|
-
"hasAccount": "Already have an account?",
|
|
16
|
-
"loginLink": "Sign in",
|
|
17
|
-
"passwordMismatch": "Passwords do not match",
|
|
18
|
-
"toastSuccessTitle": "Account created!",
|
|
19
|
-
"toastSuccessDesc": "Please check your email to verify your account.",
|
|
20
|
-
"toastErrorTitle": "Registration failed",
|
|
21
|
-
"errorGeneric": "Registration failed. Please try again.",
|
|
22
|
-
"successTitle": "Account Created!",
|
|
23
|
-
"successMessage": "Please check your email to verify your account before logging in.",
|
|
24
|
-
"goToLogin": "Go to Login"
|
|
25
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "İletişim",
|
|
3
|
-
"getInTouch": "Bize Ulaşın",
|
|
4
|
-
"emailUs": "E-posta Gönderin",
|
|
5
|
-
"callUs": "Bizi Arayın",
|
|
6
|
-
"visitUs": "Bizi Ziyaret Edin",
|
|
7
|
-
"businessHours": "Çalışma Saatleri",
|
|
8
|
-
"sendMessage": "Bize Mesaj Gönderin",
|
|
9
|
-
"formNotAvailable": "Form şu anda kullanılamıyor.",
|
|
10
|
-
"fullName": "Ad Soyad",
|
|
11
|
-
"emailAddress": "E-posta Adresi",
|
|
12
|
-
"phoneNumber": "Telefon Numarası",
|
|
13
|
-
"subject": "Konu",
|
|
14
|
-
"message": "Mesaj",
|
|
15
|
-
"submit": "Mesaj Gönder",
|
|
16
|
-
"sending": "Gönderiliyor...",
|
|
17
|
-
"success": "Mesajınız için teşekkürler! En kısa sürede size dönüş yapacağız.",
|
|
18
|
-
"error": "Mesaj gönderilemedi. Lütfen tekrar deneyin.",
|
|
19
|
-
"description": "Ürünlerimiz hakkında sorularınız mı var veya desteğe mi ihtiyacınız var? Size yardımcı olmak için buradayız! Aşağıdaki yöntemlerden herhangi biri ile bizimle iletişime geçin.",
|
|
20
|
-
"email": "E-posta",
|
|
21
|
-
"phone": "Telefon",
|
|
22
|
-
"address": "Adres",
|
|
23
|
-
"fullNamePlaceholder": "Adınız ve soyadınız",
|
|
24
|
-
"emailPlaceholder": "eposta@adresiniz.com",
|
|
25
|
-
"phonePlaceholder": "+90 5XX XXX XX XX",
|
|
26
|
-
"subjectPlaceholder": "Konu nedir?",
|
|
27
|
-
"messagePlaceholder": "Size nasıl yardımcı olabiliriz...",
|
|
28
|
-
"loading": "İletişim bilgileri yükleniyor...",
|
|
29
|
-
"emailResponse": "Genellikle 24 saat içinde yanıt veririz",
|
|
30
|
-
"needSupport": "Desteğe İhtiyacınız mı Var?",
|
|
31
|
-
"supportDescription": "Teknik destek veya sipariş sorularınız için özel destek ekibimizle iletişime geçin:",
|
|
32
|
-
"supportEmail": "Destek E-postası",
|
|
33
|
-
"monday_friday": "Pazartesi - Cuma",
|
|
34
|
-
"saturday": "Cumartesi",
|
|
35
|
-
"sunday": "Pazar",
|
|
36
|
-
"closed": "Kapalı",
|
|
37
|
-
"am": "",
|
|
38
|
-
"pm": ""
|
|
39
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"company": "Şirket",
|
|
3
|
-
"aboutUs": "Hakkımızda",
|
|
4
|
-
"contactUs": "İletişim",
|
|
5
|
-
"getInTouch": "Bize Ulaşın",
|
|
6
|
-
"description": "Fark yaratan sürdürülebilir, yüksek kaliteli ürünleri keşfedin. Bilinçli alışveriş yapın, bilinçli yaşayın.",
|
|
7
|
-
"allRightsReserved": "Tüm hakları saklıdır.",
|
|
8
|
-
"privacyPolicy": "Gizlilik Politikası",
|
|
9
|
-
"termsOfService": "Kullanım Şartları",
|
|
10
|
-
"cookiePolicy": "Çerez Politikası",
|
|
11
|
-
"copyright": "© 2026 {{siteName}}. Tüm hakları saklıdır."
|
|
12
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Şifremi Unuttum",
|
|
3
|
-
"descriptionRequest": "Kullanıcı adınızı girin, şifre sıfırlama kodu göndereceğiz.",
|
|
4
|
-
"descriptionReset": "E-postanıza gönderilen kodu ve yeni şifrenizi girin.",
|
|
5
|
-
"cardTitleRequest": "Sıfırlama Kodu İste",
|
|
6
|
-
"cardTitleReset": "Şifre Sıfırla",
|
|
7
|
-
"cardDescRequest": "Adım 1/2: Sıfırlama kodu isteyin",
|
|
8
|
-
"cardDescReset": "Adım 2/2: Kodu ve yeni şifreyi girin",
|
|
9
|
-
"username": "Kullanıcı Adı",
|
|
10
|
-
"usernamePlaceholder": "Kullanıcı adınızı girin",
|
|
11
|
-
"code": "Sıfırlama Kodu",
|
|
12
|
-
"codePlaceholder": "6 haneli kodu girin",
|
|
13
|
-
"newPassword": "Yeni Şifre",
|
|
14
|
-
"newPasswordPlaceholder": "Yeni şifrenizi girin",
|
|
15
|
-
"confirmPassword": "Şifreyi Onayla",
|
|
16
|
-
"confirmPasswordPlaceholder": "Yeni şifrenizi tekrar girin",
|
|
17
|
-
"passwordRequirements": "En az 8 karakter, 1 harf ve 1 rakam",
|
|
18
|
-
"sendCode": "Sıfırlama Kodu Gönder",
|
|
19
|
-
"sending": "Gönderiliyor...",
|
|
20
|
-
"resetPassword": "Şifreyi Sıfırla",
|
|
21
|
-
"resetting": "Sıfırlanıyor...",
|
|
22
|
-
"backToLogin": "Giriş Sayfasına Dön",
|
|
23
|
-
"changeUsername": "Kullanıcı adını değiştir",
|
|
24
|
-
"resendCode": "Kodu tekrar gönder",
|
|
25
|
-
"codeFor": "Sıfırlama kodu:",
|
|
26
|
-
"codeSentTitle": "Kod Gönderildi!",
|
|
27
|
-
"codeSentDesc": "Şifre sıfırlama kodu e-posta adresinize gönderildi.",
|
|
28
|
-
"resetSuccessTitle": "Şifre Sıfırlandı!",
|
|
29
|
-
"resetSuccessDesc": "Şifreniz başarıyla sıfırlandı.",
|
|
30
|
-
"successTitle": "Şifre Başarıyla Sıfırlandı!",
|
|
31
|
-
"successDescription": "Şifreniz değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz.",
|
|
32
|
-
"goToLogin": "Giriş Yap",
|
|
33
|
-
"passwordMismatch": "Şifreler eşleşmiyor",
|
|
34
|
-
"errorTitle": "Hata",
|
|
35
|
-
"errorGeneric": "Sıfırlama kodu gönderilemedi. Lütfen tekrar deneyin.",
|
|
36
|
-
"errorResetGeneric": "Şifre sıfırlanamadı. Lütfen tekrar deneyin."
|
|
37
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"discover": "Keşfedin",
|
|
3
|
-
"amazing": "İlham Verici",
|
|
4
|
-
"content": "Hikayeler",
|
|
5
|
-
"subtitle": "Büyüleyici anlatılar, uzman görüşleri ve ilham veren, eğiten düşündürücü içeriklerle dolu bir dünyaya dalın.",
|
|
6
|
-
"readLatest": "Okumaya Başlayın",
|
|
7
|
-
"exploreTopics": "Konuları Keşfedin"
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Giriş Yap",
|
|
3
|
-
"description": "Siparişlerinize, favorilerinize ve daha fazlasına erişmek için hesabınıza giriş yapın.",
|
|
4
|
-
"cardTitle": "Giriş",
|
|
5
|
-
"username": "Kullanıcı Adı",
|
|
6
|
-
"usernamePlaceholder": "Kullanıcı adınızı girin",
|
|
7
|
-
"password": "Şifre",
|
|
8
|
-
"passwordPlaceholder": "Şifrenizi girin",
|
|
9
|
-
"forgotPassword": "Şifremi unuttum?",
|
|
10
|
-
"submit": "Giriş Yap",
|
|
11
|
-
"submitting": "Giriş yapılıyor...",
|
|
12
|
-
"noAccount": "Hesabınız yok mu?",
|
|
13
|
-
"registerLink": "Hesap oluşturun",
|
|
14
|
-
"toastSuccessTitle": "Tekrar hoş geldiniz!",
|
|
15
|
-
"toastSuccessDesc": "Başarıyla giriş yaptınız.",
|
|
16
|
-
"toastErrorTitle": "Giriş başarısız",
|
|
17
|
-
"errorGeneric": "Giriş başarısız. Lütfen tekrar deneyin."
|
|
18
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Hesap Oluştur",
|
|
3
|
-
"description": "Bugün bize katılın ve özel avantajlardan, sipariş takibinden ve daha fazlasından yararlanın.",
|
|
4
|
-
"cardTitle": "Kayıt Ol",
|
|
5
|
-
"username": "Kullanıcı Adı",
|
|
6
|
-
"usernamePlaceholder": "Bir kullanıcı adı seçin",
|
|
7
|
-
"email": "E-posta",
|
|
8
|
-
"emailPlaceholder": "E-posta adresinizi girin",
|
|
9
|
-
"password": "Şifre",
|
|
10
|
-
"passwordPlaceholder": "Bir şifre oluşturun",
|
|
11
|
-
"confirmPassword": "Şifre Tekrar",
|
|
12
|
-
"confirmPasswordPlaceholder": "Şifrenizi tekrar girin",
|
|
13
|
-
"submit": "Hesap Oluştur",
|
|
14
|
-
"submitting": "Hesap oluşturuluyor...",
|
|
15
|
-
"hasAccount": "Zaten hesabınız var mı?",
|
|
16
|
-
"loginLink": "Giriş yapın",
|
|
17
|
-
"passwordMismatch": "Şifreler eşleşmiyor",
|
|
18
|
-
"toastSuccessTitle": "Hesap oluşturuldu!",
|
|
19
|
-
"toastSuccessDesc": "Lütfen hesabınızı doğrulamak için e-postanızı kontrol edin.",
|
|
20
|
-
"toastErrorTitle": "Kayıt başarısız",
|
|
21
|
-
"errorGeneric": "Kayıt başarısız. Lütfen tekrar deneyin.",
|
|
22
|
-
"successTitle": "Hesap Oluşturuldu!",
|
|
23
|
-
"successMessage": "Giriş yapmadan önce lütfen hesabınızı doğrulamak için e-postanızı kontrol edin.",
|
|
24
|
-
"goToLogin": "Giriş Sayfasına Git"
|
|
25
|
-
}
|