create-cooktype-app 0.0.5 → 0.0.6
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.js
CHANGED
|
@@ -22,7 +22,7 @@ import"./chunk-WOPP5T3O.js";function se(e,n){let t=e.env?.[n];return typeof t=="
|
|
|
22
22
|
`)+`
|
|
23
23
|
`,usesFlag:r=>r in n||r in t}}function*ct(e,n,t){let{brief:c,fullDescription:r,hideRoute:i}=n,{headers:o}=t.text;yield t.ansiColor?`\x1B[1m${o.usage}\x1B[22m`:o.usage;for(let[a,f]of Object.entries(e))if(!i||!i[a]||t.includeHidden){let m=t.config.caseStyle==="convert-camel-to-kebab"?A(a):a;yield` ${f.formatUsageLine({...t,prefix:[...t.prefix,m]})}`}let u=t.prefix.join(" ");for(let a of pe(t))yield` ${u} ${a}`;if(yield"",yield r??c,t.aliases&&t.aliases.length>0){let a=t.prefix.slice(0,-1).join(" ");yield"",yield t.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let f of t.aliases)yield` ${a} ${f}`}yield"",yield t.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let a of me({},{},t))yield` ${a}`;yield"",yield t.ansiColor?`\x1B[1m${o.commands}\x1B[22m`:o.commands;let s=Object.entries(e).filter(([a])=>!i||!i[a]||t.includeHidden).map(([a,f])=>({routeName:T(a,t.config.caseStyle),brief:f.brief,hidden:i&&i[a]})),d=O(s.map(a=>t.ansiColor?[a.hidden?`\x1B[90m${a.routeName}\x1B[39m`:`\x1B[97m${a.routeName}\x1B[39m`,a.hidden?`\x1B[90m${a.brief}\x1B[39m`:`\x1B[03m${a.brief}\x1B[23m`]:[a.routeName,a.brief]),[" "]);for(let a of d)yield` ${a}`}function ye({routes:e,defaultCommand:n,docs:t,aliases:c}){if(Object.entries(e).length===0)throw new w("Route map must contain at least one route");let r=c??{},i=new Map;for(let[l,s]of Object.entries(r)){if(l in e)throw new w(`Cannot use "${l}" as an alias when a route with that name already exists`);let d=i.get(s)??[];i.set(s,[...d,l])}let o=n?e[n]:void 0;if(o&&o.kind===P)throw new w(`Cannot use "${n}" as the default command because it is not a Command`);let u=l=>{if(l in r)return r[l];if(l in e)return l};return{kind:P,get brief(){return t.brief},get fullDescription(){return t.fullDescription},formatUsageLine(l){let s=this.getAllEntries().filter(d=>!d.hidden).map(d=>d.name[l.config.caseStyle]);return`${l.prefix.join(" ")} ${s.join("|")} ...`},formatHelp:l=>[...ct(e,t,l)].join(`
|
|
24
24
|
`)+`
|
|
25
|
-
`,getDefaultCommand:()=>o,getOtherAliasesForInput:(l,s)=>{if(n){if(l===n)return{original:[""],"convert-camel-to-kebab":[""]};if(l==="")return{original:[n],"convert-camel-to-kebab":[n]}}let d=_(l),a=u(l);if(!a&&s==="allow-kebab-for-camel"&&(a=u(d)),!a)return{original:[],"convert-camel-to-kebab":[]};let f=[a,...i.get(a)??[]].filter(m=>m!==l&&m!==d);return{original:f,"convert-camel-to-kebab":f.map(A)}},getRoutingTargetForInput:l=>{let s=l in r?r[l]:l;return e[s]},getAllEntries(){let l=t.hideRoute;return Object.entries(e).map(([s,d])=>({name:{original:s,"convert-camel-to-kebab":A(s)},target:d,aliases:i.get(s)??[],hidden:l?.[s]??!1}))}}}async function ve(e,n,t){let c=await Ye(e,n,t);t.process.exitCode=c}import ut from"node:fs";import dt from"node:os";import ft from"node:path";function be(e){return{process:e,os:dt,fs:ut,path:ft}}var xe="create-cooktype-app";var we="CLI to scaffold AI-promptable monorepos with Next.js, Convex, and Shadcn/ui";var ge="0.0.
|
|
25
|
+
`,getDefaultCommand:()=>o,getOtherAliasesForInput:(l,s)=>{if(n){if(l===n)return{original:[""],"convert-camel-to-kebab":[""]};if(l==="")return{original:[n],"convert-camel-to-kebab":[n]}}let d=_(l),a=u(l);if(!a&&s==="allow-kebab-for-camel"&&(a=u(d)),!a)return{original:[],"convert-camel-to-kebab":[]};let f=[a,...i.get(a)??[]].filter(m=>m!==l&&m!==d);return{original:f,"convert-camel-to-kebab":f.map(A)}},getRoutingTargetForInput:l=>{let s=l in r?r[l]:l;return e[s]},getAllEntries(){let l=t.hideRoute;return Object.entries(e).map(([s,d])=>({name:{original:s,"convert-camel-to-kebab":A(s)},target:d,aliases:i.get(s)??[],hidden:l?.[s]??!1}))}}}async function ve(e,n,t){let c=await Ye(e,n,t);t.process.exitCode=c}import ut from"node:fs";import dt from"node:os";import ft from"node:path";function be(e){return{process:e,os:dt,fs:ut,path:ft}}var xe="create-cooktype-app";var we="CLI to scaffold AI-promptable monorepos with Next.js, Convex, and Shadcn/ui";var ge="0.0.6";var $e=he({loader:async()=>import("./impl-WLTRYLYH.js"),parameters:{positional:{kind:"tuple",parameters:[{brief:"project-name",parse:String,optional:!0}]},flags:{git:{kind:"boolean",brief:"Initialize git repository",default:!0},install:{kind:"boolean",brief:"Run pnpm install after scaffold",default:!0},"convex-init":{kind:"boolean",brief:"Run Convex setup",default:!0}}},docs:{brief:"Create a new AI-promptable monorepo"}});var mt=ye({routes:{create:$e},docs:{brief:we},aliases:{}}),Ce=ue(mt,{name:xe,versionInfo:{currentVersion:ge}});var Q=process.argv.slice(2),Y=Q[0],pt=["create","help","--help","-h","version","--version","-v"];(!Y||!Y.startsWith("-")&&!pt.includes(Y))&&Q.unshift("create");await ve(Ce,Q,be(process));
|
|
26
26
|
/*! Bundled license information:
|
|
27
27
|
|
|
28
28
|
@stricli/core/dist/index.js:
|
|
@@ -29,7 +29,7 @@ import{a as Ie,b as F,c as ne}from"./chunk-WOPP5T3O.js";var Be=F((ux,tn)=>{var L
|
|
|
29
29
|
`)]});var Bi=K((e,t)=>{let{validate:r=()=>!0}=e,n=N(e.theme),[s,a]=C("idle"),[o,i]=C(),[x,c]=C(""),u=q({status:s,theme:n});V(async(y,p)=>{if(s==="idle")if($(y)){let d=x;a("loading");let m=await r(d);m===!0?(c(d),a("done"),t(d)):(p.write(x),i(m||"You must provide a valid value"),a("idle"))}else c(p.line),i(void 0)});let l=n.style.message(e.message,s),D="",f;e.mask?D=(typeof e.mask=="string"?e.mask:"*").repeat(x.length):s!=="done"&&(f=`${n.style.help("[input is masked]")}${Ye}`),s==="done"&&(D=n.style.answer(D));let g="";return o&&(g=n.style.error(o)),[[u,l,e.mask?D:f].join(" "),g]});var Ve=ne(Be(),1);var Si={icon:{cursor:se.pointer},style:{disabled:e=>Ve.default.dim(`- ${e}`),searchTerm:e=>Ve.default.cyan(e),description:e=>Ve.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${Ve.default.bold(t)} ${Ve.default.dim(r)}`).join(Ve.default.dim(" \u2022 "))},helpMode:"always"};function Kr(e){return!I.isSeparator(e)&&!e.disabled}function ki(e){return e.map(t=>{if(I.isSeparator(t))return t;if(typeof t=="string")return{value:t,name:t,short:t,disabled:!1};let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var _i=K((e,t)=>{let{pageSize:r=7,validate:n=()=>!0}=e,s=N(Si,e.theme),[a,o]=C("loading"),[i,x]=C(""),[c,u]=C([]),[l,D]=C(),f=q({status:a,theme:s}),g=ee(()=>{let h=c.findIndex(Kr),_=c.findLastIndex(Kr);return{first:h,last:_}},[c]),[y=g.first,p]=C();re(()=>{let h=new AbortController;return o("loading"),D(void 0),(async()=>{try{let U=await e.source(i||void 0,{signal:h.signal});h.signal.aborted||(p(void 0),D(void 0),u(ki(U)),o("idle"))}catch(U){!h.signal.aborted&&U instanceof Error&&D(U.message)}})(),()=>{h.abort()}},[i]);let d=c[y];V(async(h,_)=>{if($(h))if(d){o("loading");let U=await n(d.value);o("idle"),U===!0?(o("done"),t(d.value)):d.name===i?D(U||"You must provide a valid value"):(_.write(d.name),x(d.name))}else _.write(i);else if(ge(h)&&d)_.clearLine(0),_.write(d.name),x(d.name);else if(a!=="loading"&&(J(h)||Z(h))){if(_.clearLine(0),J(h)&&y!==g.first||Z(h)&&y!==g.last){let U=J(h)?-1:1,H=y;do H=(H+U+c.length)%c.length;while(!Kr(c[H]));p(H)}}else x(_.line)});let m=s.style.message(e.message,a),B;if(s.helpMode!=="never")if(e.instructions){let{pager:h,navigation:_}=e.instructions;B=s.style.help(c.length>r?h:_)}else B=s.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let L=Me({items:c,active:y,renderItem({item:h,isActive:_}){if(I.isSeparator(h))return` ${h.separator}`;if(h.disabled){let de=typeof h.disabled=="string"?h.disabled:"(disabled)";return s.style.disabled(`${h.name} ${de}`)}let U=_?s.style.highlight:de=>de,H=_?s.icon.cursor:" ";return U(`${H} ${h.name}`)},pageSize:r,loop:!1}),w;l?w=s.style.error(l):c.length===0&&i!==""&&a==="idle"&&(w=s.style.error("No results found"));let T;if(a==="done"&&d)return[f,m,s.style.answer(d.short)].filter(Boolean).join(" ").trimEnd();T=s.style.searchTerm(i);let S=d?.description,R=[f,m,T].filter(Boolean).join(" ").trimEnd(),v=[w??L," ",S?s.style.description(S):"",B].filter(Boolean).join(`
|
|
30
30
|
`).trimEnd();return[R,v]});var t0=ne(Be(),1);var Ai={icon:{cursor:se.pointer},style:{disabled:e=>t0.default.dim(`- ${e}`),description:e=>t0.default.cyan(e),keysHelpTip:e=>e.map(([t,r])=>`${t0.default.bold(t)} ${t0.default.dim(r)}`).join(t0.default.dim(" \u2022 "))},helpMode:"always",indexMode:"hidden",keybindings:[]};function e0(e){return!I.isSeparator(e)&&!e.disabled}function Ii(e){return e.map(t=>{if(I.isSeparator(t))return t;if(typeof t=="string")return{value:t,name:t,short:t,disabled:!1};let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var Ke=K((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,s=N(Ai,e.theme),{keybindings:a}=s,[o,i]=C("idle"),x=q({status:o,theme:s}),c=Te(),u=!a.includes("vim"),l=ee(()=>Ii(e.choices),[e.choices]),D=ee(()=>{let S=l.findIndex(e0),R=l.findLastIndex(e0);if(S===-1)throw new pe("[select prompt] No selectable choices. All choices are disabled.");return{first:S,last:R}},[l]),f=ee(()=>"default"in e?l.findIndex(S=>e0(S)&&S.value===e.default):-1,[e.default,l]),[g,y]=C(f===-1?D.first:f),p=l[g];V((S,R)=>{if(clearTimeout(c.current),$(S))i("done"),t(p.value);else if(J(S,a)||Z(S,a)){if(R.clearLine(0),r||J(S,a)&&g!==D.first||Z(S,a)&&g!==D.last){let v=J(S,a)?-1:1,h=g;do h=(h+v+l.length)%l.length;while(!e0(l[h]));y(h)}}else if(n0(S)&&!Number.isNaN(Number(R.line))){let v=Number(R.line)-1,h=-1,_=l.findIndex(H=>I.isSeparator(H)?!1:(h++,h===v)),U=l[_];U!=null&&e0(U)&&y(_),c.current=setTimeout(()=>{R.clearLine(0)},700)}else if(Le(S))R.clearLine(0);else if(u){let v=R.line.toLowerCase(),h=l.findIndex(_=>I.isSeparator(_)||!e0(_)?!1:_.name.toLowerCase().startsWith(v));h!==-1&&y(h),c.current=setTimeout(()=>{R.clearLine(0)},700)}}),re(()=>()=>{clearTimeout(c.current)},[]);let d=s.style.message(e.message,o),m;if(s.helpMode!=="never")if(e.instructions){let{pager:S,navigation:R}=e.instructions;m=s.style.help(l.length>n?S:R)}else m=s.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]);let B=0,L=Me({items:l,active:g,renderItem({item:S,isActive:R,index:v}){if(I.isSeparator(S))return B++,` ${S.separator}`;let h=s.indexMode==="number"?`${v+1-B}. `:"";if(S.disabled){let H=typeof S.disabled=="string"?S.disabled:"(disabled)";return s.style.disabled(`${h}${S.name} ${H}`)}let _=R?s.style.highlight:H=>H,U=R?s.icon.cursor:" ";return _(`${U} ${h}${S.name}`)},pageSize:n,loop:r});if(o==="done")return[x,d,s.style.answer(p.short)].filter(Boolean).join(" ");let{description:w}=p;return`${[[x,d].filter(Boolean).join(" "),L," ",w?s.style.description(w):"",m].filter(Boolean).join(`
|
|
31
31
|
`).trimEnd()}${Ye}`});import Qi from"node:path";var fe="\x1B[0m",J0="\x1B[1m",Gr="\x1B[2m",Li="\x1B[32m",ji="\x1B[33m",Pi="\x1B[31m",zr="\x1B[36m";function Wr(e){console.log(`${zr}info${fe} ${e}`)}function Y0(e){console.log(`${ji}warn${fe} ${e}`)}function Zs(e){console.error(`${Pi}error${fe} ${e}`)}function ea(e,t,r){let n=`${Gr}[${e}/${t}]${fe}`;console.log(`${n} ${J0}${r}${fe}`)}function ta(){console.log()}function ra(e){console.log(),console.log(`${J0}Creating ${zr}${e}${fe}${J0}...${fe}`),console.log()}function na(e){console.log(),console.log(`${Li}${J0}Success!${fe} Created ${zr}${e}${fe}`),console.log(),console.log("Next steps:"),console.log(` ${Gr}cd${fe} ${e}`),console.log(` ${Gr}pnpm${fe} dev`),console.log()}import we from"node:fs";import Hr from"node:path";function G(e){we.mkdirSync(e,{recursive:!0})}function W(e){return we.existsSync(e)}function j(e,t){G(Hr.dirname(e)),we.writeFileSync(e,t,"utf-8")}function Fe(e){return we.readFileSync(e,"utf-8")}function sa(e,t){G(t);let r=we.readdirSync(e,{withFileTypes:!0});for(let n of r){let s=Hr.join(e,n.name),a=Hr.join(t,n.name);n.isDirectory()?sa(s,a):we.copyFileSync(s,a)}}function X0(e,t){sa(e,t),we.rmSync(e,{recursive:!0,force:!0})}function aa(e){W(e)&&we.rmSync(e,{recursive:!0,force:!0})}function Jr(e){return W(e)?we.readdirSync(e):[]}function Yr(e){let t=Fe(e);return JSON.parse(t)}function Q(e,t){j(e,JSON.stringify(t,null,2)+`
|
|
32
|
-
`)}async function oa(e){if(W(e.projectPath))throw new Error(`Directory "${e.projectName}" already exists`)}import{exec as Ti,spawn as Mi}from"node:child_process";import{promisify as Ui}from"node:util";var Oi=Ui(Ti);async function Z0(e,t={}){let{stdout:r,stderr:n}=await Oi(e,{cwd:t.cwd,env:{...process.env,...t.env},maxBuffer:10485760});return{stdout:r,stderr:n}}function le(e,t,r={}){return new Promise((n,s)=>{let a=Mi(e,t,{cwd:r.cwd,env:{...process.env,...r.env},stdio:"inherit"});a.on("close",o=>{n(o??0)}),a.on("error",o=>{s(o)})})}async function ia(e){let t=await le("pnpm",["dlx","shadcn@latest","create","--cwd",e.cwd,"--template","next","--preset",e.presetUrl,"-y",e.projectName],{cwd:e.cwd});if(t!==0)throw new Error(`shadcn create failed with exit code ${t}`)}import Ri from"node:path";var Ni=["accordion","alert","alert-dialog","avatar","badge","breadcrumb","button","button-group","calendar","card","carousel","chart","checkbox","collapsible","combobox","command","context-menu","data-table","date-picker","dialog","drawer","dropdown-menu","empty","field","hover-card","input","input-group","input-otp","item","kbd","label","menubar","navigation-menu","pagination","popover","progress","radio-group","resizable","scroll-area","select","separator","sheet","sidebar","skeleton","slider","sonner","spinner","switch","table","tabs","textarea","
|
|
32
|
+
`)}async function oa(e){if(W(e.projectPath))throw new Error(`Directory "${e.projectName}" already exists`)}import{exec as Ti,spawn as Mi}from"node:child_process";import{promisify as Ui}from"node:util";var Oi=Ui(Ti);async function Z0(e,t={}){let{stdout:r,stderr:n}=await Oi(e,{cwd:t.cwd,env:{...process.env,...t.env},maxBuffer:10485760});return{stdout:r,stderr:n}}function le(e,t,r={}){return new Promise((n,s)=>{let a=Mi(e,t,{cwd:r.cwd,env:{...process.env,...r.env},stdio:"inherit"});a.on("close",o=>{n(o??0)}),a.on("error",o=>{s(o)})})}async function ia(e){let t=await le("pnpm",["dlx","shadcn@latest","create","--cwd",e.cwd,"--template","next","--preset",e.presetUrl,"-y",e.projectName],{cwd:e.cwd});if(t!==0)throw new Error(`shadcn create failed with exit code ${t}`)}import Ri from"node:path";var Ni=["accordion","alert","alert-dialog","avatar","badge","breadcrumb","button","button-group","calendar","card","carousel","chart","checkbox","collapsible","combobox","command","context-menu","data-table","date-picker","dialog","drawer","dropdown-menu","empty","field","hover-card","input","input-group","input-otp","item","kbd","label","menubar","navigation-menu","pagination","popover","progress","radio-group","resizable","scroll-area","select","separator","sheet","sidebar","skeleton","slider","sonner","spinner","switch","table","tabs","textarea","toggle","toggle-group","tooltip"];async function xa(e){let t=await le("pnpm",["dlx","shadcn@latest","add",...Ni,"-y"],{cwd:e.projectPath});if(t!==0)throw new Error(`shadcn add components failed with exit code ${t}`);await $i(e)}async function $i(e){let t=await le("pnpm",["remove","cmdk"],{cwd:e.projectPath});if(t!==0)throw new Error(`Failed to remove cmdk package with exit code ${t}`);let r=await le("pnpm",["add","cmdk-base"],{cwd:e.projectPath});if(r!==0)throw new Error(`Failed to add cmdk-base package with exit code ${r}`);let n=Ri.join(e.projectPath,"components","ui","command.tsx"),a=(await Fe(n)).replace(/from\s+["']cmdk["']/g,'from "cmdk-base"');await j(n,a)}import P from"node:path";import h0 from"node:fs";async function ca(e){let{projectPath:t,projectName:r}=e,n=P.join(t,"apps"),s=P.join(n,"web"),a=P.join(t,"packages"),o=P.join(a,"ui"),i=P.join(o,"src");G(n),G(a),G(i);let x=["app","components","hooks","lib","public","next.config.ts","next.config.mjs","next.config.js","postcss.config.mjs","postcss.config.js","tailwind.config.ts","tailwind.config.js","tsconfig.json","next-env.d.ts","package.json"];for(let y of x){let p=P.join(t,y);if(W(p)){let d=P.join(s,y);h0.statSync(p).isDirectory()?X0(p,d):(G(P.dirname(d)),h0.renameSync(p,d))}}let c=P.join(s,"components","ui");W(c)&&X0(c,P.join(i,"components"));let u=P.join(s,"lib","utils.ts");W(u)&&(G(P.join(i,"lib")),h0.renameSync(u,P.join(i,"lib","utils.ts")));let l=P.join(s,"hooks");W(l)&&X0(l,P.join(i,"hooks"));let D=P.join(i,"hooks","use-mobile.ts");W(D)||(G(P.join(i,"hooks")),j(D,`import * as React from "react"
|
|
33
33
|
|
|
34
34
|
const MOBILE_BREAKPOINT = 768
|
|
35
35
|
|