Lines 94-141javascript
94`);try{let{planPath:n,surveyTypes:o,hasMcqOtherPickers:s}=await Ft({projectRoot:t,instanceIdOverride:e.instanceIdOverride});console.log(`${Q.green}\u2705 Patched ${n} from live fetch (\xA70, \xA73b\u2013\xA73e)${Q.reset}`),mt(t,o,s),console.log(`${Q.dim}Author a component for each fetched type \u2014 read its ui-spec first${Q.reset}`);let r=Fn(t);return console.log(`
96`),console.log(`${Q.dim}Next: npx cfm-sdk verify-build${Q.reset}`),0}catch(n){return console.error(`
97${Q.red}\u274C ${N(n)}${Q.reset}`),console.error(`${Q.dim}Fallback: npx cfm-sdk fill-implementation-plan --from-fetch${Q.reset}`),1}}var Q,er=f(()=>{"use strict";k();Ye();cn();Xe();ne();he();ze();Q=c});var dn={};Ne(dn,{SURVEY_DEPLOY_CONFIG_FILE:()=>Qt,readDeployTarget:()=>or,runGetDeployTarget:()=>Aa,runSetDeployTarget:()=>va,writeDeployTarget:()=>sr});function tr(e){return pn.join(e,Qt)}function nr(e){return pn.join(e,xa)}function Ta(e){let t=tr(e);if(G.existsSync(t))return t;let n=nr(e);return G.existsSync(n)?n:t}function or(e){let t=Ta(e);if(!G.existsSync(t))throw new Error(`${Qt} not found ...
98`,"utf8"),n}function Aa(e={}){let t=_(e.projectRoot),n=or(t),o=jt(n);return console.log(`${M.green}deploy.target:${M.reset} ${n}`),console.log(`${M.dim}Platform: ${o} (from ${Qt})${M.reset}`),0}async function va(e={}){let t=e.target?.toLowerCase().trim();if(t!=="aws"&&t!=="vercel")return console.error(`${M.red}FAIL:${M.reset} Usage: npx cfm-sdk set-deploy-target aws|vercel`),1;let n=_(e.projectRoot);if(!je(n)?.coreVerifyPassedAt)return console.error(`
99${M.red}Core verify not recorded. Run npx cfm-sdk verify-build successfully before set-deploy-target.${M.reset}`),1;let s=sr(n,t),r=jt(t);try{kn(n)}catch(i){return console.error(`
100${M.red}${N(i)}${M.reset}`),1}if(console.log(`${M.green}OK:${M.reset} Wrote deploy.target=${t} (${r}) \u2192 ${s}`),t==="aws"){let i=e.surveyId?.trim()||"<survey-id>",a=process.env.CFM_INSTANCE_ID?.trim();if(a&&i==="<survey-id>")try{let{survey:l}=await ue(n,a);i=l.id}catch{}console.log(`
102`),console.log(`${M.dim}After client pastes key: npx cfm-sdk create-distribution --s3-key=<key>${M.reset}`)}else console.log(`${M.dim}After client confirms deploy yes: npx cfm-sdk deploy${M.reset}`);return 0}var G,pn,M,Qt,xa,un=f(()=>{"use strict";G=h(require("fs")),pn=h(require("path"));k();ne();he();qe
104`),1}try{Dn(t,r)}catch(S){return console.error(`${Z.red}${N(S)}${Z.reset}`),1}if(!o)throw new Error("Missing OUT_DIR \u2014 set OUT_DIR to the absolute path of out/ or dist/");if(!re.existsSync(W.join(o,"index.html")))throw new Error(`Missing ${W.join(o,"index.html")} \u2014 run build first`);let{survey:i,apiResponse:a}=await ue(t,s),l=i.id,d=a.cfmSurveyDTO?.name?.trim()||l,u=ba(),g=wa(o);console.log(`${Z.cyan}\u2192 Creating distribution${Z.reset} for ${d} (${l}, s3Key: ${r})`),console.log(` uploading ${g.length} files from ${o}\u2026`);let y=await La(n,s,r,g);await Da(o,y.uploads,g),console ...
106`),Ln(t,r),0}catch(t){return console.error(`${Z.red}\u274C create-distribution failed: ${N(t)}${Z.reset}`),1}}var re,W,Z,rr,Ca,fn,Ea,ka,ar=f(()=>{"use strict";re=h(require("fs")),W=h(require("path"));Ze();ne();k();ze();he();qe();Z=c,rr=500,Ca=52428800,fn=3,Ea=2e3;ka=e=>new Promise(t=>setTimeout(t,e))});k();k();ae();var mn=h(require("readline/promises")),rt=require("process");async function ye(e){let t=mn.default.createInterface({input:rt.stdin,output:rt.stdout});try{return(await t.question(e
107`);let t=await ye("Would you like to install/upgrade Node.js v18+ automatically? (y/N): ");t.toLowerCase()==="y"||t.toLowerCase()==="yes"||(console.log(`
108\u274C ${c.red}Aborted. Please manually upgrade Node.js to v18+ and try again.${c.reset}
109`),process.exit(1));let o=process.platform==="win32",s=process.platform==="darwin";o?ge("winget")?(console.log(`
110\u{1F4E6} ${c.green}winget package manager found! Installing Node.js v18+ in background...${c.reset}`),J("winget",["upgrade","OpenJS.NodeJS","--silent","--accept-package-agreements","--accept-source-agreements"])?(console.log(`
111\u2714 ${c.green}Node.js installation triggered successfully. Please restart your terminal/command-prompt for changes to take effect.${c.reset}
112`),process.exit(0)):(console.log(`
113\u274C ${c.red}winget update failed. Please update Node.js manually at https://nodejs.org/${c.reset}
114`),process.exit(1))):(console.log(`
115\u274C ${c.red}winget package manager is not installed on this system.${c.reset}`),console.log(`${c.bold}\u{1F449} To proceed, please either:${c.reset}`),console.log(" 1. Install winget (App Installer) from the Microsoft Store."),console.log(` 2. Or manually download and install Node.js (v18+) from: https://nodejs.org/
116`),process.exit(1)):s?ge("brew")?(console.log(`
117\u{1F4E6} ${c.green}Homebrew package manager found! Installing Node.js v18+ in background...${c.reset}`),J("brew",["install","node"])?console.log(`
118\u2714 ${c.green}Node.js installed successfully via Homebrew.${c.reset}
120\u274C ${c.red}Homebrew installation failed. Please install Node.js manually at https://nodejs.org/${c.reset}
121`),process.exit(1))):(console.log(`
122\u274C ${c.red}Homebrew package manager (brew) is not installed on this system.${c.reset}`),console.log(`${c.bold}\u{1F449} To proceed, please either:${c.reset}`),console.log(" 1. Install Homebrew by running the following command in your terminal:"),console.log(` ${c.cyan}/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"${c.reset}`),console.log(` 2. Or manually download and install Node.js (v18+) from: https://nodejs.org/
123`),process.exit(1)):(console.log(`
124\u274C ${c.red}Please install or update Node.js to v18+ using your system's package manager.${c.reset}
125`),process.exit(1))}else console.log(`\u2714 ${c.green}Node.js version (v${e}) is sufficient.${c.reset}`)}k();ae();async function yn(){console.log(`
126${c.dim}Step 2/4: Checking Vercel CLI...${c.reset}`);let e="vercel",t=!1;if(ge("vercel"))console.log(`\u2714 ${c.green}Vercel CLI is installed!${c.reset}`);else{console.log(`\u2753 ${c.yellow}Vercel CLI was not found on your system.${c.reset}`);let n=await ye("\u{1F449} Would you like to install Vercel CLI globally? (Y/n): ");n.toLowerCase()==="y"||n===""?(console.log(`
127\u{1F4E5} ${c.cyan}Installing Vercel CLI globally... (npm install -g vercel)${c.reset}`),J("npm",["install","-g","vercel"])&&ge("vercel")?console.log(`\u2714 ${c.green}Vercel CLI installed successfully!${c.reset}`):(console.log(`
128\u26A0\uFE0F ${c.yellow}Global installation failed or permissions restricted.${c.reset}`),console.log(`\u2139 ${c.dim}Falling back: Running Vercel dynamically via npx.${c.reset}`),e="npx --yes vercel",t=!0)):(console.log(`\u2139 ${c.dim}Skipping global installation. Running Vercel dynamically via npx.${c.reset}`),e="npx --yes vercel",t=!0)}return{vercelCmd:e,useNpx:t}}var hn=require("child_process");k();ae();var yr={stdio:"ignore",shell:process.platform==="win32"?"cmd.exe":"/bin/sh"};async function Sn(e){console.log(`
HighRuntime Package Install
Package source invokes a package manager install command at runtime.
dist/cli/index.jsView on unpkg · L121 129${c.dim}Step 3/4: Checking Vercel Login...${c.reset}`);let t=!!process.env.VERCEL_TOKEN,n=!1;if(t)console.log(`\u2714 ${c.green}VERCEL_TOKEN environment variable detected. Skipping login check.${c.reset}`),n=!0;else try{(0,hn.execSync)(e?"npx --yes vercel whoami":"vercel whoami",yr),n=!0,console.log(`\u2714 ${c.green}Logged in!${c.reset}`)}catch{n=!1}if(!n){console.log(`\u{1F511} ${c.yellow}Not logged in to Vercel.${c.reset}`),await ye("\u{1F449} Press [Enter] to login to Vercel... ");let o=["login"],s=e?"npx":"vercel",r=e?["--yes","vercel",...o]:o;if(await st(s,r)!==0)throw new Error("Vercel ...
130\u2714 ${c.green}Logged in successfully!${c.reset}`)}return t}k();ae();async function xn(e,t){console.log(`
HighSame File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/cli/index.jsView on unpkg · L114 131${c.dim}Step 4/4: Deploying project to production...${c.reset}`);let n=["--prod","--yes"];t&&n.push("--token",process.env.VERCEL_TOKEN);let o=e?"npx":"vercel",s=e?["--yes","vercel",...n]:n;if(console.log(`${c
132`),await st(o,s)!==0)throw new Error("Vercel deployment failed.");console.log(`
133${c.bold}${c.green}\u{1F389} Deployment completed successfully!${c.reset}
134`)}qe();ne();async function On(){Ht(_()),console.log(`
135${c.bold}${c.cyan}\u{1F680} Starting CFM Vercel Deployment...${c.reset}
136`),await gn();let{useNpx:e}=await yn(),t=await Sn(e);await xn(e,t)}k();Kt();ne();var V=h(require("fs")),oe=h(require("path"));Ye();function Qr(e){let t=oe.join(e,"package.json");if(!V.existsSync(t))return null;try{return JSON.parse(V.readFileSync(t,"utf8"))}catch{return null}}function pt(e,t){for(let n of t){let o=oe.join(e,n);if(V.existsSync(o))return n}return null}function Wt(e,t){return V.readFileSync(oe.join(e,t),"utf8")}function Ur(e){if(process.env.CFM_DEPLOY_TARGET==="aws")return!0;let t=["survey-deploy-config.json","survey-ui-config.json"];for(let n of t){let o=oe.join(e,n);if(V.exists ...
137`);let n=dt(t);for(let o of n.warnings)console.log(`${E.yellow}WARN:${E.reset} ${o}`);if(n.errors.length>0){console.log(`${E.red}FAIL:${E.reset} Framework scaffold incomplete (${n.framework}) \u2014 fix all items before authoring components:`);for(let o of n.errors)console.log(` - ${o}`);return console.log(`
138${E.dim}Fix: setup/index.md \xB7 Next: npx cfm-sdk scaffold-check${E.reset}`),1}return n.framework!=="unknown"&&console.log(`${E.green}OK:${E.reset} Framework scaffold verified (${n.framework})`),console.log(`${E.dim}Core deps OK. Survey-type deps print after fill-implementation-plan --from-fetch.${E.reset}`),console.log(`${E.dim}Scaffold complete \u2014 run npx cfm-sdk seed-phase5 next.${E.reset}`),console.log(`
139${E.dim}${Xt()}${E.reset}`),console.log(`
140${E.dim}Next: Phase 3\u20134 copy bundle + implementation_plan${E.reset}`),0}var gt=h(require("fs")),yt=h(require("path"));k();ne();var I=h(require("fs")),L=h(require("path")),qr=["src","components","app","lib"],Br=["src/components/IntroPage.tsx","components/IntroPage.tsx","app/components/IntroPage.tsx"],Hr=["src/components/SurveyPage.tsx","components/SurveyPage.tsx","app/components/SurveyPage.tsx"],Vr=["src/components/EndPage.tsx","components/EndPage.tsx","app/components/EndPage.tsx"],Vn=["src/components/Question.tsx","components/Question.tsx","app/components/Question.tsx"],zt=["CsatMatrixSca ...
141`);for(let i=0;i<r.length;i++){let a=r[i];Wr(a)||(Xr.test(a)||Kr.test(a))&&t.push(`${n}:${i+1}: hardcoded color \u2014 use survey-ui-config.json + var(--cfm-*)`)}}return t}function Jr(e){let t=[],n=Ge(e,Br);if(!n)return t.push
Long lines were clipped for display.